SlideShare a Scribd company logo
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
Sviluppo di applicazioni RIA con Silverlight 2 e WCFFabrizio Bernabeihttp://dotnetumbria.org/blogs/bernabeiLorenzo Maiorfihttp://dotnet.innovactive.it
RIA – Ma c’era bisogno di un’altra sigla?!Ecco cosa ci dice Wikipedia:Rich Internet Applications (RIAs) are web applications thathave the features and functionality of traditional desktopapplications. RIAs typically form a stateful client applicationwith a separate services layer on the backend.RIAs typically do the following:run in a web browser, or do not require software installationrun locally in a secure environment called a sandbox
Interfacce Utente “Ricche”
Applicazioni RIARIA vs Desktop vs Web vs Smart-ClientIT and Security ProcessSmart  ClientDesktopClassic WebRIAUser-Experience (grafica, interazione, responsività, “push”, ecc.)Predisposizioneallarealizzazionedilogica business complessaPortabilità (cross-browser, cross-platform, cross-version, cross-age)Costi di sviluppo, test, manutenzioneDeployment
La nostra “Pagella”
Le keyword della modularità del software nel tempo…1980s2000s1990sObject-OrientedService-OrientedComponent-OrientedPolimorfismoEreditarietàIncapsulamentoMessaggiContratti+Schemi+PolicyInteroperabilitàIntegrazione BinariaDelocalizzazioneMetadati
SOAService Oriented ApplicationsQuattro LeggiSicurezzaSessioniTransazioniEspliciti solo iconfiniCompletaautonomiaSchemi e contrattiInteroperabilità via policyConcorrenzaEccezioniAffidabilità
Silverlight 2.0Plug-in cross-browser e cross-platformRuntime "managed" indipendente (subset di .NET 3.5)Gira in una sua sandbox con isolatedstorageMotore rendering vettorialeMotore per le animazioni
Silverlight 2.0Separazione interfaccia/logica con XAML (dichiarativo)Ricca libreria controlli inclusaInteroperabilità con DOM e scripting della pagina “host”Networking e supporto al "consumo" di serviziTanto altro (streaming, DLR, Deep Zoom, ecc.)
Cosa serve per iniziareVisual Studio 2008 (Tutte le versioni, Express compresa)Silverlight 2 Tools for Visual Studio 2008Silverlight 2 developer runtime (Windows)VS ToolsVS Silverlight Project TemplatesSDK documentationforintegrated help SDK (non-core) Controls (DataGrid, Date controls, Tabcontrols) ASP.NET Server Controls (asp:Media and asp:Silverlight)
Hello World SilverlightDemo
Altri strumenti utiliExpressionBlend 2 SP1Silverlight Toolkit (controlli MS su Codeplex)XAML Power ToysDeepZoom ComposerEclipse Tools for Microsoft Silverlight
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 Servizi0 o piùdirettive che descrivono il “comportamento” del servizio(Per ciascun tipo concreto) 1 o piùEndpointEhm…ah sì, un Endpoint…ovvero?
Cos’è un Endpoint WCF ?CBACBACBAABCDefinisce l’interfaccia di un servizio”ABC” di un servizio WCFAddress – dove è espostoBinding – come è espostoContract – cosa è espostoVia codice o configurazioneService
Hello World WCFDemo
Integrazione WCF/Silverlight 2.0Funziona solo conProfilo BasicHttpBinding (nessun supporto a WS-*)Sicurezza a livello di trasporto (SSL) e non di messaggioChiamate Cross-domain autorizzate dal chiamanteComunicazioni AsincroneMa supporta ancheAPI RESTSerializzazione/deserializzazione POX/JSONDataContractSerializer (serializza anche grafi con cicli)
Solo chiamate Asincrone!Ovvero: “Grazie, la richiamiamo noi…”ClientSilverlightProxyServizioWCFBeginFaiQualcosa(p1,p2,ref p3)rv=ar.EndFaiQualcosa(ref p3, out p4)Callback(IAsyncResultar)
Silverlight 2 + WCFDemo
E’ uno strumento che consente di implementare una interfaccia REST per un Entity Data ModelREST è l’acronimo di Representational State TransferUn’interfaccia REST fornisce un URL per ogni risorsaUtilizza i metodi http POST/GET/PUT/DELETE sulle risorseIl miglior esempio di REST è il web!API REST in delicious, flickr, google, ecc.ADO.NET Data Services
Mappando le comuni operazioni di un Database abbiamoCREATE 		= 	POSTREAD 			= 	GETUPDATE 		= 	PUTDELETE 		= 	DELETEPUT può essereMERGEPUTDa CRUD a PGPD
Una pagina web è la “rappresentazione” di una RisorsaForme di rappresentazione diverse per la stessa risorsaHTML per un essere umanoXML per un softwareADO.NET Data Services (aka “Astoria”) rappresenta comeJavascript Object Notation (JSON)Atom PubLa scelta della rappresentazione avviene per mezzo di un header HTTP-AcceptRappresentazione delle risorse
ADO.NET Data Services è basato su WCFUn DataService è una classe che estende DataService<T>“T” può essere un ObjectContext, Un DataContext o una classe customUn DataService espone le proprietà che implementano IQueryablePuò esporre anche dei metodi customCos’è un DataService
Ma il RAD dov’è? Caso d'uso IMDBTutti i film del mondo25 milioni di recordAttori, registi, scrittori, compositoriTrame, citazioni, errori, curiosità, edizioni, rating, ecc.DB liberamente scaricabile in formato testualeImportato in Microsoft SQL Server 2008Client Silverlight per l’interrogazione con “Astoria”
Applicazione IMDBDemo
RingraziamentiAndrea Cruciani e Paolo PossanziniTutti gli sponsorDotNetUmbria.orgLuca Paternoster (movie snippet)Lo staff di IMDBInnovactive (per il tempo rubato al lavoro)Microsoft per il supporto all’evento
Riferimenti

More Related Content

PPTX
Service Fabric: la potenza dei micro servizi
PPTX
Roadmap pubblicazione app WP7 - Community Tour 2011 DotNetUmbria
PPT
mokapp - Applicazioni fotografiche con Windows Phone 8
PPTX
ASP.NET Ajax Community Launch VS2008
PPTX
Asp.net 4 Community Tour VS2010
PPTX
PPTX
Tutti pronti per Windows 10?
PDF
Silicon Valley Culture
Service Fabric: la potenza dei micro servizi
Roadmap pubblicazione app WP7 - Community Tour 2011 DotNetUmbria
mokapp - Applicazioni fotografiche con Windows Phone 8
ASP.NET Ajax Community Launch VS2008
Asp.net 4 Community Tour VS2010
Tutti pronti per Windows 10?
Silicon Valley Culture

Similar to MS Days 08 Applicazioni RIA con Silverlight 2 e WCF (20)

PPTX
Wcf data services
PPT
WCF RIA SERVICE - Evento 1nn0va 2010
PPTX
Brokering over WCF @ dotNetMarche
PPTX
WeWantWeb - WCF Data Services
PPTX
Dal requisito all'implementazione @ CD2010
PPTX
Mobile e Smart Client
PPT
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
PPT
Il mercato SOA: futuro e prospettive
PPTX
ASP.NET Web API
PDF
Usare le nuove WCF Web Api per creare servizi RESTful
PDF
Web services
PDF
Lezione 8: Introduzione ai Web Service
PPTX
Win05 accesso ai dati in win 8
PPTX
SmartClient by Isomorphic - Rich internet applications
PPT
Un'architettura di riferimento per applicazioni enterprise
PPTX
Web api 2.0
PDF
Spring e Flex
PPT
SOA wonderful World
PPTX
Dot net framework 2
PPT
Studio e realizzazione di Web Services in Ambienti di Sviluppo Integrati
Wcf data services
WCF RIA SERVICE - Evento 1nn0va 2010
Brokering over WCF @ dotNetMarche
WeWantWeb - WCF Data Services
Dal requisito all'implementazione @ CD2010
Mobile e Smart Client
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Il mercato SOA: futuro e prospettive
ASP.NET Web API
Usare le nuove WCF Web Api per creare servizi RESTful
Web services
Lezione 8: Introduzione ai Web Service
Win05 accesso ai dati in win 8
SmartClient by Isomorphic - Rich internet applications
Un'architettura di riferimento per applicazioni enterprise
Web api 2.0
Spring e Flex
SOA wonderful World
Dot net framework 2
Studio e realizzazione di Web Services in Ambienti di Sviluppo Integrati
Ad

More from Fabrizio Bernabei (6)

PPTX
Sviluppare SPA con Vue
PPTX
Sviluppare SPA con Vue.js
PPTX
.NET & Linux: la strana coppia - DotNetDay 2018
PPTX
Introduzione a React Native - Mokapp 2017
PPTX
ASP.NET Core 1.0
PPTX
Mokapp2014 Lab Universal App
Sviluppare SPA con Vue
Sviluppare SPA con Vue.js
.NET & Linux: la strana coppia - DotNetDay 2018
Introduzione a React Native - Mokapp 2017
ASP.NET Core 1.0
Mokapp2014 Lab Universal App
Ad

MS Days 08 Applicazioni RIA con Silverlight 2 e WCF

  • 2. Sviluppo di applicazioni RIA con Silverlight 2 e WCFFabrizio Bernabeihttp://dotnetumbria.org/blogs/bernabeiLorenzo Maiorfihttp://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 thathave the features and functionality of traditional desktopapplications. RIAs typically form a stateful client applicationwith a separate services layer on the backend.RIAs typically do the following:run in a web browser, or do not require software installationrun locally in a secure environment called a sandbox
  • 5. Applicazioni RIARIA vs Desktop vs Web vs Smart-ClientIT and Security ProcessSmart ClientDesktopClassic WebRIAUser-Experience (grafica, interazione, responsività, “push”, ecc.)Predisposizioneallarealizzazionedilogica business complessaPortabilità (cross-browser, cross-platform, cross-version, cross-age)Costi di sviluppo, test, manutenzioneDeployment
  • 7. Le keyword della modularità del software nel tempo…1980s2000s1990sObject-OrientedService-OrientedComponent-OrientedPolimorfismoEreditarietàIncapsulamentoMessaggiContratti+Schemi+PolicyInteroperabilitàIntegrazione BinariaDelocalizzazioneMetadati
  • 8. SOAService Oriented ApplicationsQuattro LeggiSicurezzaSessioniTransazioniEspliciti solo iconfiniCompletaautonomiaSchemi e contrattiInteroperabilità via policyConcorrenzaEccezioniAffidabilità
  • 9. Silverlight 2.0Plug-in cross-browser e cross-platformRuntime "managed" indipendente (subset di .NET 3.5)Gira in una sua sandbox con isolatedstorageMotore rendering vettorialeMotore per le animazioni
  • 10. Silverlight 2.0Separazione interfaccia/logica con XAML (dichiarativo)Ricca libreria controlli inclusaInteroperabilità con DOM e scripting della pagina “host”Networking e supporto al "consumo" di serviziTanto altro (streaming, DLR, Deep Zoom, ecc.)
  • 11. Cosa serve per iniziareVisual Studio 2008 (Tutte le versioni, Express compresa)Silverlight 2 Tools for Visual Studio 2008Silverlight 2 developer runtime (Windows)VS ToolsVS Silverlight Project TemplatesSDK documentationforintegrated help SDK (non-core) Controls (DataGrid, Date controls, Tabcontrols) ASP.NET Server Controls (asp:Media and asp:Silverlight)
  • 13. Altri strumenti utiliExpressionBlend 2 SP1Silverlight Toolkit (controlli MS su Codeplex)XAML Power ToysDeepZoom ComposerEclipse 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 Servizi0 o piùdirettive che descrivono il “comportamento” del servizio(Per ciascun tipo concreto) 1 o piùEndpointEhm…ah sì, un Endpoint…ovvero?
  • 15. Cos’è un Endpoint WCF ?CBACBACBAABCDefinisce l’interfaccia di un servizio”ABC” di un servizio WCFAddress – dove è espostoBinding – come è espostoContract – cosa è espostoVia codice o configurazioneService
  • 17. Integrazione WCF/Silverlight 2.0Funziona solo conProfilo BasicHttpBinding (nessun supporto a WS-*)Sicurezza a livello di trasporto (SSL) e non di messaggioChiamate Cross-domain autorizzate dal chiamanteComunicazioni AsincroneMa supporta ancheAPI RESTSerializzazione/deserializzazione POX/JSONDataContractSerializer (serializza anche grafi con cicli)
  • 18. Solo chiamate Asincrone!Ovvero: “Grazie, la richiamiamo noi…”ClientSilverlightProxyServizioWCFBeginFaiQualcosa(p1,p2,ref p3)rv=ar.EndFaiQualcosa(ref p3, out p4)Callback(IAsyncResultar)
  • 19. Silverlight 2 + WCFDemo
  • 20. E’ uno strumento che consente di implementare una interfaccia REST per un Entity Data ModelREST è l’acronimo di Representational State TransferUn’interfaccia REST fornisce un URL per ogni risorsaUtilizza i metodi http POST/GET/PUT/DELETE sulle risorseIl 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 abbiamoCREATE = POSTREAD = GETUPDATE = PUTDELETE = DELETEPUT può essereMERGEPUTDa CRUD a PGPD
  • 22. Una pagina web è la “rappresentazione” di una RisorsaForme di rappresentazione diverse per la stessa risorsaHTML per un essere umanoXML per un softwareADO.NET Data Services (aka “Astoria”) rappresenta comeJavascript Object Notation (JSON)Atom PubLa scelta della rappresentazione avviene per mezzo di un header HTTP-AcceptRappresentazione delle risorse
  • 23. ADO.NET Data Services è basato su WCFUn DataService è una classe che estende DataService<T>“T” può essere un ObjectContext, Un DataContext o una classe customUn DataService espone le proprietà che implementano IQueryablePuò esporre anche dei metodi customCos’è un DataService
  • 24. Ma il RAD dov’è? Caso d'uso IMDBTutti i film del mondo25 milioni di recordAttori, registi, scrittori, compositoriTrame, citazioni, errori, curiosità, edizioni, rating, ecc.DB liberamente scaricabile in formato testualeImportato in Microsoft SQL Server 2008Client Silverlight per l’interrogazione con “Astoria”
  • 26. RingraziamentiAndrea Cruciani e Paolo PossanziniTutti gli sponsorDotNetUmbria.orgLuca Paternoster (movie snippet)Lo staff di IMDBInnovactive (per il tempo rubato al lavoro)Microsoft per il supporto all’evento
  • 28. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Hyper-V, RemoteApp, Windows logo, Windows Start button, Windows Server Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. All other trademarks are property of their respective owners. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.