SlideShare a Scribd company logo
1 of 27
ANGULAR
A cura di Emanuele Benedetti
PIANO DEL CORSO
Nozioni di base
Cos’è Angular
NodeJS
Angular-cli
Typescript
Componenti
Direttive
Associazione dei dati
Servizi
Dependency injection
Routing
Connessione al server
Mondo asincrono
Rxjs
Pipes
Librerie
Angular bootstrap
Font awesome
Angular material
Primeng
COS’È ANGULAR
Framework
completo
Tutto o
niente
Front end Typescript
NODEJS
• Javascript fuori dal browser
• Gestore di pacchetti (npm)
• Web server e backend
• Network scalabile
• Monothread basato su ciclo di eventi
• Open source
ANGULAR-CLI
npm install -g @angular/cli
• Generazione di codice
• Development web server
• Test runner
TypeScript
npm install -g typescript
• Super set di JavaScript
• Tipi statici
• Funzionalità ES6
• Scalabilità del codice
• Moduli, classi, interfacce ed enumeratori
• Funzioni lamda, asincrone e decoratori
• Supporto ad tools quali lint e intellisense
WEBSTORM
https://www.jetbrains.com/webstorm/
COMPONENTI
ng generate component myComponent
Architettura modulare
Separazione delle responsabilità
Model – View – ViewModel
Template HTML
Incapsulamento CSS
Input() ed Output()
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<h1>{{title}}</h1>
<h2>My favorite hero is: {{myHero}}</h2>
`
})
export class AppComponent {
title = 'Tour of Heroes’;
myHero = 'Windstorm’;
constructor() {
}
}
DIRETTIVE
• Comportamenti riutilizzabili
• Manipolazioni del DOM
• Manipolazione degli attributi
ASSOCIAZIONE
DEI DATI
Visualizzazione dei dati
ngFor, ngIf, ngSwitch
Eventi di output
Binding a due vie
ASSOCIAZIONE DATI
• Associazione dati unidirezionale
• Si usa {{ }} per visualizzare attributi del componente
nel modello
• Associazione proprietà (componente > modello)
• si usa [ ]
• Ci sono proprietà per elementi, componenti e
direttive
ASSOCIAZIONE DATI
• Associazione dati unidirezionale
• Associazione di eventi (modello > componente)
• Si usa ( )
• Eventi come click, mouse enter, changed…
• Associazione dati bidirezionale
• Invia valori da componente a modello e restituisce valori
modificati da modello a componente
• Si usa [( )]
SERVIZI
• ng generate service myService
• Rappresentano la logica condivisa
• Condividono dati o funzioni tra diverse parti di
un'applicazione Angular
• Favoriscono il riutilizzo del codice e contribuiscono
al basso accoppiamento e alta coesione degli
elementi del codice
• Sono iniettabili in altri elementi grazie alla
dependency injection
DEPENDENCY INJECTION
• Il modo in cui passiamo un'istanza di un oggetto
ad un'altra parte dell'applicazione Angular
• Le istanze dei servizi sono fornite attraverso i
costruttori
• Diminuzione delle interdipendenze fra elementi
• Decisione degli oggetti da usare a runtime
HTTP CLIENT
HTTP REST: GET,
POST, PUT e DELETE
Comunicazione
asincrona
JSON
ROUTING
• Il modo in cui ci si sposta nell’applicazione
• <base href=“/”>
• ROUTER_PROVIDERS, @Routes, <Router-outlet>,
[routerLink]
ROUTING
• Route nidificate
• Route per modulo
• Route guard
• Activated route
ng generate module --routing=true
MONDO ASINCRONO
Single thread Promise Observable
DOM non è thread safe
Ciclo degli eventi
Blocco dell’interfaccia
Accesso a valori non
pronti
Valore singolo
Funzioni resolve() e
reject()
Accesso a valori non
pronti
Valori multipli
Modello
publish/subscribe
Funzioni di
trasformazione e di
flusso
RXJS
• Comunicazione asincrona
• Valori multipli
• Modello publish/subscribe
• Vari tipi di observable:
• Observable e Subject
• Operatori:
• Creazione, unione, trasformazione, filtro,
multicast, gestione degli errori, utilità,
decisionali, aggregazione e calcolo.
• High order observable
• Funzione pipe()
PIPES
• Formattazione dell’output
• Simbolo |
• Pipe multiple
• Pipe predefinite:
• Date, uppercase, lowercase,
currency, ecc.
• Pipe personalizzate
LIBRERIE
Npm install –save @angular/material
ANGULAR BOOTSTRAP
• In puro Angular
• Tutti controlli di Bootstrap
• Controlli addizionali:
• datepicker
• rating
• typeahead
• Responsive
• Sistema a griglia
• Oggetti multimediali
FONT AWESOME
Migliaia di icone
Possibilità di
combinare le icone
Configurare le
icone con CSS
ANGULAR
MATERIAL
• Componenti comuni per desktop, mobile e web
• Configurabile con i temi
• Ottimizzata per Angular
• Componenti per moduli: autocomplete, checkbox,
datepicker, input, ecc.
• Componenti per la navigazione: menu, sidenav,
toolbar
• Componenti per il layout: card, divider, expansion
panel, grid list, ecc.
• Bottoni ed indicatori
• Popup e modal
• Tabelle di dati
PRIMENG
• Più di 80 componenti
• Open source
• Temi
• Adatta per il mobile

More Related Content

What's hot

Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Codemotion
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco Breveglieri
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On RailsLuca Mearelli
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Andrea Dottor
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormAndrea Dottor
 
Brokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarcheBrokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarcheMauro Servienti
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web ApplicationRoberto Messora
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Giuseppe Cramarossa
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campusDotNetCampus
 

What's hot (15)

Web dynpro for abap 02
Web dynpro for abap 02Web dynpro for abap 02
Web dynpro for abap 02
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e Delphi
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On Rails
 
Web dynpro for abap 03
Web dynpro for abap 03Web dynpro for abap 03
Web dynpro for abap 03
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
Web dynpro for abap 01
Web dynpro for abap 01Web dynpro for abap 01
Web dynpro for abap 01
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
 
Brokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarcheBrokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarche
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web Application
 
Workshop angular
Workshop angularWorkshop angular
Workshop angular
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
 
Angularjs
AngularjsAngularjs
Angularjs
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 

Similar to Corso 3 giorni Angular 2+

SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)Sabino Labarile
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)Giorgio Di Nardo
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)Sabino Labarile
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance ImprovementsMichele Aponte
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSsparkfabrik
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)Sabino Labarile
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 

Similar to Corso 3 giorni Angular 2+ (20)

SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance Improvements
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
Tesi8
Tesi8Tesi8
Tesi8
 
Virtual Agency
Virtual AgencyVirtual Agency
Virtual Agency
 
Web api 2.0
Web api 2.0Web api 2.0
Web api 2.0
 
Tutto su ASP.NET Identity
Tutto su ASP.NET IdentityTutto su ASP.NET Identity
Tutto su ASP.NET Identity
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 

Corso 3 giorni Angular 2+

  • 1. ANGULAR A cura di Emanuele Benedetti
  • 2. PIANO DEL CORSO Nozioni di base Cos’è Angular NodeJS Angular-cli Typescript Componenti Direttive Associazione dei dati Servizi Dependency injection Routing Connessione al server Mondo asincrono Rxjs Pipes Librerie Angular bootstrap Font awesome Angular material Primeng
  • 4. NODEJS • Javascript fuori dal browser • Gestore di pacchetti (npm) • Web server e backend • Network scalabile • Monothread basato su ciclo di eventi • Open source
  • 5. ANGULAR-CLI npm install -g @angular/cli • Generazione di codice • Development web server • Test runner
  • 6. TypeScript npm install -g typescript • Super set di JavaScript • Tipi statici • Funzionalità ES6 • Scalabilità del codice • Moduli, classi, interfacce ed enumeratori • Funzioni lamda, asincrone e decoratori • Supporto ad tools quali lint e intellisense
  • 7.
  • 9. COMPONENTI ng generate component myComponent Architettura modulare Separazione delle responsabilità Model – View – ViewModel Template HTML Incapsulamento CSS Input() ed Output()
  • 10. import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: ` <h1>{{title}}</h1> <h2>My favorite hero is: {{myHero}}</h2> ` }) export class AppComponent { title = 'Tour of Heroes’; myHero = 'Windstorm’; constructor() { } }
  • 11. DIRETTIVE • Comportamenti riutilizzabili • Manipolazioni del DOM • Manipolazione degli attributi
  • 12. ASSOCIAZIONE DEI DATI Visualizzazione dei dati ngFor, ngIf, ngSwitch Eventi di output Binding a due vie
  • 13. ASSOCIAZIONE DATI • Associazione dati unidirezionale • Si usa {{ }} per visualizzare attributi del componente nel modello • Associazione proprietà (componente > modello) • si usa [ ] • Ci sono proprietà per elementi, componenti e direttive
  • 14. ASSOCIAZIONE DATI • Associazione dati unidirezionale • Associazione di eventi (modello > componente) • Si usa ( ) • Eventi come click, mouse enter, changed… • Associazione dati bidirezionale • Invia valori da componente a modello e restituisce valori modificati da modello a componente • Si usa [( )]
  • 15. SERVIZI • ng generate service myService • Rappresentano la logica condivisa • Condividono dati o funzioni tra diverse parti di un'applicazione Angular • Favoriscono il riutilizzo del codice e contribuiscono al basso accoppiamento e alta coesione degli elementi del codice • Sono iniettabili in altri elementi grazie alla dependency injection
  • 16. DEPENDENCY INJECTION • Il modo in cui passiamo un'istanza di un oggetto ad un'altra parte dell'applicazione Angular • Le istanze dei servizi sono fornite attraverso i costruttori • Diminuzione delle interdipendenze fra elementi • Decisione degli oggetti da usare a runtime
  • 17. HTTP CLIENT HTTP REST: GET, POST, PUT e DELETE Comunicazione asincrona JSON
  • 18. ROUTING • Il modo in cui ci si sposta nell’applicazione • <base href=“/”> • ROUTER_PROVIDERS, @Routes, <Router-outlet>, [routerLink]
  • 19. ROUTING • Route nidificate • Route per modulo • Route guard • Activated route ng generate module --routing=true
  • 20. MONDO ASINCRONO Single thread Promise Observable DOM non è thread safe Ciclo degli eventi Blocco dell’interfaccia Accesso a valori non pronti Valore singolo Funzioni resolve() e reject() Accesso a valori non pronti Valori multipli Modello publish/subscribe Funzioni di trasformazione e di flusso
  • 21. RXJS • Comunicazione asincrona • Valori multipli • Modello publish/subscribe • Vari tipi di observable: • Observable e Subject • Operatori: • Creazione, unione, trasformazione, filtro, multicast, gestione degli errori, utilità, decisionali, aggregazione e calcolo. • High order observable • Funzione pipe()
  • 22. PIPES • Formattazione dell’output • Simbolo | • Pipe multiple • Pipe predefinite: • Date, uppercase, lowercase, currency, ecc. • Pipe personalizzate
  • 23. LIBRERIE Npm install –save @angular/material
  • 24. ANGULAR BOOTSTRAP • In puro Angular • Tutti controlli di Bootstrap • Controlli addizionali: • datepicker • rating • typeahead • Responsive • Sistema a griglia • Oggetti multimediali
  • 25. FONT AWESOME Migliaia di icone Possibilità di combinare le icone Configurare le icone con CSS
  • 26. ANGULAR MATERIAL • Componenti comuni per desktop, mobile e web • Configurabile con i temi • Ottimizzata per Angular • Componenti per moduli: autocomplete, checkbox, datepicker, input, ecc. • Componenti per la navigazione: menu, sidenav, toolbar • Componenti per il layout: card, divider, expansion panel, grid list, ecc. • Bottoni ed indicatori • Popup e modal • Tabelle di dati
  • 27. PRIMENG • Più di 80 componenti • Open source • Temi • Adatta per il mobile