AngularJS per lo sviluppatore web (ANGPRG)

Descrizione:

AngularJS è un framework per lo sviluppo di Single Page Application. L'acronimo SPA (Single Page Application) è sempre più presente nelle nostre specifiche e analisi, soprattutto oggi che la piattaforma HTML5, CSS3 e JavaScript, diventa di giorno in giorno più matura, spinte dalla onnipresente necessità di rendere fruibile la nostra applicazione sulle diverse tipologie di device.
Il corso prevede una panoramica introduttiva su AngularJS, presentation framework JavaScript, made in Google, utilizzando come pattern client side una curiosa combinazione tra Model View Controller e Model View ViewModel, e descrive poi tutti gli aspetti peculiari di questo framework fino a scoprire la potenza delle tanto "amate" direttive.

A chi si rivolge/Prerequisiti

Il corso è rivolto a web developer, JavaScript developer, ma anche sviluppatori in altri linguaggi con una conoscenza minimale di JavaScript.

Contenuti
  • Introduzione a JavaScript;
o   cosa manca e perché ne abbiamo bisogno;
o   come salvarsi dallo spaghetti code;
  • Introduzione al concetto di SPA;
o   Cosa fare client side e cosa fare server side;
  • Mettiamo un po? di ordine nell?entropia;
o   Nuget, Bower, NPM, JSHint;
o   WebEssentials, Less e Typescript;
o   Bootstrap 3;
o   Visual Studio o un altro IDE;
  • Introduzione ad AngularJS:
o   L?applicazione di base: ?up & running? in 2 minuti;
o   I moduli;
o   L?app;
o   Il processo di boot di una SPA;
  • Config phase;
  • Run phase;
o   Presentation model;
  • Breve recap sui concetti di base di un modello di presentazione dati;
  • Ovvero MVC con binding bidirezionale;
  • Assonanze con MVVM;
  • Il mio primo controller, ng-controller;
  • Lo $scope;
  • ControllerAs syntax
o   Introduzione ai concetti di Dependency Injection;
  • La minification;
o   Come lo incastriamo in un progetto Asp.NET MVC e WebAPI, perché prima o poi con il server dovremo parlare;
  • Bundles;
o   Come e cosa fare con i template di Razor;
  • Quante pagine? E per che cosa?
o   La navigazione client side: UI-Router;
  • URL con cancelletto vs URL senza cancelletto;
  • A cosa ci serve e perché ha senso la ?bookmarkability?;
  • I concetti di UI Composition;
  • La definizione degli stati, altresì noti come rotte;
  • Creiamo la nostra prima view e il nostro primo controller per navigare nell?app;
  • La transizione di stato: cerchiamo di dimenticarci degli URL;
  • Passaggio di parametri, rotte, query stringa, $state e $stateParams;
  • Le transizioni di stato sono asincrone: ?resolve?;
  • Introduzione alle promise: $q;
  • Un modo per fare security;
o   Comunicazione con il back-end;
  • $http;
  • CQRS anyone?;
o   Visualizzazione di dati complessi: data binding;
  • Simple one way binding;
  • Ng-repeat;
  • Binding options;
  • Filtri;
o   Editing dei dati: ng-model;
o   Il processo di validazione di un form;
  • Il salvataggio dei dati;
o   Invocazione del controller: ng-click;
o   Post dei dati verso il backend;
o   UX?2-max: la notifica via SignalR;
  • Introduzione alla messaggistica client-Side: $boradcast e $on;
  • Creazione di componenti riutilizzabili;
o   I servizi: costruiamo i nostri servizi stateless;
o   Le direttive: ovvero UserControl client Side;
  • Injection, compile, link, scope isolation, controller, $watch, jquery;
  • Visualizzazione di dati complessi: un esempio di data template;
  • Integrazione con Bootstrap;
  • Un esempio complesso: Il typeahead;