SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
Living Lab
e-Suap
Architettura software generale
Caratteristiche principali
 Progettato completamente per il cloud (ma disponibile anche “on-premise”)
 Altamente scalabile grazie all’implementazione di un sistema di tipo “rich client” ed
all’utilizzo di un approccio Single-Page-Application (SPA).
 Basso consumo di banda per i round-trips server:
- Dopo aver scaricato ed aggiunto alla cache una prima volta le view ed i file javascript,
solo i dati viaggeranno in rete, senza alcuna informazione relativa al change tracker.
 Utilizzo di approcci di tipo “Rich full domain” e “API Data-Centric” in maniera simile a
quanto accade per le smart applications client-server basate sul .NET framework o Java.
 Sviluppo RAD (Rapid application development) con forte integrazione con Visual Studio
2013 e Typescript.
 Utilizzo delle potenzialitàofferte daHTML5 e svilppo in stile RIA Services: basso consumo
di banda, maggiore manutenibilità del codice, ecc.
 Client-Side development experience, in maniera simile a quanto accade con Silverlight e
WPF (Windows Presentation Foundation).
 Sviluppo di tipo Test Driven (TDD) grazie anche all’adozione del pattern MVVM e
all’applicazione dei principi dettati dal DDD (Domain-driven design)
 Presenza di numerosi casi di test: viene favorita una continua integrazione.
Layered Architecture
Il modello di dominio, la logica applicativa e di business, l’interfaccia utente e tutti gli altri layers
sono fortemente isolati. Le applicazioni sono organizzate in diversi domini, moduli e livelli.
Ciascun layer è altamente “coeso” e dipende solo dai livelli inferiori. Ogni “strato” è d’altro canto
fortemente disaccoppiato dai restanti. La logica applicativa e di business è isolata dalla user-
interface e dai layers relativi all’infrastruttura. I diversi domini sono legati tramite interfacce di
servizio e connessi attraverso l’utilizzo di pattern publish/subscribe su un Enterprise Service Bus,
che consente un maggiore disaccoppiamento, scalabilità e migliore distribuzione dei carichi di
lavoro.
 Entità e value objects definiscono lo stato di ogni singolo oggetto;
 Gli eventi di dominio passano tutti attraverso l’Enterprise Service Bus e raggiungono i
consumers attraverso le porte opportune;
 Services e controllers rendono la logica di business disponibile all’esterno (con appropriate
misure di sicurezza)
 Un’architettura modulare è garantita per ogni componente all’interno del proprio
livello(layer) di appartenenza. Ogni modulo ha uno sviluppo indipendente ed è debolmente
accoppiato con gli altri componenti nel sistema.
 I Repository patterns disaccoppiano la logica di business dalla “persistence” e dai servizi
esterni tramite opportune entità di dominio:
- Ciascun “consumer” vede solo una in-memory collection di tutti gli oggetti e tipi
aggregati;
 Grazie all’utilizzo dell’interfacciaIRepository<> edallacorrispondente generica interfaccia
UOW(unit of work) ogni entità di dominio è automaticamente aggiungibile, rimovibile e
ricercabile tramite “Rich Criteria Object”: di conseguenza gli sviluppatori possono
mantenere la logica applicativa strettamente focalizzata sui requisiti di business;
 Deepmodeling: L’approccio model-first conferisce all’intera architettura una caratteristica
di “Supple Design”. Utilizzando lo stesso ambiente di sviluppo sia per la scrittura del
codice, sia per la progettazione, gli sviluppatori possono avere una più chiara prospettiva di
ciò che deve essere implementato, grazie a strumenti di refactoring e remodeling più
semplici e presenti direttamente all’interno dell’ambiente di sviluppo. L’effetto netto può
essere così riassunto:
1) I behaviours sono più evidenti
2) I costi delle modifiche sono ridotti
3) L’ambiente di sviluppo è più comodo e piacevole per gli sviluppatoriù
 Grazie ad una sicurezzaclaim-based, un anti-corruption orthogonal layer forniscefeaturesdi
sicurezzastateless che viaggiano condatagrammi message-orientedattraverso diversi layers
verso il client e viceversa.
RAD DEVELOPMENT
 Behaviour e test driven development: i test sono parte integrante dell’applicazione e sono
direttamente ospitati all’interno dell’ambiente di sviluppo.
 La piattaforma è stata sviluppata basandosi sull’esperienza delle WPF e servizi RIA.
 Supporto First-Class Microsoft Typescript
 Le data entities client-side sono state generate attraverso template T4 direttamente dai Full
Entity Framework Models:
 Come ORM è stato infatti adottato Entity Framework, con pieno supporto alle classi
Typescript lato client: ereditarietà, astrazione, tipi complessi, approccio code-first o model-
first. L’Object Change Tacking client side è stato implementato direttamente nel client della
single page application, basato su Javascript.
 Scenari client-side offline, con la piena persistenza dei dati e supporto al change tracking;
 Supporto alle classi parziali per dati aggregati e UI-oriented value objects, per mezzo di
serialization surrogates.
 Basato su Open Source Hot Towel template, Durandal, Knockout etc.
 Implementazione veloce e potente dell’interfaccia utente , MVVM testing e molti altri
vantaggi.
 Supporto Html5 e compatibilità per tutti i tipi di browser e di dispositivi.
 Grazie all’UI compontent “indirection” è possibile cambiare vista per i diversi dispositivi
semplicemente cambiando la template library, senza modificare il codice.
 Rigorosa implementazione del pattern template.
 Riuso di tutti i componenti dell’interfaccia utente, dai singoli template fino alle viste
complesse, grazie alle librerie open-source Durandal e Knockout.
 La User Interface ha il proprio object model, come accade XAML.
 All’interno del browser, il runtime user interface designer legge e scrive in JAML
(abbreviazione per JSON Application Markup Language).
 Validazione ed altre features vengono supportate dalle tecniche repository-based.
 Grazie all’implementazione della sicurezza claim-based, in qualsiasi istante il security
context dell’utente che ha causato un’azione di trasformazione è reso sempre disponibile
all’esecuzione del codice lato server.
Business Processes
 Le entità dei processi di business sono definite in un “Common domain module”.
 La soluzione proposta non è strettamente legata ad uno specifico Business Process Engine.
 E’ possibile scegliere differenti soluzioni per le implementazioni di business process long-
term.
 Una semplice implementazione per Microsoft BizTalk Server è fornita “out of the box”:
 Monitoraggio dell’attività di business (BAM).
 KPI: I progetti BAM supportano l’integrazione con i MS SQL analysis services. Il portale
BAM fornisce tabelle Pivot e cubi che possono anche essereesportati dai BI tools e possono
essere integrati all’interno di Excel consentendo una visualizzazione real-time delle attività
dei business processes.
 Graphic IDE and Parties (users) possono essere gestiti con Visual Studio e BTS
Administration Console oppure in maniera programmatica, grazie ad un API disponibile out
of the box.
 Le componenti di processo sono assemblies che possono essere memorizzate, distribuite e
riusate attraverso “port modifiers” pubblici, privati o interni.

Más contenido relacionado

Similar a e-SUAP - General software architecture (Italiano)

Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseAlberto Lagna
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaProfesia Srl, Lynx Group
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)Sabino Labarile
 
Fly Together the TIM DIgital Transformation
Fly Together the TIM DIgital TransformationFly Together the TIM DIgital Transformation
Fly Together the TIM DIgital TransformationMarco Daccò
 
Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...confluent
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIAdiodorato
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...Marco Parenzan
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: OpsviewBabel
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 

Similar a e-SUAP - General software architecture (Italiano) (20)

Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
 
Scenario Framework
Scenario FrameworkScenario Framework
Scenario Framework
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole Italia
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)
 
LARUS 10th - Rampado Omar
LARUS 10th - Rampado OmarLARUS 10th - Rampado Omar
LARUS 10th - Rampado Omar
 
Fly Together the TIM DIgital Transformation
Fly Together the TIM DIgital TransformationFly Together the TIM DIgital Transformation
Fly Together the TIM DIgital Transformation
 
Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...Digital Integration Hub per il monitoraggio in near-real time della logistica...
Digital Integration Hub per il monitoraggio in near-real time della logistica...
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIA
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Brochure 2014 - Unified Management Platform
Brochure 2014 - Unified Management PlatformBrochure 2014 - Unified Management Platform
Brochure 2014 - Unified Management Platform
 
Virtual Agency
Virtual AgencyVirtual Agency
Virtual Agency
 
Parliamo di SOA
Parliamo di SOAParliamo di SOA
Parliamo di SOA
 
Architetture.Distribuite
Architetture.DistribuiteArchitetture.Distribuite
Architetture.Distribuite
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 

Más 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 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
 
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...Sabino Labarile
 

Más 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 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...
 
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
e-SUAP - Pubblicazione scientifica per evento Inista 2014 (International Symp...
 

e-SUAP - General software architecture (Italiano)

  • 2. Caratteristiche principali  Progettato completamente per il cloud (ma disponibile anche “on-premise”)  Altamente scalabile grazie all’implementazione di un sistema di tipo “rich client” ed all’utilizzo di un approccio Single-Page-Application (SPA).  Basso consumo di banda per i round-trips server: - Dopo aver scaricato ed aggiunto alla cache una prima volta le view ed i file javascript, solo i dati viaggeranno in rete, senza alcuna informazione relativa al change tracker.  Utilizzo di approcci di tipo “Rich full domain” e “API Data-Centric” in maniera simile a quanto accade per le smart applications client-server basate sul .NET framework o Java.  Sviluppo RAD (Rapid application development) con forte integrazione con Visual Studio 2013 e Typescript.  Utilizzo delle potenzialitàofferte daHTML5 e svilppo in stile RIA Services: basso consumo di banda, maggiore manutenibilità del codice, ecc.  Client-Side development experience, in maniera simile a quanto accade con Silverlight e WPF (Windows Presentation Foundation).  Sviluppo di tipo Test Driven (TDD) grazie anche all’adozione del pattern MVVM e all’applicazione dei principi dettati dal DDD (Domain-driven design)  Presenza di numerosi casi di test: viene favorita una continua integrazione.
  • 3. Layered Architecture Il modello di dominio, la logica applicativa e di business, l’interfaccia utente e tutti gli altri layers sono fortemente isolati. Le applicazioni sono organizzate in diversi domini, moduli e livelli. Ciascun layer è altamente “coeso” e dipende solo dai livelli inferiori. Ogni “strato” è d’altro canto fortemente disaccoppiato dai restanti. La logica applicativa e di business è isolata dalla user- interface e dai layers relativi all’infrastruttura. I diversi domini sono legati tramite interfacce di servizio e connessi attraverso l’utilizzo di pattern publish/subscribe su un Enterprise Service Bus, che consente un maggiore disaccoppiamento, scalabilità e migliore distribuzione dei carichi di lavoro.  Entità e value objects definiscono lo stato di ogni singolo oggetto;  Gli eventi di dominio passano tutti attraverso l’Enterprise Service Bus e raggiungono i consumers attraverso le porte opportune;  Services e controllers rendono la logica di business disponibile all’esterno (con appropriate misure di sicurezza)
  • 4.  Un’architettura modulare è garantita per ogni componente all’interno del proprio livello(layer) di appartenenza. Ogni modulo ha uno sviluppo indipendente ed è debolmente accoppiato con gli altri componenti nel sistema.  I Repository patterns disaccoppiano la logica di business dalla “persistence” e dai servizi esterni tramite opportune entità di dominio: - Ciascun “consumer” vede solo una in-memory collection di tutti gli oggetti e tipi aggregati;  Grazie all’utilizzo dell’interfacciaIRepository<> edallacorrispondente generica interfaccia UOW(unit of work) ogni entità di dominio è automaticamente aggiungibile, rimovibile e ricercabile tramite “Rich Criteria Object”: di conseguenza gli sviluppatori possono mantenere la logica applicativa strettamente focalizzata sui requisiti di business;  Deepmodeling: L’approccio model-first conferisce all’intera architettura una caratteristica di “Supple Design”. Utilizzando lo stesso ambiente di sviluppo sia per la scrittura del codice, sia per la progettazione, gli sviluppatori possono avere una più chiara prospettiva di ciò che deve essere implementato, grazie a strumenti di refactoring e remodeling più semplici e presenti direttamente all’interno dell’ambiente di sviluppo. L’effetto netto può essere così riassunto: 1) I behaviours sono più evidenti 2) I costi delle modifiche sono ridotti 3) L’ambiente di sviluppo è più comodo e piacevole per gli sviluppatoriù  Grazie ad una sicurezzaclaim-based, un anti-corruption orthogonal layer forniscefeaturesdi sicurezzastateless che viaggiano condatagrammi message-orientedattraverso diversi layers verso il client e viceversa.
  • 5. RAD DEVELOPMENT  Behaviour e test driven development: i test sono parte integrante dell’applicazione e sono direttamente ospitati all’interno dell’ambiente di sviluppo.  La piattaforma è stata sviluppata basandosi sull’esperienza delle WPF e servizi RIA.  Supporto First-Class Microsoft Typescript  Le data entities client-side sono state generate attraverso template T4 direttamente dai Full Entity Framework Models:  Come ORM è stato infatti adottato Entity Framework, con pieno supporto alle classi Typescript lato client: ereditarietà, astrazione, tipi complessi, approccio code-first o model- first. L’Object Change Tacking client side è stato implementato direttamente nel client della single page application, basato su Javascript.
  • 6.  Scenari client-side offline, con la piena persistenza dei dati e supporto al change tracking;  Supporto alle classi parziali per dati aggregati e UI-oriented value objects, per mezzo di serialization surrogates.  Basato su Open Source Hot Towel template, Durandal, Knockout etc.  Implementazione veloce e potente dell’interfaccia utente , MVVM testing e molti altri vantaggi.  Supporto Html5 e compatibilità per tutti i tipi di browser e di dispositivi.  Grazie all’UI compontent “indirection” è possibile cambiare vista per i diversi dispositivi semplicemente cambiando la template library, senza modificare il codice.  Rigorosa implementazione del pattern template.  Riuso di tutti i componenti dell’interfaccia utente, dai singoli template fino alle viste complesse, grazie alle librerie open-source Durandal e Knockout.  La User Interface ha il proprio object model, come accade XAML.  All’interno del browser, il runtime user interface designer legge e scrive in JAML (abbreviazione per JSON Application Markup Language).  Validazione ed altre features vengono supportate dalle tecniche repository-based.  Grazie all’implementazione della sicurezza claim-based, in qualsiasi istante il security context dell’utente che ha causato un’azione di trasformazione è reso sempre disponibile all’esecuzione del codice lato server.
  • 7. Business Processes  Le entità dei processi di business sono definite in un “Common domain module”.  La soluzione proposta non è strettamente legata ad uno specifico Business Process Engine.  E’ possibile scegliere differenti soluzioni per le implementazioni di business process long- term.  Una semplice implementazione per Microsoft BizTalk Server è fornita “out of the box”:  Monitoraggio dell’attività di business (BAM).  KPI: I progetti BAM supportano l’integrazione con i MS SQL analysis services. Il portale BAM fornisce tabelle Pivot e cubi che possono anche essereesportati dai BI tools e possono essere integrati all’interno di Excel consentendo una visualizzazione real-time delle attività dei business processes.  Graphic IDE and Parties (users) possono essere gestiti con Visual Studio e BTS Administration Console oppure in maniera programmatica, grazie ad un API disponibile out of the box.  Le componenti di processo sono assemblies che possono essere memorizzate, distribuite e riusate attraverso “port modifiers” pubblici, privati o interni.