"Don't call us, we'll call you" - AngularJS meets Event-Driven ArchitectureLuca Milan
Slides del talk del 21 Marzo al 1° AngularJS Day ad Ancona. Come realizzare una dashboard per consultare in tempo reale l'andamento dei piloti in una gara del MotoGP. Tutte le variazioni saranno notificate al client evitando il polling continuo al server. L'architettura dell'applicazione seguirà il paradigma della Command-Query-Responsibility-Segregation (CQRS) in 'salsa' REST.
Demo su: http://angularjsday.azurewebsites.net/
Azure is a cloud platform that allows you to host our Web applications , providing a growing number of innovative and powerful . But not all services are really useful , or the application does not automatically become scalable , if we do not change our way of writing applications .
The CQRS is an architectural pattern that allows you to write code that takes advantage of naturally different services strategic Azure and write applications that scale horizontally in a natural way , consistent with the opportunities of cloud .
We will see how to write an ASP.NET MVC application following a pattern CQRS " standard " and drawing liberally never among the Azure services : Web Site , Service Bus , Web Jobs , Document DB , SQL Azure , Azure Cache , Azure Search
Visual Studio Online è già molto completo, ma offre interessanti possibilità di integrazione.
Vedremo come estendere Visual Studio Online (ma anche TFS) mediante le sue REST API ed i Service Hooks.
"Don't call us, we'll call you" - AngularJS meets Event-Driven ArchitectureLuca Milan
Slides del talk del 21 Marzo al 1° AngularJS Day ad Ancona. Come realizzare una dashboard per consultare in tempo reale l'andamento dei piloti in una gara del MotoGP. Tutte le variazioni saranno notificate al client evitando il polling continuo al server. L'architettura dell'applicazione seguirà il paradigma della Command-Query-Responsibility-Segregation (CQRS) in 'salsa' REST.
Demo su: http://angularjsday.azurewebsites.net/
Azure is a cloud platform that allows you to host our Web applications , providing a growing number of innovative and powerful . But not all services are really useful , or the application does not automatically become scalable , if we do not change our way of writing applications .
The CQRS is an architectural pattern that allows you to write code that takes advantage of naturally different services strategic Azure and write applications that scale horizontally in a natural way , consistent with the opportunities of cloud .
We will see how to write an ASP.NET MVC application following a pattern CQRS " standard " and drawing liberally never among the Azure services : Web Site , Service Bus , Web Jobs , Document DB , SQL Azure , Azure Cache , Azure Search
Visual Studio Online è già molto completo, ma offre interessanti possibilità di integrazione.
Vedremo come estendere Visual Studio Online (ma anche TFS) mediante le sue REST API ed i Service Hooks.
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Asp.NET MVC è un nuovo framework per lo sviluppo di applicazioni web alternativo al modello webform. Questo consente di utilizzare il pattern MVC per lo sviluppo di applicazioni Asp.NET, permettendo quindi una miglior separazione delle responsabilità che a sua volta porta ad una maggior manutenibilità, riusabilità e facilità nel testing.
La sessione illustrerà i motivi che hanno portato alla nascita di Asp.NET MVC e le sue caratteristiche fondamentali.
Agenda:
- Storia dei framework MS per lo sviluppo web
- Introduzione a Asp.NET MVC
- Vantaggi di Asp.NET MVC
- Il pattern MVC
- Hello MVC: DEMO
- Componenti di MVC: Routing, Controller, Model, View
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Asp.NET MVC è un nuovo framework per lo sviluppo di applicazioni web alternativo al modello webform. Questo consente di utilizzare il pattern MVC per lo sviluppo di applicazioni Asp.NET, permettendo quindi una miglior separazione delle responsabilità che a sua volta porta ad una maggior manutenibilità, riusabilità e facilità nel testing.
La sessione illustrerà i motivi che hanno portato alla nascita di Asp.NET MVC e le sue caratteristiche fondamentali.
Agenda:
- Storia dei framework MS per lo sviluppo web
- Introduzione a Asp.NET MVC
- Vantaggi di Asp.NET MVC
- Il pattern MVC
- Hello MVC: DEMO
- Componenti di MVC: Routing, Controller, Model, View
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
Lezione #4 di Paolo Gatti all'Università degli Studi di Teramo, Facoltà di Scienze della Comunicazione, avente come tema "SEO: Search Engine Optimization & Cloud computing".
What's New in ASP.NET 4.5 and Visual Studio 2012Andrea Dottor
Slide e codice lo potete trovare a questo link:
http://blog.dottor.net/post/2012/09/18/Codice-e-slide-della-sessione-Whats-New-in-ASPNET-45-and-Visual-Studio-2012.aspx
Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEDotNetCampus
Questa sessione tratterà delle implementazioni di architetture robuste e scalabili, in scenari di sviluppo applicativi rientranti nella tipologia dei Software as a Service. In particolare vedremo come accopiare le feature e le necessità del SaaS con servizi propri presenti su Azure; con focus su web, servizi mobili, data, e notification.
Dopo una breve introduzione dei concetti di base legati all'Internet of Things, durante questa sessione si fornirà una panoramica degli strumenti che Microsoft mette a diposizione degli sviluppatori per creare le proprie soluzioni IoT: Windows 10 for IoT e alcuni servizi di Azure quali Event Hubs e Stream Analytics. Si utilizzerà un semplice esempio di telemetria per mostrare la realizzazione pratica di uno scenario end-to-end per la trasformazione dei dati provenienti da un sensore in informazioni utili per effettuare analisi e/o prendere decisioni.
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONSDotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DotNetCampus
Amministrare Team Foundation Server può diventare un lavoro a tempo pieno, viste le complessità che può raggiungere. In questa sessione vedremo una raccolta di casi reali - basati sull'esperienza diretta - spaziando dalle attività più comuni fino alle situazioni estreme di una grande infrastruttura, quali strumenti utilizzare e soprattutto quali sono le best practice da tenere in considerazione.
Cosa ci aspetta in Visual Studio 2015 e Team Foundation Server 2015? La nuova versione della piattaforma di ALM e' in arrivo, con molte nuove funzionalita' per sviluppatori e non. In questa sessione faremo una panoramica di cio' che ci arrivera'a con la nuova release, con tutte le novita' per sviluppo, metodologie e DevOps.
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATADotNetCampus
Scopri come utilizzare Azure Machine Learning, un servizio cloud che consente alle aziende, università, centri di ricerca e sviluppatori di incorporare e sfrutturare nelle loro applicazioni funzionalità di apprendimento automatico e analisi predittiva su enormi set di dati. Tramite Azure ML Studio possiamo creare, testare, attuare e gestire soluzioni di analisi predittiva e apprendimento automatico nel cloud tramite un qualunque web browser. Durante la sessione si darà un saggio attraverso un esempio di analisi predittiva sul Flight Delay.
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDotNetCampus
In questa sessione verrà mostrato in che modo la soluzione Microsoft per la VDI (Virtual Desktop Infrastructure) e la virtualizzazione delle applicazioni con App-V ci aiutano a creare una nuova modalità di lavoro, per un’impresa efficiente e al passo coi tempi! La gestione dinamica dei desktop e delle applicazioni velocizza e ottimizza l’infrastruttura IT, permettendo così di rispondere in maniera agile alle mutevoli esigenze aziendali.
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREDotNetCampus
L’ Infrastructure as a Service è la possibilità di creare macchine virtuali nel Cloud, senza dover affrontare i costi legati all'acquisto di nuovo hardware, con il vantaggio della flessibilità e del Pay-as-Use. Durante questa sessione vedremo come creare le Virtual Machine su Microsoft Azure, come gestirle e come metterle in comunicazione con la propria infrastruttura. Creeremo quindi un Hybrid Cloud e ne valuteremo tutti i vantaggi.
Tutte le novià sulla nuova versione di SharePoint racchiuse in una sola singola sessione. Cosa è cambiato e come, cosa non cambierà e cosa non ci sarà più saranno i tre pilastri su cui costruiremo il pianodi avvicinamento a SharePoint 2016 previsto per la seconda parte del prossimo anno.
Di progetti fatti con Arduino se ne sono visti tanti, e tanti se ne continuano a vedere. Se ne vedono un po' meno con Netduino, il microcontrollore che gira con il .NET Micro Framework. In questa sessione vedremo come il nostro giocattolino può diventare un dispositivo di input per il nostro computer. Costruiremo un semplice circuito, e useremo Netduino per raccogliere i dati dall'ambiente esterno e inviarli ad un'applicazione Windows Store.
Microsoft Band e' uno dei piu' innovativi e cross platform smartwatch sul mercato. Recentemente sono stati rilasciati SDK per le principali piattaforme mobile. In questa sessione vedremo come interagire con lo smartwatch da applicazioni Windows Phone e Windows Store.
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!DotNetCampus
Unity3D 4.6 introduce un nuovo sistema di layout per creare interfacce grafiche per la gestione dei menu che permette in modo semplice e veloce di creare tutto quello che non è parte del gioco ma è indispensabile per l'experience dell'utente. Parleremo di interfacce utente nello spazio dello schermo con o senza prospettiva, supporto per l'allineamento perfetto dei pixel, controlli integrati e personalizzati, callback per i controlli dell'interfaccia con il nuovo persistent delegate system.
In questa sessione vedremmo una panoramica degli strumenti messi a disposizione per lo sviluppo nativo su Windows Phone 8.1. Verrà posta particolare attenzione al suo utilizzo per lo sviluppo di applicazioni ibride (C# / C++) che hanno la necessità di riutilizzare algoritmi sviluppati su piattaforme desktop.
Milioni di notifiche con Azure Notification Hub Manda milioni di notifiche ai tuoi utenti Windows, Android e iOS con poche righe di codice tramite Azure Notification Hub. Costruisci il tuo servizio di notifiche push multipiattaforma, scalabile e facile da implementare e gestire. E gratuito fino ad 1 milione di notifiche al mese.
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSDotNetCampus
I Mobile Services di Microsoft Azure rappresentano la soluzione cloud più completa e pratica per gestire diversi scenari, dal login nell'applicazione fino alla gestione dei dati in cloud. Per integrarli nelle nostre applicazioni Xamarin.Forms, però, sono necessari alcuni accorgimenti. Mostreremo come collegare applicazioni Xamarin.Forms ai Mobile Services, gestire le tabelle dati, validare e modificare i dati con gli script, gestire l'autenticazione degli utenti con i Mobile Services.
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTDotNetCampus
Windows 10 è la piattaforma alla base di tutte le tecnologie presenti e future di Microsoft, nella quale giocano un ruolo fondamentale le Universal Windows app. Nel corso di questa sessione vedremo come sviluppare un'applicazione in grado di girare su computer, telefoni, tablet, console e nel mondo IOT e come ottimizzarle per massimizzare le similitudini e gestire le differenze.
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
Fe02 ria con breeze e knockout
1. Template designed by
Rich Internet Application
con Breeze e Knockout
Giorgio Di Nardo
giorgio.dinardo@domusdotnet.org
@akelitz
blogs.ugidotnet.org/akelitz
Template designed by
3. Template designed by
Si fa presto a dire Model-View-ViewModel
Knockout: cosa, perché e come?
Breeze: cosa, perché e come?
Scrivere una RIA con Breeze e Knockout
Agenda agile
4. Template designed by
Si fa presto a dire Model-View-ViewModel
Knockout: cosa, perché e come?
Breeze: cosa, perché e come?
Scrivere una RIA con Breeze e Knockout
Agenda agile
5. Template designed by
Pattern di presentation della
famiglia MV*
Separation-of-Concerns
Rompere il legame forte tra i
dati (Model) e la loro
rappresentazione (View) per
mezzo di un terzo soggetto
(ViewModel)
MVVM = Model-View-ViewModel
Si definiscono e si idratano i
dati (Model) da visualizzare
Si veicolano i dati attraverso il
ViewModel verso la View
utilizzando un meccanismo di
data-bind che permetta la
gestione bidirezionale degli
aggiornamenti dei dati stessi
Si definiscono delle operazioni
nel ViewModel per gestire gli
eventi provenienti dalla View
6. Template designed by
Model: i dati gestiti dall’applicazione rappresentati sotto
forma di oggetto o array Javascript
View: la pagina HTML contenente i vari elementi di markup
ViewModel: un oggetto Javascript che espone i dati (Model)
in un formato «comodo» per l’interfaccia (View) e contiene le
operazioni per rispondere agli eventi da questa generati
MVVM in HTML
7. Template designed by
Si fa presto a dire Model-View-ViewModel
Knockout: cosa, perché e come?
Breeze: cosa, perché e come?
Scrivere una RIA con Breeze e Knockout
Agenda agile
8. Template designed by
Libreria in Javascript puro per semplificare la creazione in HTML di
applicazioni basate su MVVM
Caratteristiche principali:
Binding dichiarativo dei dati nel markup HTML
Gestione delle dipendenze con aggiornamento automatico nelle due direzioni
Facilità di estensione delle funzionalità di base
Compatibile con la maggior parte dei browser (IE 8+, Firefox 2+,
Chrome, …)
Non sostituisce ma si integra con jQuery
Knockout: cos’è?
9. Template designed by
Aiuta ad aumentare la SoC del progetto anche nella parte
storicamente più propensa allo «spaghetti code»
Consente di gestire in maniera più strutturata e manutenibile
gli elementi e gli eventi del DOM
Semplifica enormemente i problemi di unit testing della parte
client della nostra applicazione
….
Knockout: perché usarlo?
10. Template designed by
Si creano gli oggetti ViewModel e si definiscono al loro
interno le proprietà observable contenenti i dati da mostrare
e le funzioni associate ai comandi scatenabili dalla View
Si aggiungono gli attributi data-bind al markup della pagina
HTML
Si attiva il binding con una chiamata al metodo
ko.applyBinding
Knockout: come usarlo?
12. Template designed by
Si fa presto a dire Model-View-ViewModel
Knockout: cosa, perché e come?
Breeze: cosa, perché e come?
Scrivere una RIA con Breeze e Knockout
Agenda agile
13. Template designed by
Libreria in Javascript puro per semplificare la gestione dei dati lato
client in applicazioni RIA
Caratteristiche principali:
Potente motore di query dei dati con possibilità di filtri, ordinamenti e paginazione
Tracciatura delle modifiche con gestione delle dipendenze, notifica di eventi e validazione
Caching lato client dei dati per garantire una UI più responsiva
Compatibile con la maggior parte dei browser (IE 8+, Firefox 3+,
Chrome 5+, Safari 4+)
Disegnato su Web API ma compatibile con ogni servizio OData
Breeze: cos’è?
14. Template designed by
Aiuta ad costruire applicazioni responsive alleggerendo dal
carico della gestione delle entità lato client
Supporta out-of-box i principali framework di data binding
client-side (Knockout, Angular, Backbone)
Semplifica enormemente i problemi di unit testing della parte
client della nostra applicazione
….
Breeze: perché usarlo?
15. Template designed by
Si crea un oggetto EntityManager per accedere ai dati e
gestire la cache locale
Si fornisce la struttura del modello di dominio presente lato
server per mezzo di metadati generati automaticamente o
configurati manualmente
Si recuperano le informazioni dal server mediante un oggetto
EntityQuery e una sintassi immediata per impostare filtri,
ordinamento e paginazione
Breeze: come usarlo?
16. Template designed by
Si fa presto a dire Model-View-ViewModel
Knockout: cosa, perché e come?
Breeze: cosa, perché e come?
Scrivere una RIA con Breeze e Knockout
Agenda agile
17. Template designed by
• Creare un nuovo progetto
ASP.NET Web Application
vuoto
• Aggiungere i pacchetti
NuGet di Breeze e
Knockout
Preparare
il progetto
• Definire il modello e
gestire la persistenza
• Creare un Web API che
esponga le entità di
dominio
Scrivere
il servizio • Creare la struttura con
HTML5 e CSS3
• Utilizzare MVVM per
separare i dati dalla UI
• Utilizzare Knockout per il
Data Binding
Disegnare
l’applicazione
• Utilizzare Breeze per
l’accesso ai dati
• EntityManager come proxy
del servizio Web API
Consumare
i dati
Scrivere una RIA con Breeze e Knockout