Silverlight per le applicazioni Enterprise Antonio Liccardi.
-
Upload
savio-lolli -
Category
Documents
-
view
212 -
download
0
Transcript of Silverlight per le applicazioni Enterprise Antonio Liccardi.
Silverlight per le applicazioni Enterprise
Antonio Liccardi
CHI SONO
Antonio ‘Turibbio’ Liccardi• Blog: – http://www.dotnetcampania.org/blogs/turibbio
• Email: [email protected]• @turibbio• WebMobiDeveloper presso BcSoft s.n.c• Co-Founder DotNetCampania
Cosa è Silverlight
• Background:– Evoluzione del web
– Miglioramento della UI
– Miglioramento dell’interazione
– Adobe Flash / Flex
3
Cosa è Silverlight
• Cross-Platform / Cross-Browser• XAML• Supporto per animazioni, effetti grafici …• Supporto Audio/Video (anche HD & DRM)• Supporto del .Net Framework (CLR / BCL /
ManagedCode)• Oltre 60 controlli built-in
4
Cosa è Silverlight
3.5Silverlight 1.0
• 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
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...)Silverlight 4.0
Supporto alla stampa, miglioramenti per l’out of browser, miglioramenti per la localizzazione, template per business
application, webcam, SEO…
5
Silverlight vs Flash
Funzionalità Silverlight Flash
Animazioni Time – Based Frame – Based
Testo & Immagini Incapsulati nello XAML Compressi nell’swf
Programmazione ManagedCode for .Net Framework
ActionScript
Compatibilità Win / Mac & Linux (Moonlight)
Cross-Platform
Tipo Immagine JPG & PNG Tutti i formati
Search Engine Friendly Si Quasi…
6
Silverlight vs WPF
• Silverlight è il fratello minore di WPF• Entrambi usano XAML e CLR, BCL & Managed
Code (Silverlight in parte!)• Silverlight eredita la stessa metodologia di
realizzazione delle animazioni, forme ed effetti• MediaElement
7
.Net in Silverlight
• .Net ha una consolidata community di sviluppatori
• La conoscenza del .Net può essere “riusata”• .Net è una tecnologia con features mature• Perché non usare direttamente il .Net per
Silverlight?– L’intero framework occupa 200mb– Il Framework non è cross-platform– Silverlight non necessita di tutte le funzionalità del
framework
8
ARCHITETTURA DI SILVERLIGHT
9
L’architettura di Silverlight
10
Browser Host
• Non è altro che un plugin• Lifecycle:
1. Installation & Update2. Activation3. Deactivation4. Out of Browser Experience
• Network• BOM, DOM & Javascript
11
Presentation Core
• Non è altro che il runtime• Codice Nativo• Javascript o XAML• Display, Input, Controls, Media, DRM
12
.Net Inside Silverlight
13
CoreCLR
14
Silverlight
Base Class Libraries CoreCLR
JIT
Garbage
Collector
Security Model
Exception
Handling
Loader &
Binder
Debugging APIs
XAML Media Codecs DRM
CoreCLR
• Gestione della memoria• Common Type System and type safety• Gestione delle eccezioni• Threading• Code Security– Silverlight Sandbox
15
Base Class Library
• Base types• Input/Output• Crittografia• Reflection• Collections• Globalization• Serialization–XML & JSON
16
Silverlight Class Library
• Isolated Storage• Browser Interop• Packaging
17
Networking
• Windows Communication Foundation– HTTP Request & Response– REST & POX– RSS Syndication– JSON– Sockets
18
Data
• Objects (supporto a LINQ)• XML (supporto a LINQ)• JSON• Non c’è ADO.NET!!!– ADO.NET Data Services
19
Asincronia in Silverlight
• In Silverlight tutto è asincrono• 1 solo thread con una coda di operazioni• Concetto di Parallelismo• Multithreading
20
INTRODUCING XAML
Cosa è lo XAML
• XAML => eXtensible Application Markup Language
• Deriva da XML• E’ un linguaggio dichiarativo, che consente la
dichiarazione di oggetti nell’interfaccia• E’ direttamente mappato al code-behind
tramite la classe di riferimento
22
Perché lo XAML è innovativo
• Consente di distinguere l’aspetto 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
SilverlightNamespace 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• La posizione dei nodi indica l’ordine di
renderizzazione degli elementi (da sinistra a destra)
27
DEMOExpression Blend
NAVIGATION FRAMEWORK
Background
• Consentire agli sviluppatori di creare applicazioni web che abbiano più “viste”
• Ogni singola vista deve eseguire un task dedicato
• Maggiore usabilità dell’applicazione stessa• 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– Frame– Page
• Friendly Url• Page Tracking • Browser History
32
OUT OF BROWSER
Out Of Browser
• Introduce un concetto innovato per le applicazioni web
• Abilitazione tramite le impostazioni dell’applicazione
• L’applicativo girerà in una sandbox
34
Out Of Browser
• IsRunningOutOfBrowser();
• Install();
• Possibilità di effettuare aggiornamenti
• Possibilità di verificare la connessione di rete
35
ISOLATED STORAGE
Isolated Storage
• Rappresenta un mini file-system solo per Silverlight
• IsolatedStorageFile– GetUserStoreForSite– GetUserStoreForApplication
• Possibilità di salvare le impostazioni di default– IsolatedStorageSetting
37
WCF RIA SERVICES
WCF RIA Service
39
Web ApplicationBrowser Rich Internet Application
DB
Services
Other Applications
Data Access Layer
AppLogic
Services
HTMLPresentati
onLogic
Network
Services 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!