Silverlight per le applicazioni Enterprise Antonio Liccardi
CHI SONO Antonio Turibbio Liccardi Blog: Blog: – WebMobiDeveloper presso BcSoft s.n.c WebMobiDeveloper presso BcSoft s.n.c Co-Founder DotNetCampania Co-Founder DotNetCampania
Cosa è Silverlight Background: Background: – Evoluzione del web – Miglioramento della UI – Miglioramento dellinterazione – Adobe Flash / Flex 3
Cosa è Silverlight Cross-Platform / Cross-Browser Cross-Platform / Cross-Browser XAML XAML Supporto per animazioni, effetti grafici … Supporto per animazioni, effetti grafici … Supporto Audio/Video (anche HD & DRM) Supporto Audio/Video (anche HD & DRM) Supporto del.Net Framework (CLR / BCL / ManagedCode) Supporto del.Net Framework (CLR / BCL / ManagedCode) Oltre 60 controlli built-in Oltre 60 controlli built-in 4
Cosa è Silverlight 3.5 Silverlight 1.0 Marzo 2007 Funzionalità di base Solo XAML e Javascript (No managedCode & BCL) Marzo 2007 Funzionalità di base Solo XAML e Javascript (No managedCode & BCL) Silverlight 3.0 Marzo 2009 Supporto grafica 3D Easing function for animation Pixel Shaders Supporto ai temi Bitmap API Supporto H.264, AAC, MP4 IIS Media Services Out of Browser Experience Assembly Caching Validazione migliorata Marzo 2009 Supporto grafica 3D Easing function for animation Pixel Shaders Supporto ai temi Bitmap API Supporto H.264, AAC, MP4 IIS Media Services Out of Browser Experience Assembly Caching Validazione migliorata Silverlight 2.0 Marzo 2008 Conosciuta come Alpha 1.1 Preview Cross-Browser / Cross- Platform Aggiunta del CLR, BCL e migliorie allo XAML Isolated Storage Interfacciamento con WebServices, WCF, chiamate HTTP… Supporto di Linq, Ado.Net Data Services Media enchancements, Networking Support (Json, socket...) Marzo 2008 Conosciuta come Alpha 1.1 Preview Cross-Browser / Cross- Platform Aggiunta del CLR, BCL e migliorie allo XAML Isolated Storage Interfacciamento con WebServices, WCF, chiamate HTTP… Supporto di Linq, Ado.Net Data Services Media enchancements, Networking Support (Json, socket...) Silverlight 4.0 Supporto alla stampa, miglioramenti per lout of browser, miglioramenti per la localizzazione, template per business application, webcam, SEO… Silverlight 4.0 Supporto alla stampa, miglioramenti per lout of browser, miglioramenti per la localizzazione, template per business application, webcam, SEO… 5
Silverlight vs Flash 6
Silverlight vs WPF Silverlight è il fratello minore di WPF Silverlight è il fratello minore di WPF Entrambi usano XAML e CLR, BCL & Managed Code (Silverlight in parte!) Entrambi usano XAML e CLR, BCL & Managed Code (Silverlight in parte!) Silverlight eredita la stessa metodologia di realizzazione delle animazioni, forme ed effetti Silverlight eredita la stessa metodologia di realizzazione delle animazioni, forme ed effetti MediaElement MediaElement 7
.Net in Silverlight.Net ha una consolidata community di sviluppatori.Net ha una consolidata community di sviluppatori La conoscenza del.Net può essere riusata La conoscenza del.Net può essere riusata.Net è una tecnologia con features mature.Net è una tecnologia con features mature Perché non usare direttamente il.Net per Silverlight? Perché non usare direttamente il.Net per Silverlight? – Lintero framework occupa 200mb – Il Framework non è cross-platform – Silverlight non necessita di tutte le funzionalità del framework 8
ARCHITETTURA DI SILVERLIGHT 9
Larchitettura di Silverlight 10
Browser Host Non è altro che un plugin Non è altro che un plugin Lifecycle: Lifecycle: 1.Installation & Update 2.Activation 3.Deactivation 4.Out of Browser Experience Network Network BOM, DOM & Javascript BOM, DOM & Javascript 11
Presentation Core Non è altro che il runtime Non è altro che il runtime Codice Nativo Codice Nativo Javascript o XAML Javascript o XAML Display, Input, Controls, Media, DRM Display, Input, Controls, Media, DRM 12
.Net Inside Silverlight 13
CoreCLR 14 SilverlightSilverlight Base Class Libraries CoreCLRCoreCLR JITJIT Garbage Collector Security Model Exception Handling Loader & Binder Debugging APIs XAMLXAML Media Codecs DRMDRM
CoreCLR Gestione della memoria Gestione della memoria Common Type System and type safety Common Type System and type safety Gestione delle eccezioni Gestione delle eccezioni Threading Threading Code Security Code Security – Silverlight Sandbox 15
Base Class Library Base types Base types Input/Output Input/Output Crittografia Crittografia Reflection Reflection Collections Collections Globalization Globalization Serialization Serialization – XML & JSON 16
Silverlight Class Library Isolated Storage Isolated Storage Browser Interop Browser Interop Packaging Packaging 17
Networking Windows Communication Foundation Windows Communication Foundation – HTTP Request & Response – REST & POX – RSS Syndication – JSON – Sockets 18
Data Objects (supporto a LINQ) Objects (supporto a LINQ) XML (supporto a LINQ) XML (supporto a LINQ) JSON JSON Non cè ADO.NET!!! Non cè ADO.NET!!! – ADO.NET Data Services 19
Asincronia in Silverlight In Silverlight tutto è asincrono In Silverlight tutto è asincrono 1 solo thread con una coda di operazioni 1 solo thread con una coda di operazioni Concetto di Parallelismo Concetto di Parallelismo Multithreading Multithreading 20
INTRODUCING XAML
Cosa è lo XAML XAML => eXtensible Application Markup Language XAML => eXtensible Application Markup Language Deriva da XML Deriva da XML E un linguaggio dichiarativo, che consente la dichiarazione di oggetti nellinterfaccia E un linguaggio dichiarativo, che consente la dichiarazione di oggetti nellinterfaccia E direttamente mappato al code-behind tramite la classe di riferimento E direttamente mappato al code-behind tramite la classe di riferimento 22
Perché lo XAML è innovativo Consente di distinguere laspetto grafico da quello programmatico Consente di distinguere laspetto grafico da quello programmatico 23 Aspetto Grafico XAML Aspetto Programmatico C# / VB.Net … Applicazione Codice interpretato dal runtime
First look to XAML 24 Namespace per il mapping degli oggetti Silverlight Namespace per il mapping dello XAML Dichiarare un proprio namespace
Dichiarazione di oggetti in XAML 25 Content Element Sintax Attribute Element Sintax
Proprietà degli oggetti in XAML 26
Gerarchia degli oggetti in XAML Lo XAML ha una struttura ad albero Lo XAML ha una struttura ad albero La posizione dei nodi indica lordine di renderizzazione degli elementi (da sinistra a destra) La posizione dei nodi indica lordine di renderizzazione degli elementi (da sinistra a destra) 27
DEMO Expression Blend
NAVIGATION FRAMEWORK
Background Consentire agli sviluppatori di creare applicazioni web che abbiano più viste Consentire agli sviluppatori di creare applicazioni web che abbiano più viste Ogni singola vista deve eseguire un task dedicato Ogni singola vista deve eseguire un task dedicato Maggiore usabilità dellapplicazione stessa Maggiore usabilità dellapplicazione stessa Minore sforzo da parte dello sviluppatore Minore sforzo da parte dello sviluppatore 30
Background Gestire il tutto a mano Usare il Navigation Framework 31
Introduzione al Navigation Framework Si basa su due concetti Si basa su due concetti – Frame – Page Friendly Url Friendly Url Page Tracking Page Tracking Browser History Browser History 32
OUT OF BROWSER
Out Of Browser Introduce un concetto innovato per le applicazioni web Introduce un concetto innovato per le applicazioni web Abilitazione tramite le impostazioni dellapplicazione Abilitazione tramite le impostazioni dellapplicazione Lapplicativo girerà in una sandbox Lapplicativo girerà in una sandbox 34
Out Of Browser IsRunningOutOfBrowser(); IsRunningOutOfBrowser(); Install(); Install(); Possibilità di effettuare aggiornamenti Possibilità di effettuare aggiornamenti Possibilità di verificare la connessione di rete Possibilità di verificare la connessione di rete 35
ISOLATED STORAGE
Isolated Storage Rappresenta un mini file-system solo per Silverlight Rappresenta un mini file-system solo per Silverlight IsolatedStorageFile IsolatedStorageFile – GetUserStoreForSite – GetUserStoreForApplication Possibilità di salvare le impostazioni di default Possibilità di salvare le impostazioni di default – IsolatedStorageSetting 37
WCF RIA SERVICES
WCF RIA Service 39 Web Application BrowserBrowser Rich Internet Application DB ServicesServices Other Applications Data Access Layer AppLogic Services HTMLPresentationLogic Network ServicesServices By NikHil
Q&A
Un grazie di cuore a tutti gli sponsor Senza di loro oggi non saremmo qui!
Compilate il modulo di feedback! La vostra opinione per noi è fondamentale! Grazie!