26-28 Luglio Angular 2. One framework. Mobile and desktop.

Documenti analoghi
PER RINNOVARE IL SITO DEL JUG TRENTO. Riccardo Tasso

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

MODEL-VIEW-CONTROLLER PROBLEMA

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Programmazione Java Avanzata PATTERN

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

Ingegneria del Software 1: Eclipse

Guida introduttiva al PHP

GUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali

14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX

Sistema Operativo (Software di base)

Sviluppare applicazioni HTML5 solide e scalabili in AngularJS

Linguistica Computazionale: esercitazioni

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Un sito con Wordpress

Argomenti Corso SAP Online ABAP Completo

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch

Ingegneria degli Algoritmi (II parte pratica)

Modulo III - Creazione di documenti, presentazioni e report

Introduzione a Visual Studio 2005

Percorso Formativo SAP Online ABAP/4 Completo

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Capitolo I1: Laboratorio con DevC++

Area di formazione. Mobile & Technology. Ingolosito dalle nuove tecnologie? Appassionato di sviluppo App e Mobile? Corso ios avanzato Swift

Lab 01 Introduzione a Codelite

Mobile & Technology. Area di formazione. Corso ios base. Corso ios avanzato. Il mondo delle App: idee, creatività, business.

Android lezione 9 Le listview

PROGRAMMA DEL CORSO ADOBE DREAMWEAVER CS5

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

D B M G Il linguaggio HTML

La Back Office Console consente di costruire lo scheletro degli schema.

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

AJAX e altre applicazioni di Javascript. Luca Fabbri

Ambienti di Sviluppo

Corso sul linguaggio Java

SEDE OPERATIVA Via A. De Gasperi, 127/A Merate (LC) TEL. 039/ Manuale

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 8 novembre Corso di laurea in Economia

Programmazione web lato client con JavaScript. Marco Camurri 1

Sommario APPUNTI WEB SERVER E PHP

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Argomenti Corso SAP Online ABAP/4 Completo

Open Database Connectivity (ODBC)

Guida all uso della piattorma elearning QUICKPLACE

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD

Sommario. Nozioni di base su HTML

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

PROGRAMMA FORMAZIONE SCADA/HMI MOVICON

Mobile Programming. Prova scritta del 22/01/2016. Prof. De Prisco. Corso di laurea in Informatica

Cosa è importante: pom.xml Goal Plug-in Repository

Introduzione a MapGuide Author 6.5

Riferimento rapido dell'applicazione Novell Filr 2.0 Web

Capitolo 5 - Funzioni

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Guida pratica alla creazione di pagine web

Esercizio 1: archivio CD e DVD

Symantec IT Management Suite 8.0 powered by Altiris technology

JavaScript e CSS. Pasqualetti Veronica

contactsend PageBuilder engagement marketing contactsend

STORIA E CARATTERISTICHE

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Prof. Pagani Corrado HTML

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni

Analizzatori Lessicali con JLex. Giuseppe Morelli

Il Sistema Operativo

Logic Lab. un progetto italiano. soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE

Transcript:

26-28 Luglio 2016 Angular 2 One framework. Mobile and desktop.

AGENDA Gli argomenti che affronteremo in questa sessione 1 INTRODUZIONE 3 Cos è Angular 2 e perchè dovremmo usarlo. Architettura generale del framework e caratteristiche principali. SERVIZI Cosa sono i servizi e perchè sono fondamentali nell architettura del framework. 2 COMPONENTS e DATA-BINDING Cosa sono i components e come strutturano un applicazione. Principi di data-binding. 4 DEPENDENCY INJECTION Come funziona la DI in Angular e come possiamo trarne vantaggio. Cosa sono i providers e tipi principali. 2 INTRODUZIONE Angular 2 Framework supportato da google per sviluppare applicazioni web e mobile Promuove ordine architetturale Orientato a tecniche e tecnologie moderne (web-components...) Interamente open-source 3

NUOVE TECNOLOGIE ES6 Harmony e TypeScript Nel Giugno 2015 Ecma International ha reso standard una nuova versione di EcmaScript (ES6), del quale JavaScript è un implementazione Molte delle novità non sono ancora supportate dai browser.. Angular2 è scritto in TypeScript, sebbene si possano scrivere applicazioni usando ES5 4 ES6 Novità principali Let e Const Arrow Functions Template strings Destructuring Moduli Promises native Parametri di default 5

ES6 Come usarlo oggi Per essere certi che il nostro codice sia supportato da tutti i browser è bene (per il momento) convertirlo in ES5 Babel Opensource Traceur Google 6 TypeScript Nuove tecnologie by Microsoft Aggiunge il concetto di TIPO e di INTERFACCIA, quindi avremo debug a compile-time Implementa già oggi alcune funzionalità di ES7 (in draft) Ha il suo compilatore interno che permette di specificare il target dell output intellisense type-checking statico 7

TypeScript in Angular 2 É un linguaggio strongly typed L informazione sui tipi è contenuta in file *.d.ts Questa caratteristica garantisce migliore supporto da parte degli editor, migliore debug e in generale tools più potenti 8 TypeScript in Angular 2 Un decorator è una funzione che aggiunge dei metadati ad una classe e ai suoi metodi Un decorator si applica aggiungendo @<nome> prima della definizione della classe target Angular 2 ne fornisce alcuni: @Component, @Directive, @Injectable.. 9

ARCHITETTURA Concetti di base Un modulo è un un blocco di codice coeso che svolge una funzione specifica Ogni file con un istruzione di import o export è un modulo Un modulo può importare altri moduli 10 ARCHITETTURA Concetti di base Le applicazioni Angular 2 sono composte interamente da moduli I moduli sono legati da una struttura ad albero Il framework stesso è composto da moduli 11

ARCHITETTURA Concetti di base Components Services Router Directives 12 ARCHITETTURA Concetti di base Navbar Sidebar Tweet list 13

ARCHITETTURA Concetti di base Navbar Tweet list Sidebar Tweet Tweet Tweet 14 ARCHITETTURA Concetti di base Navbar Sidebar Tweet list Tweet Tweet Tweet Like Like Like 15

ARCHITETTURA Concetti di base App Navbar Tweet List Sidebar Tweet Like 16 ARCHITETTURA Ad alto livello 17

KEEP CALM it s time for #CODING Esercizio #1 OBIETTIVO Familiarizzare con le principali novità di ES6 STEPS 1. Uso di let e const 2. Arrow function 3. Class 4. Promise 19

COMPONENTS Introduzione Un component è l unione di una classe TS e di un template HTML La classe rende disponibili dei dati al template e ne gestisce la logica di interazione con l utente 20 COMPONENTS Un primo esempio Il decorator @Component aggiunge dei metadati alla classe e serve ad Angular per creare la giusta istanza di component e pubblicarla con il suo template come View 21

Esercizio #2 OBIETTIVO Creare la prima applicazione Angular 2 STEPS 1. Download del seed dal repository Glue Labs https://bitbucket.org/gluelabs/exercises/downloads 2. Aggiungere due components 3. Innestare i due components 22 DATA-BINDING Introduzione Senza un framework è necessario modificare manualmente il valore mostrato dalle view e reagire all interazione dell utente. Angular 2 supporta il data-binding. Il data-binding è la definizione di una relazione tra gli elementi HTML dei template e i dati del nostro modello. 23

DATA-BINDING 1. Interpolation Mostra nella view il valore di una proprietà del component {{ <exp> }} Tipologie 2. Property binding Crea una relazione tra un attributo di un elemento del DOM con una proprietà del component 3. Event binding Crea un collegamento tra una funzione specificata nel component e un evento appartenente all elemento del DOM 24 DATA-BINDING Property binding ed Event binding Proprietà del DOM Proprietà di Direttive Proprietà di Componenti <img [src]= > <div [ngclass]= > <avatar [id]= > <img (click)= > <form (ngsubmit)= > <avatar (onsave)= > CUSTOM BINDINGS 25

DATA-BINDING Custom Bindings Property Binding @Input() propertyname: string; Event Binding @Output() eventname = new EventEmitter(); I components comunicano tra loro con le proprietà (verso il basso) e con gli eventi (verso l alto) 26 DATA-BINDING Custom Bindings 27

Esercizio #3 OBIETTIVO Familiarizzare con i 3 tipi di data-binding che il framework ci fornisce STEPS 1. Aggiungere un espressione con interpolazione 2. Aggiungere al nostro root component un tag <img /> e dichiarare un binding di tipo proprietà sull attributo src 3. Aggiungere un tag <button></button> e definire un binding di tipo evento sul click 28 DATA-BINDING Two-way data-binding Attraverso l attributo (direttiva) ng-model è possibile combinare event binding e property binding sugli elementi di input. Il valore fluisce dal DOM al component e viceversa I due versi permettono di ottenere il two-way data binding 29

Esercizio #4 OBIETTIVO Implementare il two-way data-binding STEPS 1. Aggiungere un input di testo e definire su di esso l attributo (direttiva) ng-model 2. Mostrare il valore inserito dall utente in un <p></p> attraverso interpolazione 3. e attraverso una variable locale #? Angular only updates the bindings (and therefore the screen) if we do something in response to asynchronous events such as keystrokes. 30 DIRETTIVE Introduzione Una direttiva è un marker che estende il linguaggio HTML Possiamo vederla come un component senza template Consiste di una classe TS con prefisso il decorator @Directive 31

DIRETTIVE Tipologie Structural directives Modificano il DOM aggiungendo, modificando e rimuovendo nodi Attribute directives Modificano l aspetto o il comportamento di altri elementi, tipicamente sono semplici attributi di altri elementi HTML 32 Esercizio #5 OBIETTIVO Familiarizzare con le direttive built-in di Angular 2 STEPS 1. Structural directives con *ngfor, *ngif e ngswitch 2. Attribute directives con ngclass e ngstyle 33

DIRETTIVE Custom Le direttive built-in sono poche perchè combinate permettono di ottenere le funzionalità più comuni In casi particolari è possibile definire una nuova direttiva attraverso il decorator @Directive 34 DIRETTIVE Custom L elemento al quale verrà applicata la nostra direttiva si chiama Host, ed è possibile comunicare con esso attraverso i decorator: @HostBinding( <attribute> ) Definisce un binding tra un attributo dell elemento host e una proprietà della direttiva @HostListener( <event> ) Registra un listener su uno specifico evento sollevato dall host 35