Wcf data services

download Wcf data services

of 48

  • date post

    14-Dec-2014
  • Category

    Technology

  • view

    380
  • download

    0

Embed Size (px)

description

WCF Data Services is the Microsoft implementation of OData protocol.

Transcript of Wcf data services

  • 1. WCFDataServicesinVS2012Salvatore SorrentinoVisual Studio 2012 Day Napoli

2. ContattiMail: salvatore.sorrentino@live.comTwitter: csharpNapoliBlog: http://dotnetcampania.org/blogs/salvatore/http://www.scoop.it/t/it-s-a-strange-world 3. Background Laurea e Dottorato in Fisica delle Particelle Elementari Fortran 77, C, C++ Simulazione Montecarlo Passaggio al Mondo Microsoft: 1999 Uso di Visual Studio: dal 1999 (senza interruzioni) Adozione del .NET Framework (dalla versione 2.0) Lavoratore Autonomo dal 2009 (consulenze in rock e serie tv!) Socio DotNetCampania dal 2011 4. Indice Odata (Motivazioni e definizione) Costruzione di un WCF Data Service in vs Pubblicazione di un servizio Consumo di un servizio (Tante demo!) 5. Information Silo 6. Data Silos 7. La diffusione di smartphone e tablet(Fonte CISCO 2011) 8. Traffico su rete mobile 9. Non solo video di gatti su Youtube... 10. Utilizzo (Ottobre 2012) 11. Quali dispositivi? (Ottobre 2012) 12. Vendite di Tablet (2012 vs 2011) 13. There is a vast amount of dataavailable today and data is nowbeing collected and stored at a ratenever seen before. Much, if notmost, of this data however is lockedinto specific applications or formatsand difficult to access or to integrateinto new uses. 14. Rompere le catene deisilos! Ma come? 15. Una possibile soluzione usare unarchitettura orientataai servizi (SOA)Windows Communication Foundation (WCF) un frameworkmaturo, ideale nella realizzazione di soluzioni Enterprise ma....non il prodotto ideale per realizzare il nostro sogno. 16. WCF non la soluzione Pu essere complicato per certe tecnologie clientconsumare correttamente un servizio WCF Manca uno standard nella definizione dei metodi/funzioni / operazioni del servizio InserisciLibroPerCategoriaPerSezionePesoEFaseLunare(int parametro1, int parametro2,int parametro3, string parametro4) 17. WCF non la soluzione (Parte 2)Non esiste in WCF uno standard per la nomenclaturaDelle operazioni CRUD.Il servizio fornisce un .wsdl e si aspetta che il clientcrei oggetti proxy in grado di interpretare tutte lebizzarrie usate nella costruzione del servizio 18. REST (Roy Fielding, 2000)REST (Representational State Transfer) uno stilearchitetturale per sistemi distribuiti come il World Wide WebEsistono risorse (fonti di informazione) a cui si pu accederetramite un identificatore globale (URI)Per utilizzare le risorse, le componenti di una rete comunicanoattraverso uninterfaccia standard (ad esempio HTTP) e si scambianoRAPPRESENTAZIONI di queste risorse (documenti) 19. REST Illustrato URL della Risorsa Risorsa URL Click (State Transfer)Rappresentazione 20. Servizi Web RESTUn servizio Web REST un servizio web implementato usandoHTTP e i principi di REST. Linsieme di operazioni supportate dalservizio utilizza i metodi HTTP (GET, PUT , POST, DELETE)Con REST garantiamo luniformit del protocollo riguardo leoperazioni CRUD 21. REST non bastaQuando eseguiamo un GET, che cosa ci viene restituito? Un xmlnudo e crudo? Un xml pi strutturato? Un testo ASCII?Concordare un formato un grande passo avanti per arrivareallinteroperabilit dei sistemi.Microsoft, nella definizione del protocollo Odata, ha adottato lusodi AtomPub e Json come content types trasmessi in rete. 22. AtomPub 23. Json (application/json)JSON (Javascript Object Notation uno standard text-based perlo scambio di dati. Nasce da Javascript per rappresentare strutturedati semplici e array, chiamati objects. 24. REST + AtomPub + Json non bastanoAtomPub un bel passo avanti ma ha un problema: non siinteressa per nulla di quali dati siano contenuti nei suoi campi.Unapplicazione client potrebbe avere difficolt a trattare in manierauniforme un documento AtomPub. Ossia...Capire che un documento AtomPub rappresenta una entit!! 25. Modellazione di un ServizioCos come usiamo un ORM per mappare oggetti a tabelle di undatabase, vogliamo che una chiamata REST possa restituirci unarappresentazione delle nostre entit business.http://www.squadredicalcio.it/squadreDove il formato AtomPub ci restituisca i campi che costituisconoLentit squadrehttp://odatatoto.azurewebsites.net/totodataservice.svc/$metadata 26. Cosa manca???Non vogliamo solo il CRUD e la modellazione. Un client ha bisognodi manipolare un modello sotto forma di collezioni, filtraggio ecollegamenti tra entit.In WCF avremmo scritto uno o, meglio, tanti metodi per filtrare idati.La manipolazione dei dati deve essere anchessa standardizzata.Il protocollo Odata quindi estende Rest + Atom Pub adottando lasemantica URI$filter, $orderby, $skip, $top 27. Open DataProtocolAccesso alle entitEntity-Set /filmsEntit Singola /films(1)Accesso alle propriet /films(1)/titoloEntit collegate /films(1)/attoriEntit collegata singola /films(1)/attori(1)Accesso alle propriet /films(1)/attori(1)/nome 28. Semantica URIOrdinamento /films?$orderby=titoloFiltraggio/films?$filter=anno gt 2007Paging/films?$top=10Selezione Propriet /films?$select=titolo,annoCount /films?$countFormato (xml, json) /films?$format=json 29. Semantica URI (FilterExpressions) 30. Semantica URI (FilterMethods) 31. Catalogo OData Netflixhttp://odata.netflix.com/Catalog/ 32. SDK OData: http://www.odata.org/libraries 33. WCF Data Services v5.0 Gi ADO.NET Data ServicesCodename AstoriaProvider Odata per il framework .NET 34. Demo!!! 35. Demo: CreazioneServizio Creazione WCF Data Service Pubblicazione IIS Locale Pubblicazione su Azure 36. Demo: Excel 37. Demo: LinqPad 38. Demo: non pumancare unaconsoleapplication! 39. Demo: Consumoin pagine webcon Jquery,DataJs Accesso via Jquery http://odatatoto.azurewebsites.net/Indice.html Accesso via DataJs http://odatatoto.azurewebsites.net/LeggiDati.html Aggiunta Record http://odatatoto.azurewebsites.net/aggiungi.html Master Details http://odatatoto.azurewebsites.net/Masterdetails.html 40. Demo: WPF 41. Windows Phone 42. Advanced TopicsLe funzionalit di query $filter, $orderby, $top e $skipSono completamente supportate in ASP.NET Web Api 43. Advanced Topics 44. Advanced Topics 45. Conclusioni OData e WCF Data Services ci aiutano a consumare inostri dati su un gran numero di dispositivi (mobili e non) Il protocollo Odata ha vinto una grande battaglia nelmomento in cui stato completamente supportato nelleWeb Api di ASP.NET Liberate i vostri dati! 46. 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.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 thepart 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.