SlideShare ist ein Scribd-Unternehmen logo
1 von 48
WCF
Data
Services
in
VS2012
Salvatore Sorrentino
Visual Studio 2012 Day – Napoli
Contatti
Mail: salvatore.sorrentino@live.com
Twitter: csharpNapoli
Blog: http://dotnetcampania.org/blogs/salvatore/

http://www.scoop.it/t/it-s-a-strange-world
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
Indice
•   Odata (Motivazioni e definizione)
•   Costruzione di un WCF Data Service in vs
•   Pubblicazione di un servizio
•   Consumo di un servizio (Tante demo!)
Information Silo
Data Silos
La diffusione di smartphone e tablet
(Fonte CISCO 2011)
Traffico su rete mobile
Non solo video di gatti su Youtube...
Utilizzo (Ottobre 2012)
Quali dispositivi? (Ottobre 2012)
Vendite di Tablet (2012 vs 2011)
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.”
Rompere le catene dei
        silos!


         Ma come?
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.
WCF non è la soluzione
• 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 (Parte 2)
Non esiste in WCF uno standard per la nomenclatura
Delle operazioni CRUD.

Il servizio fornisce un .wsdl e si aspetta che il client
crei oggetti proxy in grado di interpretare tutte le
bizzarrie usate nella costruzione del servizio
REST (Roy Fielding, 2000)
REST (Representational State Transfer) è uno stile
architetturale per sistemi distribuiti come il World Wide Web

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

Per utilizzare le risorse, le componenti di una rete comunicano
attraverso un’interfaccia standard (ad esempio HTTP) e si scambiano
RAPPRESENTAZIONI di queste risorse (documenti)
REST Illustrato

           URL della Risorsa
 Risorsa



                           URL Click
                           (State Transfer)


Rappresentazione
Servizi Web REST
Un servizio Web REST è un servizio web implementato usando
HTTP 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
REST non basta
Quando eseguiamo un GET, che cosa ci viene restituito? Un xml
nudo 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.
AtomPub
Json (application/json)
JSON (Javascript Object Notation è uno standard text-based per
lo scambio di dati. Nasce da Javascript per rappresentare strutture
dati semplici e array, chiamati objects.
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à!!
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 costituiscono
L’entità squadre

http://odatatoto.azurewebsites.net/totodataservice.svc/$metadata
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
Open Data
Protocol
Accesso 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
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
Semantica URI (Filter
Expressions)
Semantica URI (Filter
Methods)
Catalogo OData Netflix
http://odata.netflix.com/Catalog/
SDK OData: http://www.odata.org/libraries
WCF Data Services v5.0




 Già ADO.NET Data Services

Codename Astoria

Provider Odata per il framework .NET
Demo!!!
Demo: Creazione
Servizio
• Creazione WCF Data Service
• Pubblicazione IIS Locale
• Pubblicazione su Azure
Demo: Excel
Demo: LinqPad
Demo: non può
mancare una
console
application!
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
Demo: WPF
Windows Phone
Advanced Topics
Le funzionalità di query $filter, $orderby, $top e $skip
Sono completamente supportate in ASP.NET Web Api
Advanced Topics
Advanced Topics
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!
© 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.

Weitere ähnliche Inhalte

Was ist angesagt?

Async/Await: make it simple!!
Async/Await: make it simple!!Async/Await: make it simple!!
Async/Await: make it simple!!Massimo Bonanni
 
Dot netcampus2015 green-template
Dot netcampus2015 green-templateDot netcampus2015 green-template
Dot netcampus2015 green-templateDotNetCampus
 
Async: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDaysAsync: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDaysMatteo Baglini
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...Andrea Balducci
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuerySandro Marcon
 
Architetttura Della Soluzione
Architetttura Della SoluzioneArchitetttura Della Soluzione
Architetttura Della SoluzioneLuca Milan
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP WayLuca Milan
 
ASP.NET MVC 6 - uno sguardo al futuro
ASP.NET MVC 6 - uno sguardo al futuroASP.NET MVC 6 - uno sguardo al futuro
ASP.NET MVC 6 - uno sguardo al futuroAndrea Dottor
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreManuel Scapolan
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftMassimo Bonanni
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%DomusDotNet
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiAndrea Dottor
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal WebtrendsStefano Iaboni
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
Introduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor ModelIntroduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor ModelAndrea Tosato
 
Actions on Google e Alexa skills per .NET lovers
Actions on Google e Alexa skills per .NET loversActions on Google e Alexa skills per .NET lovers
Actions on Google e Alexa skills per .NET loversLorenzo Giudici
 
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote ItalyMarco Parenzan
 

Was ist angesagt? (20)

Async/Await: make it simple!!
Async/Await: make it simple!!Async/Await: make it simple!!
Async/Await: make it simple!!
 
jQuery
jQueryjQuery
jQuery
 
Dot netcampus2015 green-template
Dot netcampus2015 green-templateDot netcampus2015 green-template
Dot netcampus2015 green-template
 
Async: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDaysAsync: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDays
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
 
Architetttura Della Soluzione
Architetttura Della SoluzioneArchitetttura Della Soluzione
Architetttura Della Soluzione
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
ASP.NET MVC 6 - uno sguardo al futuro
ASP.NET MVC 6 - uno sguardo al futuroASP.NET MVC 6 - uno sguardo al futuro
ASP.NET MVC 6 - uno sguardo al futuro
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatore
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
Akka.net & Actor Model
Akka.net & Actor ModelAkka.net & Actor Model
Akka.net & Actor Model
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
Introduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor ModelIntroduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor Model
 
Actions on Google e Alexa skills per .NET lovers
Actions on Google e Alexa skills per .NET loversActions on Google e Alexa skills per .NET lovers
Actions on Google e Alexa skills per .NET lovers
 
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
 

Ähnlich wie Wcf data services

Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Alberto Lagna
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8DotNetCampus
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Fabio Armani
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsMarcello Teodori
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleMarco Breveglieri
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Fabio Armani
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveEmanuele Della Valle
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai frameworkFrancesca1980
 
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08Alessandro Del Sole
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCFMS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCFFabrizio Bernabei
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...Codemotion
 
Come utilizzare il bot framework
Come utilizzare il bot frameworkCome utilizzare il bot framework
Come utilizzare il bot frameworkAlessio Iafrate
 
September 2010 - Gatein
September 2010 - GateinSeptember 2010 - Gatein
September 2010 - GateinJBug Italy
 
Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance ToolsAndrea Tosato
 

Ähnlich wie Wcf data services (20)

Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa Struts
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettive
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai framework
 
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCFMS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
 
Mobile e Smart Client
Mobile e Smart ClientMobile e Smart Client
Mobile e Smart Client
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
 
Come utilizzare il bot framework
Come utilizzare il bot frameworkCome utilizzare il bot framework
Come utilizzare il bot framework
 
September 2010 - Gatein
September 2010 - GateinSeptember 2010 - Gatein
September 2010 - Gatein
 
Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance Tools
 

Wcf data services

  • 2. Contatti Mail: salvatore.sorrentino@live.com Twitter: csharpNapoli Blog: 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!)
  • 7.
  • 8.
  • 9. La diffusione di smartphone e tablet (Fonte CISCO 2011)
  • 11. Non solo video di gatti su Youtube...
  • 14. Vendite di Tablet (2012 vs 2011)
  • 15. 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.”
  • 16. Rompere le catene dei silos! Ma come?
  • 17. 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.
  • 18. WCF non è la soluzione • 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)
  • 19. WCF non è la soluzione (Parte 2) Non esiste in WCF uno standard per la nomenclatura Delle operazioni CRUD. Il servizio fornisce un .wsdl e si aspetta che il client crei oggetti proxy in grado di interpretare tutte le bizzarrie usate nella costruzione del servizio
  • 20. REST (Roy Fielding, 2000) REST (Representational State Transfer) è uno stile architetturale per sistemi distribuiti come il World Wide Web Esistono risorse (fonti di informazione) a cui si può accedere tramite un identificatore globale (URI) Per utilizzare le risorse, le componenti di una rete comunicano attraverso un’interfaccia standard (ad esempio HTTP) e si scambiano RAPPRESENTAZIONI di queste risorse (documenti)
  • 21. REST Illustrato URL della Risorsa Risorsa URL Click (State Transfer) Rappresentazione
  • 22. Servizi Web REST Un servizio Web REST è un servizio web implementato usando HTTP 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
  • 23. REST non basta Quando eseguiamo un GET, che cosa ci viene restituito? Un xml nudo 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.
  • 25. Json (application/json) JSON (Javascript Object Notation è uno standard text-based per lo scambio di dati. Nasce da Javascript per rappresentare strutture dati semplici e array, chiamati objects.
  • 26. 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à!!
  • 27. 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 costituiscono L’entità squadre http://odatatoto.azurewebsites.net/totodataservice.svc/$metadata
  • 28. 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
  • 29. Open Data Protocol Accesso 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
  • 30. 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
  • 35. WCF Data Services v5.0  Già ADO.NET Data Services Codename Astoria Provider Odata per il framework .NET
  • 37. Demo: Creazione Servizio • Creazione WCF Data Service • Pubblicazione IIS Locale • Pubblicazione su Azure
  • 40. Demo: non può mancare una console application!
  • 41. 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
  • 44. Advanced Topics Le funzionalità di query $filter, $orderby, $top e $skip Sono completamente supportate in ASP.NET Web Api
  • 47. 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!
  • 48. © 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.

Hinweis der Redaktion

  1. Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
  2. Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
  3. Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
  4. Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
  5. Dal concetto di Information Silo deriviamoquello di Data Silo. Reparti, compartimenti ma ancheapplicazioni diverse sviluppate in unastessaaziendacheutilizzanociascunoilproprio database al costo di creareripetizioni e causareinconsistenzepur di non comunicare.
  6. La difesa estrema del dato!E’ un atteggiamento comprensibile: i dati sono la più grande ricchezza di un’azienda (soprattutto se privata!)
  7. L’invasione dei dispositivi!!!
  8. Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2011–2016