MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
1.
2. Sviluppo di applicazioni RIA con Silverlight 2 e WCF Fabrizio Bernabei http://dotnetumbria.org/blogs/bernabei Lorenzo Maiorfi http://dotnet.innovactive.it
3. RIA – Ma c’era bisogno di un’altra sigla?! Ecco cosa ci dice Wikipedia: Rich Internet Applications (RIAs) are web applications that have the features and functionality of traditional desktop applications. RIAs typically form a stateful client application with a separate services layer on the backend. RIAs typically do the following: run in a web browser, or do not require software installation run locally in a secure environment called a sandbox
5. Applicazioni RIARIA vs Desktop vs Web vs Smart-Client IT and Security Process Smart Client Desktop Classic Web RIA User-Experience (grafica, interazione, responsività, “push”, ecc.) Predisposizioneallarealizzazionedilogica business complessa Portabilità (cross-browser, cross-platform, cross-version, cross-age) Costi di sviluppo, test, manutenzione Deployment
7. Le keyword della modularità del software nel tempo… 1980s 2000s 1990s Object-Oriented Service-Oriented Component-Oriented Polimorfismo Ereditarietà Incapsulamento Messaggi Contratti+Schemi+Policy Interoperabilità Integrazione Binaria Delocalizzazione Metadati
8. SOAService Oriented Applications Quattro Leggi Sicurezza Sessioni Transazioni Espliciti solo iconfini Completaautonomia Schemi e contratti Interoperabilità via policy Concorrenza Eccezioni Affidabilità
9. Silverlight 2.0 Plug-in cross-browser e cross-platform Runtime "managed" indipendente (subset di .NET 3.5) Gira in una sua sandbox con isolatedstorage Motore rendering vettoriale Motore per le animazioni
10. Silverlight 2.0 Separazione interfaccia/logica con XAML (dichiarativo) Ricca libreria controlli inclusa Interoperabilità con DOM e scripting della pagina “host” Networking e supporto al "consumo" di servizi Tanto altro (streaming, DLR, Deep Zoom, ecc.)
11. Cosa serve per iniziare Visual Studio 2008 (Tutte le versioni, Express compresa) Silverlight 2 Tools for Visual Studio 2008 Silverlight 2 developer runtime (Windows) VS Tools VS Silverlight Project Templates SDK documentationforintegrated help SDK (non-core) Controls (DataGrid, Date controls, Tabcontrols) ASP.NET Server Controls (asp:Media and asp:Silverlight)
13. Altri strumenti utili ExpressionBlend 2 SP1 Silverlight Toolkit (controlli MS su Codeplex) XAML Power Toys DeepZoom Composer Eclipse Tools for Microsoft Silverlight
14. Com’è fatto un Servizio WCF ? 1Host a scelta tra: Windows Service, WinForms, Console Application, IIS, WAS (su Windows Vista® e Windows Server 2008®), “Dublin” 1 o piùTipi Concreti che implementano altrettanti Servizi 0 o piùdirettive che descrivono il “comportamento” del servizio (Per ciascun tipo concreto) 1 o piùEndpoint Ehm…ah sì, un Endpoint…ovvero?
15. Cos’è un Endpoint WCF ? C B A C B A C B A A B C Definisce l’interfaccia di un servizio ”ABC” di un servizio WCF Address – dove è esposto Binding – come è esposto Contract – cosa è esposto Via codice o configurazione Service
17. Integrazione WCF/Silverlight 2.0 Funziona solo con Profilo BasicHttpBinding (nessun supporto a WS-*) Sicurezza a livello di trasporto (SSL) e non di messaggio Chiamate Cross-domain autorizzate dal chiamante Comunicazioni Asincrone Ma supporta anche API REST Serializzazione/deserializzazione POX/JSON DataContractSerializer (serializza anche grafi con cicli)
18. Solo chiamate Asincrone! Ovvero: “Grazie, la richiamiamo noi…” Client Silverlight Proxy Servizio WCF BeginFaiQualcosa(p1,p2,ref p3) rv=ar.EndFaiQualcosa(ref p3, out p4) Callback(IAsyncResultar)
20. E’ uno strumento che consente di implementare una interfaccia REST per un Entity Data Model REST è l’acronimo di Representational State Transfer Un’interfaccia REST fornisce un URL per ogni risorsa Utilizza i metodi http POST/GET/PUT/DELETE sulle risorse Il miglior esempio di REST è il web! API REST in delicious, flickr, google, ecc. ADO.NET Data Services
21. Mappando le comuni operazioni di un Database abbiamo CREATE = POST READ = GET UPDATE = PUT DELETE = DELETE PUT può essere MERGE PUT Da CRUD a PGPD
22. Una pagina web è la “rappresentazione” di una Risorsa Forme di rappresentazione diverse per la stessa risorsa HTML per un essere umano XML per un software ADO.NET Data Services (aka “Astoria”) rappresenta come Javascript Object Notation (JSON) Atom Pub La scelta della rappresentazione avviene per mezzo di un header HTTP-Accept Rappresentazione delle risorse
23. ADO.NET Data Services è basato su WCF Un DataService è una classe che estende DataService<T> “T” può essere un ObjectContext, Un DataContext o una classe custom Un DataService espone le proprietà che implementano IQueryable Può esporre anche dei metodi custom Cos’è un DataService
24. Ma il RAD dov’è? Caso d'uso IMDB Tutti i film del mondo 25 milioni di record Attori, registi, scrittori, compositori Trame, citazioni, errori, curiosità, edizioni, rating, ecc. DB liberamente scaricabile in formato testuale Importato in Microsoft SQL Server 2008 Client Silverlight per l’interrogazione con “Astoria”
26. Ringraziamenti Andrea Cruciani e Paolo Possanzini Tutti gli sponsor DotNetUmbria.org Luca Paternoster (movie snippet) Lo staff di IMDB Innovactive (per il tempo rubato al lavoro) Microsoft per il supporto all’evento