SlideShare une entreprise Scribd logo
1  sur  16
livinglabs.regione.puglia.it
SUE AGILE
Framework
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
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
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
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
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
Framework
Sicurezza
• Policies per le risorse:
– Risorse generiche / policy:
– Policy di accesso (url, metodi):
<policy resource="richiestaIntegrazione" action="Gestisci">
  <or>
    
<claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="OperatoreSUE" />
    <claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="Ente" />
    <claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="ComuneSUE" />
  </or>
</policy> 
<policy resource="/api/sue/*" action="GET">
  <and>
    <claim claimType="http://schemas.codearchitects.com/cah5shell/authenticated" claimValue="true" />
  </and>
</policy> 
Framework
Sicurezza lato client
– Comandi (comandi/azioni):
  <policy resource="command://GipoNext/Assignations" action="execute">
     <or>
 
      <claim claimType="http://schemas.xmlsoap.org/claims/Group" claimValue="Assignat
ionManager" />
 
      <claim claimType="http://schemas.xmlsoap.org/cah5shell/Group" claimValue="Assig
nationManager" />
     </or>
   </policy> 
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à
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> 
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
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
Framework
Validazioni
• Entità DDD e valori tipizzati
– Repository driven
• Documenti XML/JSON
– Schemi realizzati tramite annotazioni
• Dichiarazioni obbligatorie per il MVVM
– Entità regolari:
– Documenti XML/JSON
• Supporto multilingua
public Lastname: KnockoutObservable<string> = ko.observable('Rossi').extend({ r
equired: { message: 'Cognome obbl.' } }); 
self.bindTo({ path: 'Extensions/Documento/Richiedente/DatiAnagrafici/CF', namespace: '', type: 'string' }
) 
.extend({required: { message: 'C.O.' }, pattern: { params: this.Patterns.FiscalCode, message: 'Fornire un
 codice fiscale valido'}});
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
SUE AGILE
Facebook - SUE AGILE
Linkedin – SUE AGILE
www.sue-agile.codearchitects.com
http://sueagile.cloudapp.net/
Ing. Sabino Labarile
Code Architects s.r.l.
Via Jazzitiello 15 C/D Santeramo in Colle (Bari)
www.codearchitects.com

Contenu connexe

Similaire à SUE AGILE Framework (Italiano)

Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campusDotNetCampus
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service FabricMassimo Bonanni
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP WayLuca Milan
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro serviziMassimo Bonanni
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page ApplicationsRoberto Messora
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Giuseppe Vizzari
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%DomusDotNet
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)Giorgio Di Nardo
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del SoftwareYeser Rema
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net Leonardo Alario
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 

Similaire à SUE AGILE Framework (Italiano) (20)

Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service Fabric
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro servizi
 
Virtual Agency
Virtual AgencyVirtual Agency
Virtual Agency
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%
 
Tesi8
Tesi8Tesi8
Tesi8
 
Corso 3 giorni Angular 2+
Corso 3 giorni Angular 2+Corso 3 giorni Angular 2+
Corso 3 giorni Angular 2+
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 

Plus de Sabino Labarile

SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma Sabino Labarile
 
Manuale utente SUE AGILE
Manuale utente SUE AGILEManuale utente SUE AGILE
Manuale utente SUE AGILESabino Labarile
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)Sabino Labarile
 
SUE AGILE MVVM (English)
SUE AGILE MVVM (English)SUE AGILE MVVM (English)
SUE AGILE MVVM (English)Sabino Labarile
 
SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)Sabino Labarile
 
SUE AGILE Framework (English)
SUE AGILE Framework (English)SUE AGILE Framework (English)
SUE AGILE Framework (English)Sabino Labarile
 
SUE AGILE Architecture (English)
SUE AGILE Architecture (English)SUE AGILE Architecture (English)
SUE AGILE Architecture (English)Sabino Labarile
 
SUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMA
SUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMASUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMA
SUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMASabino Labarile
 
e-suap - client technologies- english version
e-suap - client technologies- english versione-suap - client technologies- english version
e-suap - client technologies- english versionSabino Labarile
 
e-suap cloud computing- English version
e-suap cloud computing- English versione-suap cloud computing- English version
e-suap cloud computing- English versionSabino Labarile
 
e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)Sabino Labarile
 
e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)Sabino Labarile
 
e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)Sabino Labarile
 
e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)Sabino Labarile
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client Sabino Labarile
 
e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)Sabino Labarile
 
e-suap - general software architecture (English)
e-suap - general software architecture (English)e-suap - general software architecture (English)
e-suap - general software architecture (English)Sabino Labarile
 
e-SUAP - General software architecture (English)
e-SUAP - General software architecture  (English)e-SUAP - General software architecture  (English)
e-SUAP - General software architecture (English)Sabino Labarile
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)Sabino Labarile
 
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...Sabino Labarile
 

Plus de Sabino Labarile (20)

SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma
 
Manuale utente SUE AGILE
Manuale utente SUE AGILEManuale utente SUE AGILE
Manuale utente SUE AGILE
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)
 
SUE AGILE MVVM (English)
SUE AGILE MVVM (English)SUE AGILE MVVM (English)
SUE AGILE MVVM (English)
 
SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)
 
SUE AGILE Framework (English)
SUE AGILE Framework (English)SUE AGILE Framework (English)
SUE AGILE Framework (English)
 
SUE AGILE Architecture (English)
SUE AGILE Architecture (English)SUE AGILE Architecture (English)
SUE AGILE Architecture (English)
 
SUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMA
SUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMASUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMA
SUE AGILE - GUIDA ALL'UTILIZZO DELLA PIATTAFORMA
 
e-suap - client technologies- english version
e-suap - client technologies- english versione-suap - client technologies- english version
e-suap - client technologies- english version
 
e-suap cloud computing- English version
e-suap cloud computing- English versione-suap cloud computing- English version
e-suap cloud computing- English version
 
e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)
 
e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)
 
e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)
 
e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client
 
e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)
 
e-suap - general software architecture (English)
e-suap - general software architecture (English)e-suap - general software architecture (English)
e-suap - general software architecture (English)
 
e-SUAP - General software architecture (English)
e-SUAP - General software architecture  (English)e-SUAP - General software architecture  (English)
e-SUAP - General software architecture (English)
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)
 
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
 

SUE AGILE Framework (Italiano)

  • 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
  • 7. Framework Sicurezza • Policies per le risorse: – Risorse generiche / policy: – Policy di accesso (url, metodi): <policy resource="richiestaIntegrazione" action="Gestisci">   <or>      <claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="OperatoreSUE" />     <claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="Ente" />     <claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="ComuneSUE" />   </or> </policy>  <policy resource="/api/sue/*" action="GET">   <and>     <claim claimType="http://schemas.codearchitects.com/cah5shell/authenticated" claimValue="true" />   </and> </policy> 
  • 8. Framework Sicurezza lato client – Comandi (comandi/azioni):   <policy resource="command://GipoNext/Assignations" action="execute">      <or>         <claim claimType="http://schemas.xmlsoap.org/claims/Group" claimValue="Assignat ionManager" />         <claim claimType="http://schemas.xmlsoap.org/cah5shell/Group" claimValue="Assig nationManager" />      </or>    </policy> 
  • 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
  • 13. Framework Validazioni • Entità DDD e valori tipizzati – Repository driven • Documenti XML/JSON – Schemi realizzati tramite annotazioni • Dichiarazioni obbligatorie per il MVVM – Entità regolari: – Documenti XML/JSON • Supporto multilingua public Lastname: KnockoutObservable<string> = ko.observable('Rossi').extend({ r equired: { message: 'Cognome obbl.' } });  self.bindTo({ path: 'Extensions/Documento/Richiedente/DatiAnagrafici/CF', namespace: '', type: 'string' } )  .extend({required: { message: 'C.O.' }, pattern: { params: this.Patterns.FiscalCode, message: 'Fornire un  codice fiscale valido'}});
  • 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