Building Powerful
Enterprise Apps
Microsoft Technical Evangelist
blog: DavidGiard.com
tv: TechnologyAndFriends.com
twitter: @DavidGiard
Email: dgiard@microsoft.com
David
Giard
Single Page
Applications
@DavidGiard
Traditional Web App
HTML Page
Click me!
Server
Request
Response
Thank you, David!
@DavidGiard
Single Page App
HTML Page
Click me!
Server
Request
Response
Thank you, David!
{‘
name’: ‘David’
}
@DavidGiard
Angular
• SPA Framework
• Open Source
• Data Binding
• Components
• Modularize
@DavidGiard
TypeScript
• Open Source
• Superset of JavaScript
• Transpiles to JavaScript
@DavidGiard
TypeScript
foo.ts foo.js
Transpile
foo.map
@DavidGiard
Transpile
@DavidGiard
TypeScript Transpiling – Command
Line
tsc
-p Compile a specific project or folder
-w Compile after each change detected
@DavidGiard
TypeScript Transpiling – Continuous
Delivery
• Grunt, Gulp, Webpack, etc.
• Visual Studio
• VSTS
@DavidGiard
TypeScript Advantages
• Productivity
• Static Type Analysis
• Language Tool Support
• Better management of large codebases
@DavidGiard
Type Checking
var num1 = 5;
var num2 = 10;
…
num2=“10”;
…
var sum = num1 + num2;
@DavidGiard
Type Checking
var num1: number = 5;
var num2 : number = 10;
…
num2=“10”;
…
var sum: number = num1 + num2;
@DavidGiard
tsconfig.json{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
@DavidGiard
Angular
@DavidGiard
Key Parts of Angular
• Modules
• Components
• Templates
• Directives
• Services
• Routing
@DavidGiard
Modules
@DavidGiard
Modules
• Built into Angular
• Makes it easier to split code into smaller pieces
• Import one module into another
• Export module to make it available for import
@DavidGiard
Modules
import {Component} from 'angular2/core';
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
Available
outside this
module
Use exported
module
In this
module
@DavidGiard
Components
@DavidGiard
Components
• Class (properties & methods)
• Decorated with @Component
• Template
• Selector
• Imported references
@DavidGiard
Templates and Selectors
@DavidGiard
Templates and Selectors
import {Component} from 'angular2/core';
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
@DavidGiard
Selector
@Component({
selector: 'my-selector',
template: '<h1>Hello
World</h1>'
})
export class DemoComponent {
}
<my-selector>Loading...</my-
selector>
@DavidGiard
<my-selector>Loading...</my-
selector>
Templates
@Component({
selector: 'my-selector',
template: '<h1>Hello
World</h1>'
})
export class DemoComponent {
}Output
Loading…
@DavidGiard
<my-selector>Loading...</my-
selector>
Templates
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
Output
Hello World
@DavidGiard
<my-selector>Loading...</my-
selector>
Templates: Multi-Line
Output
Hello World
Welcome
@Component({
selector: 'my-selector',
template: `
<h1>Hello World</h1>
<div>
Welcome!
</div>
`
})
export class DemoComponent {
}
@DavidGiard
<my-selector>Loading...</my-
selector>
Templates: External file
@Component({
selector: 'my-selector',
templateUrl: 'myPage.html'
})
export class
DemoComponent { }Output
<h1>Hello World</h1>
<div>
Welcome!
</div>
myPage.html
Hello World
Welcome
@DavidGiard
<my-selector>Loading...</my-
selector>
Components: Properties
Output
<h1>Hello World</h1>
<div>
Welcome
{{customerName}}!
</div>
myPage.html
Hello World
Welcome David
@Component({
selector: 'my-selector',
templateUrl: 'myPage.html'
})
export class DemoComponent {
customerName:string =
“David”;
}
@DavidGiard
Data Binding
• 1-Way Binding
• Interpolation
• 1-Way Property Binding
• 2-Way Property Binding
• Event Binding
@DavidGiard
Interpolation
• Double curly braces around data
• e.g.,
{{customerName}}
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent {
id=1;
customerFirstName='David';
customerLastName='Giard';
}
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: '<h1>Hello {{customerFirstName}}</h1>'
})
export class DemoComponent {
id=1;
customerFirstName='David';
customerLastName='Giard';
}
1-Way
Data Binding
Hello David
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: '<h1>Hello {{customer.FirstName}}</h1>'
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
export class Customer{
FirstName: string;
LastName: string;
}
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: {{customer.FirstName}}</div>
<div>Last: {{customer.LastName}}
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
David Details
First: David
Last: Giard
@DavidGiard
1-Way Data Binding
• Square brackets around property
• []
@DavidGiard
1-Way Data Binding
@Component({
selector: 'my-selector',
template: ‘<button [disabled]="dataNotChanged">Save</button>’
})
export class DemoComponent {
dataNotChanged= true;
}
Save
@DavidGiard
1-Way Data Binding
@Component({
selector: 'my-selector',
template: ‘<button [disabled]=" dataNotChanged">Save</button>’
})
export class DemoComponent {
dataNotChanged = true;
}
Save
@DavidGiard
1-Way Data Binding
@Component({
selector: 'my-selector',
template: ‘<button [disabled]=" dataNotChanged">Save</button>’
})
export class DemoComponent {
dataNotChanged = false;
}
Save
@DavidGiard
2-Way Data Binding
• Requires FormsModule
• [(property_to_bind)]
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.FirstName“ /> </div>
<div>Last: <input [(ngModel)]="customer.LastName“ /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
2-way data binding
David Details
David
Giard
First:
Last:
1-way data binding
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName“ /> </div>
<div>Last: <input [(ngModel)]="customer.FirstName“ /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
D Details
D
Giard
First:
Last:
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName“ /> </div>
<div>Last: <input [(ngModel)]="customer.FirstName" /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
Da Details
Da
Giard
First:
Last:
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName“ /> </div>
<div>Last: <input [(ngModel)]="customer.FirstName“ /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
Dan Details
Dan
Giard
First:
Last:
@DavidGiard
app.module.ts
(required for ngModel)
@NgModule({
imports: [
FormsModule
]
@DavidGiard
Events binding
<control (eventname)="methodname(parameters)">
click event
<control (click)="methodtocall(parameters)">
e.g.,
<div (click)="onClick(customer)">
@DavidGiard
click
@Component({
selector: 'my-selector',
template: `
<h1 (click)="onClick (customer)">{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName" </div>
<div>Last: <input [(ngModel)]="customer.FirstName" </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
onClick(cust: Customer) { alert ("You Selected " + customer.FirstName); }
}
@DavidGiard
Bootstrapping your Angular app
@DavidGiard
@NgModule({
bootstrap: [AppComponent]
})
export class AppModule {
}
Bootstrapping
<script>
…
System.import(‘main.js')
</script>
import {AppComponent}
from './app.component';
platformBrowserDynamic().bootstrapModule(AppModule);
main.ts / main.js
= bootstrap file
@DavidGiard
Directives
@DavidGiard
Directives
• Allow you to attach behavior to DOM elements
@DavidGiard
Directives
• *ngFor
• *ngIf
• ngSwitch
• ngClass
• Custom Directives
@DavidGiard
*ngfor
<div *ngFor="#cust of customers">
{{cust.lastName}}, {{cust.firstName}}
</div>
var customers: Customer[] = [
{ "id": 1, "firstName": " Satya", "lastName" : " Nadella" },
{ "id": 2, "firstName": "Bill", "lastName": "Gates" },
{ "id": 3, "firstName": "Steve", "lastName": "Ballmer" },
{ "id": 4, "firstName": " David ", "lastName": " Giard " }
];
Nadella, Satya
Gates, Bill
Ballmer, Steve
Giard, David
@DavidGiard
*ngIf
• Syntax: *ngif="condition"
• Removes element from DOM if condition is not “truthy”
@DavidGiard
*ngIf
<h1>People I hate:</div>
<div *ngIf=“true”>
David Giard
</div>
People I hate:
David Giard
<h1>People I hate:</div>
<div *ngIf=“false”>
David Giard
</div>
People I hate:
@DavidGiard
*ngIf
<div>
<button (click)="clicked()">Toggle</button>
<div *ngIf="show">
Can you see me?
</div>
</div>
export class DemoComponent {
show: boolean = true;
clicked() {this.show = !this.show; }
}
Toggle
Can you see me?
@DavidGiard
*ngIf
<div>
<button (click)="clicked()">Toggle</button>
<div *ngIf="show">
Can you see me?
</div>
</div>
export class DemoComponent {
show: boolean = true;
clicked() {this.show = !this.show; }
}
Toggle
Can you see me?
@DavidGiard
LifeCycle Hooks
• OnInit
• OnChanges
• OnDestroy
@DavidGiard
OnInit
export class foo implements
OnInit {
...
ngOnInit(){
...
}
}
@DavidGiard
Services
@DavidGiard
Services
• Class containing logic
• Shared Code: Used by components or other services
• Substitutable Objects
• Dependency Injection
@DavidGiard
Services
import { Injectable } from '@angular/core';
@Injectable()
export class CustService {
getCustomers() {
return customers;
}
}
var customers: Customer[] = [
{ "id": 1, "firstname": "David", "lastname": "Giard" },
{ "id": 2, "firstname": "Bill", "lastname": "Gates" },
{ "id": 3, "firstname": "Steve", "lastname": "Ballmer" },
{ "id": 4, "firstname": "Satya", "lastname": "Nadella" }
];
CustomerService.ts
@DavidGiard
Services
import { Injectable } from '@angular/core';
@Injectable()
export class CustService {
getCustomers() {
return customers;
}
}
…
CustomerService.ts
import { OnInit } from '@angular/core';
import {CustService} from CustomerService
@Component({
selector: 'xxx',
template: 'yyy',
…
providers: [CustService]
})
export class DemoComponent implements OnInit {
constructor(private customerService:CustService) { }
ngOnInit() {
this.customers = this.customerService.getCustomers();
}
}
@DavidGiard
Routing
@DavidGiard
Routing
• Load components dynamically into page
• Link via URL
• Client-side
• Step 1: Bootstrap array of routes
@DavidGiard
Routing
http://url.com/
HOME
---
---
---
---
@DavidGiard
Routing
http://url.com/about
---
---
---
---
ABOUT
@DavidGiard
Routing
http://url.com/products
---
---
---
---
PRODUCTS
@DavidGiard
Routing
const routes: Routes = [
{
path: foo',
component: FooComponent
},
{
path: ‘bar',
component: BarComponent
},
];
<a [routerLink]="[/foo']">Foo</a>
<a [routerLink]="[/bar']">Bar</a>
<router-outlet></router-outlet>
app.routes.ts
User clicks “Foo” link
@DavidGiard
HTTP
import {Http } from '@angular/http';
...
this.http.get(webServiceUrl);
bootstrap(DemoComponent, [
HTTP_PROVIDERS,
]);
main.ts
Component
@DavidGiard
Observables (via RxJs)
Observable<T>
Function
Subscrib
e
Data
@DavidGiard
Observables
getCustomers(): Observable<customer[]> {
return Observable.create((observer:
Observer<any>) => {
…
observer.next(this.customers);
})
}
this.episodeService.
getCustomers().subscribe((data) => {
…
}
@DavidGiard
DEMO
@DavidGiard
Links
• angular.io
• typescriptlang.org
• github.com/Microsoft/TypeScript
• nodejs.org/en/download
• code.visualstudio.com
• tinyurl.com/angular2cheatsheet
• slideshare.net/dgiard/angular2-and-typescript
• github.com/DavidGiard/dgtv
• davidgiard.com

More Related Content

PDF
Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura
PDF
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
PDF
Xamarin Under The Hood - Dan Ardelean
PDF
Developing PowerShell Tools - Razvan Rusu
PPTX
Serverless Single Page Apps with React and Redux at ItCamp 2017
PDF
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
PDF
Component Based UI Architecture - Alex Moldovan
PDF
Blockchain for mere mortals - understand the fundamentals and start building ...
Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
Xamarin Under The Hood - Dan Ardelean
Developing PowerShell Tools - Razvan Rusu
Serverless Single Page Apps with React and Redux at ItCamp 2017
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
Component Based UI Architecture - Alex Moldovan
Blockchain for mere mortals - understand the fundamentals and start building ...

What's hot (20)

PDF
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
PDF
Scaling face recognition with big data - Bogdan Bocse
PDF
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
PDF
React with rails a perfect combination to build modern web application
PPTX
Operational API design anti-patterns (Jason Harmon)
PDF
News From the Front Lines - an update on Front-End Tech
PDF
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
PDF
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
PDF
apidays LIVE Paris - Automation API Testing by Guillaume Jeannic
PDF
A Hitchhiker's Guide to Cloud-Native API Gateways
PDF
What's Missing? Microservices Meetup at Cisco
PDF
TDD for APIs in a Microservice World (Short Version) by Michael Kuehne-Schlin...
PPTX
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
PDF
The 36th Chamber of Shaolin - Improve Your Microservices Kung Fu in 36 Easy S...
PDF
Microxchg Microservices
PPTX
Mobile Testing Challenges at Zalando Tech
PPT
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
PPTX
API-first development
PPTX
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
PDF
Automating the API Product Lifecycle
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
Scaling face recognition with big data - Bogdan Bocse
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
React with rails a perfect combination to build modern web application
Operational API design anti-patterns (Jason Harmon)
News From the Front Lines - an update on Front-End Tech
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
apidays LIVE Paris - Automation API Testing by Guillaume Jeannic
A Hitchhiker's Guide to Cloud-Native API Gateways
What's Missing? Microservices Meetup at Cisco
TDD for APIs in a Microservice World (Short Version) by Michael Kuehne-Schlin...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
The 36th Chamber of Shaolin - Improve Your Microservices Kung Fu in 36 Easy S...
Microxchg Microservices
Mobile Testing Challenges at Zalando Tech
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
API-first development
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Automating the API Product Lifecycle
Ad

Viewers also liked (20)

PDF
The fight for surviving in the IoT world - Radu Vunvulea
PDF
Forget Process, Focus on People - Peter Leeson
PDF
The best of Windows Server 2016 - Thomas Maurer
PDF
Big Data Solutions in Azure - David Giard
PDF
#NoAgile - Dan Suciu
PDF
The Vision of Computer Vision: The bold promise of teaching computers to unde...
PDF
How to secure and manage modern IT - Ondrej Vysek
PDF
The Secret of Engaging Presentations - Boris Hristov
PDF
Columnstore indexes - best practices for the ETL process - Damian Widera
PDF
ITCamp 2017 - Florin Coros - Decide between In-Process or Inter-Processes Com...
PDF
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
PDF
Testing your PowerShell code with Pester - Florin Loghiade
PDF
Great all this new stuff, but how do I convince my management - Erwin Derksen
PPTX
One Azure Monitor to Rule Them All? (IT Camp 2017, Cluj, RO)
PDF
From Developer to Data Scientist - Gaines Kergosien
PDF
The best of Hyper-V 2016 - Thomas Maurer
PDF
Modern cybersecurity threats, and shiny new tools to help deal with them - T...
PDF
7 Habits of Highly Paid Developers - Gaines Kergosien
PDF
Provisioning Windows instances at scale on Azure, AWS and OpenStack - Adrian ...
PPTX
ITCamp 2017 - Ciprian Sorlea - Fostering Heroes
The fight for surviving in the IoT world - Radu Vunvulea
Forget Process, Focus on People - Peter Leeson
The best of Windows Server 2016 - Thomas Maurer
Big Data Solutions in Azure - David Giard
#NoAgile - Dan Suciu
The Vision of Computer Vision: The bold promise of teaching computers to unde...
How to secure and manage modern IT - Ondrej Vysek
The Secret of Engaging Presentations - Boris Hristov
Columnstore indexes - best practices for the ETL process - Damian Widera
ITCamp 2017 - Florin Coros - Decide between In-Process or Inter-Processes Com...
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
Testing your PowerShell code with Pester - Florin Loghiade
Great all this new stuff, but how do I convince my management - Erwin Derksen
One Azure Monitor to Rule Them All? (IT Camp 2017, Cluj, RO)
From Developer to Data Scientist - Gaines Kergosien
The best of Hyper-V 2016 - Thomas Maurer
Modern cybersecurity threats, and shiny new tools to help deal with them - T...
7 Habits of Highly Paid Developers - Gaines Kergosien
Provisioning Windows instances at scale on Azure, AWS and OpenStack - Adrian ...
ITCamp 2017 - Ciprian Sorlea - Fostering Heroes
Ad

Similar to Building Powerful Applications with AngularJS 2 and TypeScript - David Giard (20)

PPTX
Angular2 and TypeScript
PPTX
Building a TV show with Angular, Bootstrap, and Web Services
PPTX
A (very) opinionated guide to MSBuild and Project Files
PDF
Polymer - El fin a tus problemas con el FrontEnd
PDF
Mastering JavaScript and DOM: A Gateway to Web Development
PPTX
IndexedDB and Push Notifications in Progressive Web Apps
PDF
De 0 a Polymer
PDF
DirectToWeb 2.0
PDF
Server side rendering with React and Symfony
PDF
當ZK遇見Front-End
PDF
Workshop: Building Vaadin add-ons
PDF
Angular - Chapter 4 - Data and Event Handling
PPTX
Modern android development
PDF
How to Mess Up Your Angular UI Components
PDF
Stencil: The Time for Vanilla Web Components has Arrived
PDF
Polymer Code Lab in Dart - DevFest Kraków 2014
PDF
Web Components for Java Developers
PDF
Building an Angular 2 App
PPTX
Angular Data Binding
PDF
Building Grails Plugins - Tips And Tricks
Angular2 and TypeScript
Building a TV show with Angular, Bootstrap, and Web Services
A (very) opinionated guide to MSBuild and Project Files
Polymer - El fin a tus problemas con el FrontEnd
Mastering JavaScript and DOM: A Gateway to Web Development
IndexedDB and Push Notifications in Progressive Web Apps
De 0 a Polymer
DirectToWeb 2.0
Server side rendering with React and Symfony
當ZK遇見Front-End
Workshop: Building Vaadin add-ons
Angular - Chapter 4 - Data and Event Handling
Modern android development
How to Mess Up Your Angular UI Components
Stencil: The Time for Vanilla Web Components has Arrived
Polymer Code Lab in Dart - DevFest Kraków 2014
Web Components for Java Developers
Building an Angular 2 App
Angular Data Binding
Building Grails Plugins - Tips And Tricks

More from ITCamp (20)

PDF
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
PDF
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
PDF
ITCamp 2019 - Peter Leeson - Managing Skills
PPTX
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
PDF
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
PDF
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
PPTX
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
PPTX
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
PPTX
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
PPTX
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
PPTX
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
PPTX
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
PPTX
ITCamp 2019 - Andy Cross - Business Outcomes from AI
PDF
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
PDF
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
PPTX
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
PPTX
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
PDF
ITCamp 2019 - Peter Leeson - Vitruvian Quality
PDF
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
PDF
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...

Recently uploaded (20)

PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PPTX
Chapter 5: Probability Theory and Statistics
PPT
What is a Computer? Input Devices /output devices
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Modernising the Digital Integration Hub
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
CloudStack 4.21: First Look Webinar slides
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Custom Battery Pack Design Considerations for Performance and Safety
OpenACC and Open Hackathons Monthly Highlights July 2025
Getting started with AI Agents and Multi-Agent Systems
The influence of sentiment analysis in enhancing early warning system model f...
Benefits of Physical activity for teenagers.pptx
Taming the Chaos: How to Turn Unstructured Data into Decisions
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
Chapter 5: Probability Theory and Statistics
What is a Computer? Input Devices /output devices
Flame analysis and combustion estimation using large language and vision assi...
Credit Without Borders: AI and Financial Inclusion in Bangladesh
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Abstractive summarization using multilingual text-to-text transfer transforme...
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Modernising the Digital Integration Hub
sustainability-14-14877-v2.pddhzftheheeeee
sbt 2.0: go big (Scala Days 2025 edition)
CloudStack 4.21: First Look Webinar slides
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx

Building Powerful Applications with AngularJS 2 and TypeScript - David Giard