Blazor è un framework per la creazione di Single Page Application (SPA) tramite l’utilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo parte integrante dell’ecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
Selenium framework: Selenium è un framework open-source per l'automazione e il testing di applicazioni web che permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente.
Blazor è un framework per la creazione di Single Page Application (SPA) tramite l’utilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo parte integrante dell’ecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
Selenium framework: Selenium è un framework open-source per l'automazione e il testing di applicazioni web che permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente.
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
La recente affermazione in ambito web delle applicazioni rich basate su HTML5 e Javascript è diventato sorgente di una serie di librerie innovative e di strumenti che, se usati correttamente, possono semplificare enormemente lo sviluppo. In questa sessione sarà illustrato come sfruttare Typescript, in concomitanza con Angular e Bootstrap per realizzare applicazioni che sfruttino al massimo le possibilità dei browser e diano un feedback il più possibile simile alle applicazioni desktop.
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
Slide per l'ausilio alla presentazione od ad un corso veloce per lo sviluppo di Angular 2.
Comprende la struttura principale delle applicazioni di Angular, i componenti, le direttive, i servizi e pipes.
Breve panoramica sul typescript e sulle principali librerie.
ASP.NET MVC è una piattaforma aperta costruita come un puzzle di componenti. Per personalizzare il comportamento dei componenti interni del sistema è quindi sufficiente rimuovere uno dei tasselli e sostituirlo con uno scritto da noi. Un'operazione resa semplice ed immediata dall'interfaccia Dependency Resolver.
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
Molte applicazione sono (ancora) sviluppate in WebForm e non possono essere convertite automaticamente ad ASP.NET Core. Una riscrittura completa in molti casi è impossibile o impensabile da attuare. In questa sessione vedremo come migrare in modo graduale queste tipologie di applicazioni verso ASP.NET Core, andando in dettaglio nelle varie problematiche che solitamente si possono presentare. La sessione deriva da un'esperienza reale, che ha permesso di conoscere (nel bene o nel male) le difficoltà che si nascondo in queste migrazioni.
Evento: https://www.xedotnet.org/eventi/one-day-enterprise-application/
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
La recente affermazione in ambito web delle applicazioni rich basate su HTML5 e Javascript è diventato sorgente di una serie di librerie innovative e di strumenti che, se usati correttamente, possono semplificare enormemente lo sviluppo. In questa sessione sarà illustrato come sfruttare Typescript, in concomitanza con Angular e Bootstrap per realizzare applicazioni che sfruttino al massimo le possibilità dei browser e diano un feedback il più possibile simile alle applicazioni desktop.
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
Slide per l'ausilio alla presentazione od ad un corso veloce per lo sviluppo di Angular 2.
Comprende la struttura principale delle applicazioni di Angular, i componenti, le direttive, i servizi e pipes.
Breve panoramica sul typescript e sulle principali librerie.
ASP.NET MVC è una piattaforma aperta costruita come un puzzle di componenti. Per personalizzare il comportamento dei componenti interni del sistema è quindi sufficiente rimuovere uno dei tasselli e sostituirlo con uno scritto da noi. Un'operazione resa semplice ed immediata dall'interfaccia Dependency Resolver.
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
Molte applicazione sono (ancora) sviluppate in WebForm e non possono essere convertite automaticamente ad ASP.NET Core. Una riscrittura completa in molti casi è impossibile o impensabile da attuare. In questa sessione vedremo come migrare in modo graduale queste tipologie di applicazioni verso ASP.NET Core, andando in dettaglio nelle varie problematiche che solitamente si possono presentare. La sessione deriva da un'esperienza reale, che ha permesso di conoscere (nel bene o nel male) le difficoltà che si nascondo in queste migrazioni.
Evento: https://www.xedotnet.org/eventi/one-day-enterprise-application/
2. Framework
• Behavior e test-driven development (QUnit): I test sono
parte integrante dell’applicazione durante lo sviluppo
• Progettato interamente grazie a WPF e ai servizi RIA
• Pieno supporto con Microsoft TypeScript
• Framework perfettamente compatibile anche lato client
• Template basati su HTML5 per una single page
application e implementati con librerie quali Durandal,
Knockout, Angular
• Interfaccia utente veloce, potente e personalizzabile
grazie al Model View – View Model e ad altre moderne
tecnologie
3. Framework
• Entità di dati lato client generate grazie ai template T4 direttamente dai
modelli di Entity Framework
• Totale supporto a Entity Framework delle classi di TypeScript: ereditarietà,
astrazione, tipi complessi e così via
• Tracking degli oggetti lato client
• Object identity e serializzazione dei grafici delle entità grazie ai layers delle
Web-API, personalizzabili grazie a .NET e al serializzatore di TypeScript
• Supporto totale, lato client, di JavaScript e TypeScript alle relazioni uno a
molti, molti a uno e molti a molti
• Scenari lato client realizzabili perfettamente anche offline grazie alla
persistenza dei dati
• Supporto alle classi parziali grazie alla serializzazione
4. Metodologia del Framework
• Formalizzazione dei requisiti e del funzionamento
• In un primo momento tramite semplici documenti word
• Da implementare: stretta integrazione fra i documenti di analisi in word
e Visual Studio
• L’integrazione dell’analisi (CR) deve generare dei “work items” e
un’implementazione reale dell’applicazione
• Il perfetto funzionamento diventa un requisito del test driven
• In un primo momento i test sono realizzati con QUnit
• I requisiti dei test sono analizzati tramite documenti word
• In futuro le aggiunte saranno integrate automaticamente nel codice
• Funzionamento perfetto / miglioramento del test driven development
• Sono in fase di studio nuove funzionalità del test driven development
5. Metodologia del Framework
Test e behavior driven development
• 1) Definizione di cosa debba funzionare
– A cura di: analista
• 2) Implementazione dei test
– A cura di: sviluppatore
• 3) Implementazione del Model View – View Model
– A cura di: sviluppatore
• 4) Test rigorosi sul funzionamento del Model View – View Model
– A cura di: sviluppatore
• 5) Implementazione dell’HTML e delle viste
– A cura di: sviluppatore e designer
• 6) UAT (user acceptance testing)
– A cura di: clienti e stake holder
6. Framework
Data Layer
• First class Repository pattern e implementazione della Unit of Work
– Contratti (interfacce) per i Repository pattern generati automaticamente
– Creazione e connessione di implementazioni concrete grazie a Unity
dependency injection
– Differenti formati di dati possono essere uniti per ottenere le migliori
performance
• Nhibernate
• Entity Framework 7.x ASAP
• Approccio con modello DDD (data display debugger)
– Supporto totale a EDMX: generazione delle entità, sia lato server che lato client
– Supporto per Code First:
• Entità scritte a mano, con generazione delle entità stesse sia lato server che lato
client. Verosimilmente solo le interfacce saranno generate col supporto di AngularJS
– Sono allo studio altri specifi linguaggi (o metalinguaggi)
– Pieno supporto al change tracking
9. Framework
Service layer
• Servizi di legacy per WCF
– Protocolli WS
– IIS Application Server con self hosting
• Servizi per le Web Api
– Sicurezza basata su REST, JSON e SAML
– Grafici JSON pienamente supportati, anche con l’utilizzo di Javascript
• Trasferimento uniforme di dati
– Le entità DDD e tutti i tipi di valore sono serializzati e trasportati da e verso
i client JavaScript
– Serializzatore di entità (realizzato da Code Architects) per le entità tipizzate
di JSON .Net da e verso JavaScript
• Performance decisamente superiori rispetto ai metodi nativi di parsing e stringify di
JSON
• Serializza grafici di grandi dimensioni anche da JavaScript
• Remapping di namespace, moduli ed entità tipizzate di classi parziali ottenute tramite
ereditarietà
10. Framework
Service layer
• Supporto ai Web Components nativi
• Implementazione
– Implementazione orientata a oggetti
– Installazione e integrazione semplice ed intuitiva
<div class="testPageContent">
<shell-label params="value: 'Current date:', htmlClass:'pull-left'"></shell-label>
<shell-dateinput params="value: currentDate, htmlClass:'pull-left'"></shell-dateinput>
<br />
<shell-buttonicon params="text:'Prev', $onClick: function()
{ $root.gotoPrevPage() }, htmlClass:'pull-left'"></shell-buttonicon>
<shell-buttonicon params="text:'Today', $onClick: function()
{ $root.gotoTodayPage() }, htmlClass:'pull-left'"></shell-buttonicon>
11. Framework
Interfacca utente
• Supporto completo di HTML5 per tutti i
browser e dispositivi
• Ogni scenario d’uso per ogni interfaccia
utente è semplicemente un template!
– Grazie alla “indirezione” dei componenti
dell’interfaccia utente è possibile cambiare
visualizzazione per i differenti dispositivi
semplicemente aggiornando la libreria dei
template
12. Framework
User experience
• Pattern di implementazione dei template ben definito
• Validazioni e sicurezza sul dominio perfettamente integrate grazie al
binding fra MVVM e viste
• L’interfaccia utente ha il suo specifico modello, simile a un XAML
– La serializzazione e deserializzazione di frammenti dell’interfaccia
utente è possibile grazie a un’efficace implementazione di
TypeScript realizzata da Code Architects
• Sul browser, in runtime, il designer dell’interfaccia utente legge e
scrive JAML (JSON Application Markup Language)
• La validazione e le altre caratteristiche sono supportate da tecniche
di repository e da viewmodels aggregati dinamicamente
14. Framework
Gestione dell’applicazione
• Analisi
• Behavior e test driven development
• Versioning
– Sotto forma di pacchetti NuGet
• Metodologia
– Sviluppo di nuove applicazioni tramite:
• SCRUM ( più di un anno di esperienza in Code Architects su
questa metodologia su diversi progetti e team di sviluppo)
– Integrazione con applicazioni legacy
• Metodologia KANBAN
15. SUE AGILE
Facebook - SUE AGILE
Linkedin – SUE AGILE
www.sue-agile.codearchitects.com
http://sueagile.cloudapp.net/
16. Ing. Sabino Labarile
Code Architects s.r.l.
Via Jazzitiello 15 C/D Santeramo in Colle (Bari)
www.codearchitects.com