AngularJS è divenuto uno dei più grandi e popolari framework nel mondo; questa celere crescita probabilmente è dovuta anche dal fatto di essere un progetto di Google. AngularJS permette di implementare una struttura MVW (Model-View-Whatever) nel client, e allo sviluppatore di progettare siti one page molto complessi.
Noi di BP Sistema, per esempio, abbiamo adottato questa tecnologia per sviluppare la parte Client del nuovo MayApp.
Angular 2.0 fu ufficialmente annunciato nell’ottobre del 2014; è stato poi completamente riscritto il core con cambiamenti molto significativi, quindi, se volete iniziare da zero un nuovo progetto, l’attuale Angular non ha quasi nulla a che fare con la versione 2.
Prima di entrare nella discussione apriamo una parentesi: la data di rilascio era prevista per la fine del 2015, ma è stata posticipata in avanti.
La nuova versione è stata sviluppata focalizzando alcuni aspetti:
A quanto pare sembra non ci sia ancora un vero e proprio modo per migrare dalla precedente versione (1.x) alla versione 2.
È stato dichiarato che la versione 2 quasi sicuramente non supporterà le applicazioni che usano Angular 1.x. Questo è un grande problema per chi vuole tenere sempre aggiornato il proprio progetto.
AtScript è un superset di ES6 ed è stato usato per lo sviluppo di Angular 2.0. È un processo tramite il quale un Traceur compila il codice (usando ES6) per produrre codice ES5 ed utilizza la sintassi del TypeScript per generare errori di sintassi o cast non corretti.
La Dependency Injection è una delle parti più importati di Angular che lo fanno distinguere dagli altri competitors. Questa funzione è stata migliorata inserendo parti mancanti e controlli maggiori.
In Angular 2.0 la compilazione dei template è diventato un processo asincrono poiché tutto il codice è basato su ES6.
Grazie a questo processo sarà possibile istanziare direttive e controller “on the fly” cioè quando è necessario e quando si vuole, perché usa il paradigma ad oggetti.
Fino ad oggi Angular 1.x non ha mai considerato a fondo e migliorato l’uso delle Route per il templating. La maggioranza dei casi usa un altro grande progetto Open Source di nome Angular UI-Router, sicuramente migliore con più funzionalità e più prestante. Con la versione 2 Angular si è proposta di migliorarlo o addirittura cercare un Fork tra i due progetti.
Angular 2.0 conterrà un servizio chiamato diary.js: una funzionalità utilizzata per gestire i log della propria applicazione.
$scope è stato rimosso in favore delle classi ES6.
Non sarà facile immergersi in questo nuovo paradigma ad oggetti che utilizzerà Angular 2.0, sicuramente dopo aver fatto pratica la vita del programmatore sarà un po’ più semplice.
Vi lascio un esempio di come ho implementato un Menù Collapsed con Angular 2.0: https://plnkr.co/edit/x45vL0LTDyHM6P4tr6RL?p=preview