SlideShare a Scribd company logo
Building a TV Show
with Angular, Bootstrap, and Web Services
David Giard
• Senior Technical Evangelist, Microsoft
• @DavidGiard
• davidgiard.com
• dgiard@Microsoft.com
• channel9.msdn.com/blogs/technology-and-friends
Links
• channel9.msdn.com/blogs/technology-and-friends
• angular.io/
• github.com/DavidGiard/dgtv
• tinyurl.com/dgtvslides
Single Page Applications
Traditional Web App
HTML Page
Click me!
Server
Request
Response
Thank you, David!
Single Page App
HTML Page
Click me!
Server
Request
Response
Thank you, David!
{‘
name’: ‘David’
}
Architecture
Web Service
Database
Web APIAngular 2
TypeScript
BootStrap
Single
Page
App
Function Tool
Web Service Web API
Database SQL Server
Single Page Application Angular 2 & TypeScript
Styling Bootstrap
Web API
Web API Routing
public class ValuesController : ApiController
{
public IEnumerable<string> Get() {…}
public string Get(int id) {…}
public void Post ([FromBody]string value) {… }
public void Put (int id, [FromBody]string value) {..}
public void Delete (int id) {…}
}
http://..../api/values
HTTP Verb
GET
POST
PUT
DELETE
Angular 2
and
TypeScript
Angular
• SPA Framework
• Open Source
• Data Binding
• Components
• Modularize
TypeScript
• Open Source
• Superset of JavaScript
• Transpiles to JavaScript
TypeScript
foo.ts foo.js
Transpile
foo.map
Transpile
TypeScript Transpiling
• Command Line: tsc or tsc -w
• Grunt, Gulp, etc.
• Visual Studio
TypeScript Advantages
• Productivity
• Static Type Analysis
• Language Tool Support
• Better management of large codebases
Type Checking
var num1 = 5;
var num2 = 10;
…
num2=“Fish”;
…
var sum = num1 + num2;
Type Checking
var num1: number = 5;
var num2 : number = 10;
…
num2=“Fish”;
…
var sum: number = num1 + num2;
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"
]
}
typings.json
{
"ambientDependencies": {
"es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
"jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#5c182b9af717f73146399c2485f70f1e2ac0ff2b"
}
}
Angular 2
Key Parts of Angular
• Modules
• Components
• Templates
• Directives
• Services
• Routing
• Http
Modules
Modules
• Built into Angular 2
• Makes it easier to split code into smaller pieces
• Import one module into another
• Export module to make it available for import
Modules
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
template: '<h1>Hello World</h1>'
})
export class AppComponent { }
Available
outside this
module
Use exported
module
In this module
Components
Components
• Class (properties & methods)
• Decorated with @Component
• Template
• Selector
• Imported references
Templates and Selectors
Templates and Selectors
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
template: '<h1>Hello World</h1>'
})
export class AppComponent { }
Selector
@Component({
selector: 'my-app',
template: '<h1>Hello World</h1>'
})
export class AppComponent { }
<my-app>Loading...</my-app>
Templates
@Component({
selector: 'my-app',
template: '<h1>Hello World</h1>'
})
export class AppComponent { }
<my-app>Loading...</my-app>
Output
Loading…
Templates
@Component({
selector: 'my-app',
template: '<h1>Hello World</h1>'
})
export class AppComponent { }
<my-app>Loading...</my-app>
Output
Hello World
Templates: Multi-Line
<my-app>Loading...</my-app>
Output
Hello World
Welcome
@Component({
selector: 'my-app',
template: `
<h1>Hello World</h1>
<div>
Welcome!
</div>
`
})
export class AppComponent { }
Templates: External file
@Component({
selector: 'my-app',
templateurl: 'myApp.html'
})
export class AppComponent { }
<my-app>Loading...</my-app>
Output
<h1>Hello World</h1>
<div>
Welcome!
</div>
myApp.html
Hello World
Welcome
@Component({
selector: 'my-app',
templateurl: 'myApp.html'
})
export class AppComponent { }
Bootstrapping
<my-app>Loading...</my-app>
<script>
…
System.import('app')
</script>
import {AppComponent}
from './app.component';
bootstrap(AppComponent);
Main.ts
= bootstrap file
Directives
Directives
• Allow you to attach behavior to DOM elements
Directives
• *ngFor
• *ngIf
• ngSwitch
• ngClass
• Custom Directives
*ngfor
<div *ngFor="#cust of customers">
{{cust.lastName}}, {{cust.firstName}}
</div>
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" }
];
Giard, David
Gates, Bill
Ballmer, Steve
Nadella, Satya
*ngIf
• Syntax: *ngif="condition"
• Removes element from DOM if condition is not “truthy”
*ngIf
<div>
<button (click)="clicked()">Toggle</button>
<div *ngIf="show">
Can you see me?
</div>
</div>
export class AppComponent {
show: boolean = true;
clicked() {this.show = !this.show; }
}
Toggle
Can you see me?
*ngIf
<div>
<button (click)="clicked()">Toggle</button>
<div *ngIf="show">
Can you see me?
</div>
</div>
export class AppComponent {
show: boolean = true;
clicked() {this.show = !this.show; }
}
Toggle
Can you see me?
LifeCycle Hooks
• OnInit
• OnChanges
• OnDestroy
OnInit
export class foo implements OnInit {
...
ngOnInit(){
...
}
}
Services
Services
• Class containing logic
• Shared Code: Used by components or other services
• Substitutable Objects
• Dependency Injection
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
Services
import { Injectable } from '@angular/core';
@Injectable()
export class CustService {
getCustomers() {
return customers;
}
}
…
CustomerService.ts
import { OnInit } from '@angular/core';
import {CustService} from CustomerService
export class AppComponent implements OnInit {
ngOnInit() {
this.customers = this.customerService.getCustomers();
}
constructor(private customerService:CustService) { }
}
Data Binding
• Simple Binding
• One-Way Property Binding
• 2-Way Property Binding
• Event Binding
1-Way Data Binding
• Square brackets around property
• []
1-Way Data Binding
@Component({
selector: 'my-app',
template: ‘<button [disabled]=" dataNotChanged">Save</button>’
})
export class AppComponent {
dataNotChanged= true;
}
Save
1-Way Data Binding
@Component({
selector: 'my-app',
template: ‘<button [disabled]=" dataNotChanged">Save</button>’
})
export class AppComponent {
dataNotChanged = true;
}
Save
1-Way Data Binding
@Component({
selector: 'my-app',
template: ‘<button [disabled]=" dataNotChanged">Save</button>’
})
export class AppComponent {
dataNotChanged = false;
}
Save
1-Way Data Binding
• Double curly braces around data
• {{}}
1-Way Data Binding
@Component({
selector: 'my-app',
template: '<h1>Hello World</h1>'
})
export class AppComponent {
id=1;
customerFirstName='David';
customerLastName='Giard';
}
1-Way Data Binding
@Component({
selector: 'my-app',
template: '<h1>Hello {{customerFirstName}}</h1>'
})
export class AppComponent {
id=1;
customerFirstName='David';
customerLastName='Giard';
}
1-Way
Data Binding
Hello David
1-Way Data Binding
@Component({
selector: 'my-app',
template: '<h1>Hello {{customer.FirstName}}</h1>'
})
export class AppComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
export class Customer{
FirstName: string;
LastName: string;
}
1-Way Data Binding
@Component({
selector: 'my-app',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: {{customer.FirstName}}</div>
<div>Last: {{customer.LastName}}
`
})
export class AppComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
David Details
First: David
Last: Giard
2-Way Data Binding
@Component({
selector: 'my-app',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.FirstName" </div>
<div>Last: <input [(ngModel)]="customer.LastName" </div>
`
})
export class AppComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
2-way data binding
David Details
David
Giard
First:
Last:
1-way data binding
2-Way Data Binding
@Component({
selector: 'my-app',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName" </div>
<div>Last: <input [(ngModel)]="customer.FirstName" </div>
`
})
export class AppComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
D Details
D
Giard
First:
Last:
2-Way Data Binding
@Component({
selector: 'my-app',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName" </div>
<div>Last: <input [(ngModel)]="customer.FirstName" </div>
`
})
export class AppComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
Da Details
Da
Giard
First:
Last:
2-Way Data Binding
@Component({
selector: 'my-app',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName" </div>
<div>Last: <input [(ngModel)]="customer.FirstName" </div>
`
})
export class AppComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
Dan Details
Dan
Giard
First:
Last:
Events binding
<control (eventname)="methodname(parameters)">
click event
<control (click)="methodtocall(parameters)">
e.g.,
<div (click)="onClick(customer)">
click
@Component({
selector: 'my-app',
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 AppComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
onClick(cust: Customer) { alert ("You Selected " + customer.FirstName); }
}
Routing
Routing
• Load components dynamically into page
• Link via URL
• Client-side
• Step 1: Bootstrap array of routes
Routing
const routes: RouterConfig = [
{
path: 'foo',
component: FooComponent
},
{
path: 'bar',
component: BarComponent
},
];
export const appRouterProviders = [
provideRouter(routes)
];
import { appRouterProviders } from './app.routes';
bootstrap(
AppComponent, [
appRouterProviders
]);
<a [routerLink]="[/foo']">Foo</a>
<a [routerLink]="[/bar']">Bar</a>
<router-outlet></router-outlet>
app.routes.ts
main.ts
Bootstrap routes
User clicks “Foo” link
HTTP
HTTP
import {Http } from '@angular/http';
...
this.http.get(webServiceUrl);
bootstrap(AppComponent, [
HTTP_PROVIDERS,
]);
main.ts
Component
Observables
Observables
Observable<T>
Function
Subscribe
Data
Observables
getEpisodes(): Observable<IEpisode[]> {
return Observable.create((observer: Observer<any>) => {
…
observer.next(this.episodes);
})
}
this.episodeService.getEpisodes().subscribe((data) => {
…
}
More Architecture
Model
IEpisode
id: number
title: string
description: string
dateRecorded: string
dateReleased?: string
location: string
videoUrl: string
episodeNumber: number
guests: string[]
links?: ILink[]
ILink
url: string;
title: string;
guest
Components
episodeList.component
episode.component
episode.component
episode.component
episode.component
Routing
app.component
<router-outlet></router-outlet>
…/episodeList
…/episodeList/guest/John Smith
…/episodeList/location/Chicago, IL
episodeList.component
episode.component
episode.component
episode.component
episode.component
Routing
app.component
<router-outlet></router-outlet>
…/episodeDetails/425
episodeDetails.component
Service
getEpisodes()
episodes: IEpisode[];
allEpisodes: IEpisode[];
getEpisodes()
episodeList.component
episode.service
api/episode
Subscribes to
DEMO
Links
• channel9.msdn.com/blogs/technology-and-friends
• angular.io/
• github.com/DavidGiard/dgtv
• tinyurl.com/dgtvslides

More Related Content

PPTX
Azure mobile apps
David Giard
 
PPTX
Angular2 and TypeScript
David Giard
 
PDF
Integrating consumers IoT devices into Business Workflow
Yakov Fain
 
PDF
RESTful services and OAUTH protocol in IoT
Yakov Fain
 
PPT
Introduction to Vaadin
Jeroen Benats
 
PPTX
Modern android development
Khiem-Kim Ho Xuan
 
PPTX
Lecture 32
Jannat Khan
 
PPTX
Angular JS, steal the idea
Scott Lee
 
Azure mobile apps
David Giard
 
Angular2 and TypeScript
David Giard
 
Integrating consumers IoT devices into Business Workflow
Yakov Fain
 
RESTful services and OAUTH protocol in IoT
Yakov Fain
 
Introduction to Vaadin
Jeroen Benats
 
Modern android development
Khiem-Kim Ho Xuan
 
Lecture 32
Jannat Khan
 
Angular JS, steal the idea
Scott Lee
 

What's hot (20)

PDF
Vaadin 7.2
Joonas Lehtinen
 
PDF
Vaadin & Web Components
Joonas Lehtinen
 
PPT
Angular App Presentation
Elizabeth Long
 
PDF
Introduction to Vaadin
netomi
 
PDF
Angular 2 - The Next Framework
Commit University
 
PDF
Supercharge Your Pages - New Ways to Extend the Confluence Editor
Atlassian
 
PDF
Introduction to React for Frontend Developers
Sergio Nakamura
 
PDF
WOdka
WO Community
 
PDF
Android dev tips
Kanda Runapongsa Saikaew
 
PPTX
Angular introduction students
Christian John Felix
 
PPTX
Angular Js Get Started - Complete Course
EPAM Systems
 
PPTX
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB
 
PDF
Creating lightweight JS Apps w/ Web Components and lit-html
Ilia Idakiev
 
PPTX
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...
Sébastien Levert
 
PPTX
Angular 9
Raja Vishnu
 
PDF
MOPCON 2014 - Best software architecture in app development
anistar sung
 
PPTX
Mobile for SharePoint with Windows Phone
Edgewater
 
PPTX
Angular interview questions
Goa App
 
PDF
Production Ready Web Services with Dropwizard
sullis
 
Vaadin 7.2
Joonas Lehtinen
 
Vaadin & Web Components
Joonas Lehtinen
 
Angular App Presentation
Elizabeth Long
 
Introduction to Vaadin
netomi
 
Angular 2 - The Next Framework
Commit University
 
Supercharge Your Pages - New Ways to Extend the Confluence Editor
Atlassian
 
Introduction to React for Frontend Developers
Sergio Nakamura
 
Android dev tips
Kanda Runapongsa Saikaew
 
Angular introduction students
Christian John Felix
 
Angular Js Get Started - Complete Course
EPAM Systems
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB
 
Creating lightweight JS Apps w/ Web Components and lit-html
Ilia Idakiev
 
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...
Sébastien Levert
 
Angular 9
Raja Vishnu
 
MOPCON 2014 - Best software architecture in app development
anistar sung
 
Mobile for SharePoint with Windows Phone
Edgewater
 
Angular interview questions
Goa App
 
Production Ready Web Services with Dropwizard
sullis
 
Ad

Viewers also liked (20)

PDF
Bootstrap
Jadson Santos
 
PDF
Kiss and the City - Presentation
Momentom
 
PDF
Présentation Emission TV En Mode Appart
createmotions
 
PPSX
latest_tv presentation show_timing
Shady Mohamed Magdy
 
PPTX
The Voice - The Engaging Model (Valerie Janssens)
BMMA - Belgian Management and Marketing Association
 
PPT
Pitching - Thinking Of Pitching Nottingham Print
Alec McPhedran
 
PPT
BLEST_TV_Presentation
SuJen Creatives
 
PPTX
Tv news practical
iain bruce
 
PDF
Produce and pitch to perfection for TV
NatashaFennell
 
PDF
Desenvolvimento Front end (AngularJS e Bootstrap)
Julian Cesar
 
PPTX
E tv pitch
mhays3
 
PPTX
Tv presentation research
Nicole Melia
 
PPTX
Abroad Presentation
jmutch147
 
PPTX
How to Pitch an Idea - Lessons from EMC TV & Toastmasters
Matthew Broberg
 
PPTX
PowerPoint: Pitching a TV Show
profluther
 
PDF
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
Cedric Spillebeen
 
PPT
Reality tv show concept
Ashutosh Sharma
 
PPT
10 Tips on How to Pitch a VC (FOWA, London)
Dave McClure
 
PPTX
Presentation for tv show
TomMichaelRoss
 
PDF
Bootstrap 3 Basic - Bangkok WordPress Meetup
Woratana Perth Ngarmtrakulchol
 
Bootstrap
Jadson Santos
 
Kiss and the City - Presentation
Momentom
 
Présentation Emission TV En Mode Appart
createmotions
 
latest_tv presentation show_timing
Shady Mohamed Magdy
 
The Voice - The Engaging Model (Valerie Janssens)
BMMA - Belgian Management and Marketing Association
 
Pitching - Thinking Of Pitching Nottingham Print
Alec McPhedran
 
BLEST_TV_Presentation
SuJen Creatives
 
Tv news practical
iain bruce
 
Produce and pitch to perfection for TV
NatashaFennell
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Julian Cesar
 
E tv pitch
mhays3
 
Tv presentation research
Nicole Melia
 
Abroad Presentation
jmutch147
 
How to Pitch an Idea - Lessons from EMC TV & Toastmasters
Matthew Broberg
 
PowerPoint: Pitching a TV Show
profluther
 
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
Cedric Spillebeen
 
Reality tv show concept
Ashutosh Sharma
 
10 Tips on How to Pitch a VC (FOWA, London)
Dave McClure
 
Presentation for tv show
TomMichaelRoss
 
Bootstrap 3 Basic - Bangkok WordPress Meetup
Woratana Perth Ngarmtrakulchol
 
Ad

Similar to Building a TV show with Angular, Bootstrap, and Web Services (20)

PPTX
Introduction to Angular2
Ivan Matiishyn
 
PDF
angular fundamentals.pdf angular fundamentals.pdf
NuttavutThongjor1
 
PPTX
Jan 2017 - a web of applications (angular 2)
Kasper Reijnders
 
PDF
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)
Ontico
 
PDF
Exploring Angular 2 - Episode 1
Ahmed Moawad
 
PDF
Angular 4 for Java Developers
Yakov Fain
 
PDF
Commit University - Exploring Angular 2
Commit University
 
PPTX
angular-concepts-introduction-slides.pptx
shekharmpatil1309
 
PPTX
mean stack
michaelaaron25322
 
PPTX
Angular 2 - a New Hope
Sami Suo-Heikki
 
PDF
Building Powerful Applications with AngularJS 2 and TypeScript - David Giard
ITCamp
 
PPTX
Angular2 + rxjs
Christoffer Noring
 
PDF
Angular JS2 Training Session #2
Paras Mendiratta
 
PDF
Stencil the time for vanilla web components has arrived
Gil Fink
 
PDF
Hidden Docs in Angular
Yadong Xie
 
PPTX
Simple setup for an Angular EventEmitter
mike2071
 
PDF
Understanding router state in angular 7 passing data through angular router s...
Katy Slemon
 
PDF
Meetup SkillValue - Angular 6 : Bien démarrer son application
Thibault Even
 
PDF
Technozaure - Angular2
Demey Emmanuel
 
PDF
Angularjs
Ynon Perek
 
Introduction to Angular2
Ivan Matiishyn
 
angular fundamentals.pdf angular fundamentals.pdf
NuttavutThongjor1
 
Jan 2017 - a web of applications (angular 2)
Kasper Reijnders
 
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)
Ontico
 
Exploring Angular 2 - Episode 1
Ahmed Moawad
 
Angular 4 for Java Developers
Yakov Fain
 
Commit University - Exploring Angular 2
Commit University
 
angular-concepts-introduction-slides.pptx
shekharmpatil1309
 
mean stack
michaelaaron25322
 
Angular 2 - a New Hope
Sami Suo-Heikki
 
Building Powerful Applications with AngularJS 2 and TypeScript - David Giard
ITCamp
 
Angular2 + rxjs
Christoffer Noring
 
Angular JS2 Training Session #2
Paras Mendiratta
 
Stencil the time for vanilla web components has arrived
Gil Fink
 
Hidden Docs in Angular
Yadong Xie
 
Simple setup for an Angular EventEmitter
mike2071
 
Understanding router state in angular 7 passing data through angular router s...
Katy Slemon
 
Meetup SkillValue - Angular 6 : Bien démarrer son application
Thibault Even
 
Technozaure - Angular2
Demey Emmanuel
 
Angularjs
Ynon Perek
 

More from David Giard (20)

PPTX
Data Visualization - CodeMash 2022
David Giard
 
PPTX
Azure data factory
David Giard
 
PPTX
Azure functions
David Giard
 
PPTX
University of Texas lecture: Data Science Tools in Microsoft Azure
David Giard
 
PPTX
University of Texas, Data Science, March 29, 2018
David Giard
 
PPTX
Intro to cloud and azure
David Giard
 
PPTX
Azure and deep learning
David Giard
 
PPTX
Azure and Deep Learning
David Giard
 
PPTX
Custom vision
David Giard
 
PPTX
Cloud and azure and rock and roll
David Giard
 
PPTX
Own your own career advice from a veteran consultant
David Giard
 
PPTX
You and Your Tech Community
David Giard
 
PPTX
Microsoft Azure IoT overview
David Giard
 
PPTX
Cloud and azure and rock and roll
David Giard
 
PPTX
Big Data on azure
David Giard
 
PPTX
Microsoft azure without microsoft
David Giard
 
PPTX
Effective Data Visualization
David Giard
 
PPTX
Containers
David Giard
 
PPTX
Cloud and azure and rock and roll
David Giard
 
PPTX
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
David Giard
 
Data Visualization - CodeMash 2022
David Giard
 
Azure data factory
David Giard
 
Azure functions
David Giard
 
University of Texas lecture: Data Science Tools in Microsoft Azure
David Giard
 
University of Texas, Data Science, March 29, 2018
David Giard
 
Intro to cloud and azure
David Giard
 
Azure and deep learning
David Giard
 
Azure and Deep Learning
David Giard
 
Custom vision
David Giard
 
Cloud and azure and rock and roll
David Giard
 
Own your own career advice from a veteran consultant
David Giard
 
You and Your Tech Community
David Giard
 
Microsoft Azure IoT overview
David Giard
 
Cloud and azure and rock and roll
David Giard
 
Big Data on azure
David Giard
 
Microsoft azure without microsoft
David Giard
 
Effective Data Visualization
David Giard
 
Containers
David Giard
 
Cloud and azure and rock and roll
David Giard
 
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
David Giard
 

Recently uploaded (20)

PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
This slide provides an overview Technology
mineshkharadi333
 
PPT
L2 Rules of Netiquette in Empowerment technology
Archibal2
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PPTX
Stamford - Community User Group Leaders_ Agentblazer Status, AI Sustainabilit...
Amol Dixit
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira Júnior
 
PPTX
Coupa-Overview _Assumptions presentation
annapureddyn
 
PDF
Revolutionize Operations with Intelligent IoT Monitoring and Control
Rejig Digital
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
This slide provides an overview Technology
mineshkharadi333
 
L2 Rules of Netiquette in Empowerment technology
Archibal2
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Doc9.....................................
SofiaCollazos
 
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Stamford - Community User Group Leaders_ Agentblazer Status, AI Sustainabilit...
Amol Dixit
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira Júnior
 
Coupa-Overview _Assumptions presentation
annapureddyn
 
Revolutionize Operations with Intelligent IoT Monitoring and Control
Rejig Digital
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 

Building a TV show with Angular, Bootstrap, and Web Services

Editor's Notes

  • #27: COMPONENT = Template (view, including HTML, bindings, directives) + Class (properties / methods; created with TypeScript) + Metadata (decorator: from Angular)
  • #39: structural directives (*ngIf, *ngFor) Replaces HTML