Alcune riflessioni su AngularJS: cosa cambierà nella versione 2.0?

Alcune riflessioni su AngularJS: cosa cambierà nella versione 2.0?

new

Introduzione

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.

new

Perché Angular 2.0?

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:

  • Mobile
    La nuova versione di AngularJS è stata sviluppata concentrando molto l’attenzione sulle applicazioni mobile.
  • Moduli
    Molti moduli sono stati rimossi dal core di Angular risultando più concreto ed efficiente nelle performance.
  • Moderno
    Angular 2.0 ha come obbiettivo l’ECMAScript 6 ed essere “evergreen” su tutti i browser; questo significa meno preoccupazioni da parte dello sviluppatore nel riscontrare errori in browser differenti.

Quali sono le controversie?

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.

Quali sono i cambiamenti più significativi?

AtScript

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.

Migliorata la Dependency Injection (DI)

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.

Templating

In Angular 2.0 la compilazione dei template è diventato un processo asincrono poiché tutto il codice è basato su ES6.

Dynamic Loading

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.

Route

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.

Logging

Angular 2.0 conterrà un servizio chiamato diary.js: una funzionalità utilizzata per gestire i log della propria applicazione.

Scope

$scope è stato rimosso in favore delle classi ES6.

Conclusioni

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

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *