Download - Wcf data services

Transcript
Page 1: Wcf data services

WCF Data Services in VS2012Salvatore Sorrentino

Visual Studio 2012 Day – Napoli 7/12/2012

Page 2: Wcf data services

ContattiMail: [email protected]: csharpNapoliBlog: http://dotnetcampania.org/blogs/salvatore/

http://www.scoop.it/t/it-s-a-strange-world

Page 3: Wcf data services

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

Page 4: Wcf data services

Indice• Odata (Motivazioni e definizione)• Costruzione di un WCF Data Service in

vs• Pubblicazione di un servizio• Consumo di un servizio (Tante demo!)

Page 5: Wcf data services

Information Silo

Page 6: Wcf data services

Data Silos

Page 7: Wcf data services
Page 8: Wcf data services
Page 9: Wcf data services

La diffusione di smartphone e tablet (Fonte CISCO 2011)

• Il traffico di dati «mobile» nel 2011, per il quarto anno di fila, è raddoppiato rispetto all’anno precedente

• Il traffico di dati «mobile» nel 2011 è stato 8 volte superiore alla dimensione dell’intera Internet nell’anno 2000 (597 petabytes per mese)

• Il traffico di dati video su dispositivi mobile nel 2011 ha superato il 50%

• Il traffico medio per smartphone nel 2011 è stato di 150 MB per mese (50 MB nel 2010!)

• Nel 2011 il numero di tablet mobile-connected è salito a 34 milioni . Il traffico medio di un tablet connesso è di 517 MB/mese.

• Nel 2011 175 milioni di laptop sono stati connessi a reti mobile generando in media un traffico di 2,1 GB per mese (46% in più rispetto al 2010)

Page 10: Wcf data services

Traffico su rete mobile

Page 11: Wcf data services

Non solo video di gatti su Youtube...

Page 12: Wcf data services

Utilizzo (Ottobre 2012)

Page 13: Wcf data services

Quali dispositivi? (Ottobre 2012)

Page 14: Wcf data services

Vendite di Tablet (2012 vs 2011)

Page 15: Wcf data services

There is a vast amount of data available today and data is now being collected and stored at a rate never seen before. Much, if not most, of this data however is locked into specific applications or formats and difficult to access or to integrate into new uses.” 

Page 16: Wcf data services

Rompere le catene dei silos!

Ma come?

Page 17: Wcf data services

Una possibile soluzione è usare un’architettura orientata ai servizi (SOA)

Windows Communication Foundation (WCF) è un framework maturo, ideale nella realizzazione di soluzioni Enterprise ma....

non è il prodotto ideale per realizzare il nostro sogno.

Page 18: Wcf data services

• Può essere complicato per certe tecnologie client consumare correttamente un servizio WCF

• Manca uno standard nella definizione dei metodi/ funzioni / operazioni del servizio

InserisciLibroPerCategoriaPerSezionePesoEFaseLunare(

int parametro1, int parametro2, int parametro3, string parametro4)

WCF non è la soluzione

Page 19: Wcf data services

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

WCF non è la soluzione (Parte 2)

Page 20: Wcf data services

REST (Representational State Transfer) è uno stile architetturale per sistemi distribuiti come il World Wide Web

Esistono risorse (fonti di informazione) a cui si può accederetramite un identificatore globale (URI)

Per utilizzare le risorse, le componenti di una rete comunicanoattraverso un’interfaccia standard (ad esempio HTTP) e si scambianoRAPPRESENTAZIONI di queste risorse (documenti)

REST (Roy Fielding, 2000)

Page 21: Wcf data services

REST Illustrato

URL della RisorsaRisors

a

Rappresentazione

URL Click(State Transfer)

Page 22: Wcf data services

Servizi Web RESTUn servizio Web REST è un servizio web implementato usandoHTTP e i principi di REST. L’insieme di operazioni supportate dal servizio utilizza i metodi HTTP (GET, PUT , POST, DELETE)

Con REST garantiamo l’uniformità del protocollo riguardo le operazioni CRUD

Page 23: Wcf data services

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 arrivare all’interoperabilità dei sistemi.

Microsoft, nella definizione del protocollo Odata, ha adottato l’uso di AtomPub e Json come content types trasmessi in rete.

Page 24: Wcf data services

AtomPub

Page 25: Wcf data services

Json (application/json)JSON (Javascript Object Notation è uno standard text-based perlo scambio di dati. Nasce da Javascript per rappresentare strutture dati semplici e array, chiamati objects.

Page 26: Wcf data services

REST + AtomPub + Json non bastano

AtomPub è un bel passo avanti ma ha un problema: non si interessa per nulla di quali dati siano contenuti nei suoi campi.

Un’applicazione client potrebbe avere difficoltà a trattare in maniera uniforme un documento AtomPub. Ossia...

Capire che un documento AtomPub rappresenta una entità!!

Page 27: Wcf data services

Modellazione di un Servizio

Così come usiamo un ORM per mappare oggetti a tabelle di un database, vogliamo che una chiamata REST possa restituirci una rappresentazione delle nostre entità business.

http://www.squadredicalcio.it/squadre

Dove il formato AtomPub ci restituisca i campi che costituisconoL’entità squadre

http://odatatoto.azurewebsites.net/totodataservice.svc/$metadata

Page 28: Wcf data services

Cosa manca???Non vogliamo solo il CRUD e la modellazione. Un client ha bisogno di manipolare un modello sotto forma di collezioni, filtraggio e collegamenti tra entità.

In WCF avremmo scritto uno o, meglio, tanti metodi per filtrare i dati.

La manipolazione dei dati deve essere anch’essa standardizzata.Il protocollo Odata quindi estende Rest + Atom Pub adottando la semantica URI$filter, $orderby, $skip, $top

Page 29: Wcf data services

Open Data ProtocolAccesso alle entità

Entity-Set /films

Entità Singola /films(1)

Accesso alle proprietà /films(1)/titolo

Entità collegate /films(1)/attori

Entità collegata singola /films(1)/attori(1)

Accesso alle proprietà /films(1)/attori(1)/nome

Page 30: Wcf data services

Semantica URI

Ordinamento /films?$orderby=titolo

Filtraggio /films?$filter=anno gt 2007

Paging /films?$top=10

Selezione Proprietà /films?$select=titolo,anno

Count /films?$count

Formato (xml, json) /films?$format=json

Page 31: Wcf data services

Semantica URI (Filter Expressions)

Page 32: Wcf data services

Semantica URI (Filter Methods)

Page 33: Wcf data services

Catalogo OData Netflixhttp://odata.netflix.com/Catalog/

Page 34: Wcf data services

SDK OData: http://www.odata.org/libraries

Page 35: Wcf data services

WCF Data Services v5.0

Già ADO.NET Data Services

Codename Astoria

Provider Odata per il framework .NET

Page 36: Wcf data services

Demo!!!

Page 37: Wcf data services

Demo: Creazione Servizio• Creazione WCF Data Service

• Pubblicazione IIS Locale• Pubblicazione su Azure

Page 38: Wcf data services

Demo: Excel

Page 39: Wcf data services

Demo: LinqPad

Page 40: Wcf data services

Demo: non può mancare una console application!

Page 41: Wcf data services

Demo: Consumo in pagine web con 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

Page 42: Wcf data services

Demo: WPF

Page 43: Wcf data services

Windows Phone

Page 44: Wcf data services

Advanced TopicsLe funzionalità di query $filter, $orderby, $top e

$skip Sono completamente supportate in ASP.NET Web Api

Page 45: Wcf data services

Advanced Topics

Page 46: Wcf data services

Advanced Topics

Page 47: Wcf data services

Conclusioni

• OData e WCF Data Services ci aiutano a consumare i nostri dati su un gran numero di dispositivi (mobili e non)

• Il protocollo Odata ha vinto una grande battaglia nel momento in cui è stato completamente supportato nelle Web Api di ASP.NET

• Liberate i vostri dati!

Page 48: Wcf data services

© 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 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.