SlideShare a Scribd company logo
1 of 24
OData e WCF Data Services:
  dati a portata di Web

           Pietro Libro
           Pietro.libro@domusdotnet.org
           http://blogs.ugidotnet.org/PietroLibroBlog
           Twitter: pietrolibro
Agenda
• Open Data Protocol (OData)
• WCF Data Services
   – QueryCRUD
   – Service Operations
   – Cache & Security




                               2
Problema…




            3
…soluzione: OData
•   Protocollo Web: interrogazione ed aggiornamento dati
•   Utilizza tecnologie Web: HTTP, AtomPub, JSON
•   Modello astratto dei dati: URI per identificare le risorse
•   Rilasciato sotto Microsoft Open Specification Promise




                                                                 4
OData
• Non solo database !




                        5
OData
• Feeds : collezione di Entries tipizzate
   – Una Entry è una struttura contente proprietà
       • Proprietà: tipi primitivi o tipi complessi
   – Una Entry può far parte di una struttura gerarchica o essere isolata
       • Relazione tra entry tramite Link
   – Entry sono speciali (Media Element)
       • Media Link Entry
       • Media Resource
• Service Operations
   – Funzioni che accettano parametri e restituiscono tipi complessi o
     primitivi



                                                                            6
OData
• Metadata:
   – Service Document con la lista di tutti i Feeds
      • Lista ad alto livello di tutti i Feeds
      • Utile per associare ogni Feed ad un indirizzo

  – Service Metadata Document
    • Documento che descrive l’Entity Data Model per uno
       specifico servizio
    • Esposto come End-point




                                                           7
OData : www.odata.org
• Alcune applicazioni «OData Publisher»:
   –   Microsoft Sharepoint 2010
   –   Microsoft Windows Azure Table Storage
   –   Sql Server Reporting Services
   –   OData per Team Foundation Server
   –   IBM WebShpere
• Librerie per interagire con:
   –   Microsoft .Net
   –   Windows Phone 7
   –   Microsoft Silverlight
   –   PHP
   –   Objective-C
   –   Ecc…

                                               8
DEMO
       9
WCF Data Services
• Conosciuti anche come ADO.NET Services (codename
  «Astoria»)
• Basati su
   – Open Data Protocol
   – REST (Representational State Transfer, Thomas Fielding)
      • Descrive le risorse presenti nel Web
      • Risorsa, univocamente determinata da un indirizzo
      • GET, POST, PUT e DELETE




                                                               10
11
WCF Data Services




                    12
WCF Data Services




DEMO

                    13
WCF Data Services
Anatomia di una query




                        14
WCF Data Services : Query
• Per applicare un «filtro» è possibile utilizzare la Keyword
  $filter
• Operatori di uguaglianza
• Confronto
• Operatori logici
• Operazioni matematiche
• Funzioni booleane applicabili a stringhe
• Funzioni per le date
• Funzioni di arrotondamento


                                                                15
WCF Data Services : Service Operations
• Logica di Business sui dati
• REST
• Requisiti
   – Public, membro di DataService<T>
   – Parametri di Input «Primitivi»
   – Il valore di ritorno può essere:
       •   Void
       •   IEnumerable
       •   IQueryable
       •   Un’entità (ad esempio Recipe, Glass)
       •   Tipo Primitivo



                                                  16
WCF Data Services : Service Operations
• Per operazioni di:
   – Filtering
   – Paging
   – Sorting
• Per utilizzare
   – Query Option
   – Accesso ai Link (entità collegate)
E’ necessario ritornare IQueryable<…>




                                          17
WCF Data Services : Service Operations
…ancora:




• WebGet [GET]
• WebInvoke(Method=«POST») [POST]




                                     18
WCF Data Services




Query, Service Operations, Eager & Explicit
Loading, Add/Update/Delete
DEMO
                                              19
WCF Data Services : Cache & Security
• Costruiti sull’infrastruttura ASP.NET
• Cache
   – Possiamo utilizzarne tutte le varie features
       •   Output caching
       •   Custom OutputCacheProvider
       •   Memory Cache
       •   Enterprise Library
       •   Ecc...




                                                    20
WCF Data Services : Cache & Security
• Costruiti sull’infrastruttura ASP.NET
• Security
   –   Query Interceptors
   –   Anonymous Authentication
   –   Basic-Digest Authentication
   –   Windows Authentication
   –   ASP.NET Forms Authentication
   –   Claims-Based Authentication
   –   WIF




                                          21
WCF Data Services




Cache & Security
DEMO
                    22
Riferimenti:
• OData, http://www.odata.org/
• OData Explorer:
  http://www.silverlight.net/content/samples/odataexplor
  er/default.html
• Microsoft OSP:
  http://www.microsoft.com/openspecifications/en/us/pr
  ograms/osp/default.aspx
• MSDN WCF Data Services: http://msdn.microsoft.com/it-
  it/library/cc668792.aspx
• Blog  : http://blogs.ugidotnet.org/PietroLibroBlog/


                                                       23
Un grazie a.....

More Related Content

Similar to WeWantWeb - WCF Data Services

Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloadedPietro Libro
 
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
 
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
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSMorlini Gabriele
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileI.S.I.S. "Antonio Serra" - Napoli
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisGianluca Sartori
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS Imola Informatica
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleMarco Breveglieri
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansDavide Nardone
 
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
 
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...Data Driven Innovation
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)Giorgio Di Nardo
 

Similar to WeWantWeb - WCF Data Services (20)

Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
 
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
 
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
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload Analysis
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with Netbeans
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
 
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
 
Servizio di Connettività d'Ateneo - Network and services provisioning automation
Servizio di Connettività d'Ateneo - Network and services provisioning automationServizio di Connettività d'Ateneo - Network and services provisioning automation
Servizio di Connettività d'Ateneo - Network and services provisioning automation
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Mobile e Smart Client
Mobile e Smart ClientMobile e Smart Client
Mobile e Smart Client
 
Power bi
Power biPower bi
Power bi
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 

More from DomusDotNet

Application lifecycle management ... e quindi
Application lifecycle management ... e quindiApplication lifecycle management ... e quindi
Application lifecycle management ... e quindiDomusDotNet
 
Unit testing in Visual Studio 2013
Unit testing in Visual Studio 2013Unit testing in Visual Studio 2013
Unit testing in Visual Studio 2013DomusDotNet
 
Advanced ef code first 5.0 - EF@work
Advanced ef code first 5.0 - EF@workAdvanced ef code first 5.0 - EF@work
Advanced ef code first 5.0 - EF@workDomusDotNet
 
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
 
Push Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentPush Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentDomusDotNet
 
Sviluppare per Intel® Ultrabook™
Sviluppare per Intel® Ultrabook™Sviluppare per Intel® Ultrabook™
Sviluppare per Intel® Ultrabook™DomusDotNet
 
ALM@Work - Team collaboration with visual studio alm 2012
ALM@Work - Team collaboration with visual studio alm 2012ALM@Work - Team collaboration with visual studio alm 2012
ALM@Work - Team collaboration with visual studio alm 2012DomusDotNet
 
ALM@Work - Lab management for everyone
ALM@Work - Lab management for everyoneALM@Work - Lab management for everyone
ALM@Work - Lab management for everyoneDomusDotNet
 
ALM@Work - Continuous delivery 101
ALM@Work - Continuous delivery 101ALM@Work - Continuous delivery 101
ALM@Work - Continuous delivery 101DomusDotNet
 
ALM@Work - Unit testing in Visual studio 2012
ALM@Work - Unit testing in Visual studio 2012ALM@Work - Unit testing in Visual studio 2012
ALM@Work - Unit testing in Visual studio 2012DomusDotNet
 
ALM@Work - Typical developer day
ALM@Work - Typical developer dayALM@Work - Typical developer day
ALM@Work - Typical developer dayDomusDotNet
 
We Want Web - Web Applications con MVC 3
We Want Web - Web Applications con MVC 3We Want Web - Web Applications con MVC 3
We Want Web - Web Applications con MVC 3DomusDotNet
 
ALM Revolutions - Non si vive di solo check-out e check-in
ALM Revolutions - Non si vive di solo check-out e check-inALM Revolutions - Non si vive di solo check-out e check-in
ALM Revolutions - Non si vive di solo check-out e check-inDomusDotNet
 
ALM Revolutions - Process Template Customization
ALM Revolutions - Process Template CustomizationALM Revolutions - Process Template Customization
ALM Revolutions - Process Template CustomizationDomusDotNet
 
ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11DomusDotNet
 
Pomeriggio Entity Framework - WP7 e SQL Compact Edition
Pomeriggio Entity Framework - WP7 e SQL Compact EditionPomeriggio Entity Framework - WP7 e SQL Compact Edition
Pomeriggio Entity Framework - WP7 e SQL Compact EditionDomusDotNet
 
Pomeriggio Entity Framework - Database First
Pomeriggio Entity Framework - Database FirstPomeriggio Entity Framework - Database First
Pomeriggio Entity Framework - Database FirstDomusDotNet
 
Pomeriggio Entity Framework - Code First
Pomeriggio Entity Framework - Code FirstPomeriggio Entity Framework - Code First
Pomeriggio Entity Framework - Code FirstDomusDotNet
 

More from DomusDotNet (18)

Application lifecycle management ... e quindi
Application lifecycle management ... e quindiApplication lifecycle management ... e quindi
Application lifecycle management ... e quindi
 
Unit testing in Visual Studio 2013
Unit testing in Visual Studio 2013Unit testing in Visual Studio 2013
Unit testing in Visual Studio 2013
 
Advanced ef code first 5.0 - EF@work
Advanced ef code first 5.0 - EF@workAdvanced ef code first 5.0 - EF@work
Advanced ef code first 5.0 - EF@work
 
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%
 
Push Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentPush Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background Agent
 
Sviluppare per Intel® Ultrabook™
Sviluppare per Intel® Ultrabook™Sviluppare per Intel® Ultrabook™
Sviluppare per Intel® Ultrabook™
 
ALM@Work - Team collaboration with visual studio alm 2012
ALM@Work - Team collaboration with visual studio alm 2012ALM@Work - Team collaboration with visual studio alm 2012
ALM@Work - Team collaboration with visual studio alm 2012
 
ALM@Work - Lab management for everyone
ALM@Work - Lab management for everyoneALM@Work - Lab management for everyone
ALM@Work - Lab management for everyone
 
ALM@Work - Continuous delivery 101
ALM@Work - Continuous delivery 101ALM@Work - Continuous delivery 101
ALM@Work - Continuous delivery 101
 
ALM@Work - Unit testing in Visual studio 2012
ALM@Work - Unit testing in Visual studio 2012ALM@Work - Unit testing in Visual studio 2012
ALM@Work - Unit testing in Visual studio 2012
 
ALM@Work - Typical developer day
ALM@Work - Typical developer dayALM@Work - Typical developer day
ALM@Work - Typical developer day
 
We Want Web - Web Applications con MVC 3
We Want Web - Web Applications con MVC 3We Want Web - Web Applications con MVC 3
We Want Web - Web Applications con MVC 3
 
ALM Revolutions - Non si vive di solo check-out e check-in
ALM Revolutions - Non si vive di solo check-out e check-inALM Revolutions - Non si vive di solo check-out e check-in
ALM Revolutions - Non si vive di solo check-out e check-in
 
ALM Revolutions - Process Template Customization
ALM Revolutions - Process Template CustomizationALM Revolutions - Process Template Customization
ALM Revolutions - Process Template Customization
 
ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11
 
Pomeriggio Entity Framework - WP7 e SQL Compact Edition
Pomeriggio Entity Framework - WP7 e SQL Compact EditionPomeriggio Entity Framework - WP7 e SQL Compact Edition
Pomeriggio Entity Framework - WP7 e SQL Compact Edition
 
Pomeriggio Entity Framework - Database First
Pomeriggio Entity Framework - Database FirstPomeriggio Entity Framework - Database First
Pomeriggio Entity Framework - Database First
 
Pomeriggio Entity Framework - Code First
Pomeriggio Entity Framework - Code FirstPomeriggio Entity Framework - Code First
Pomeriggio Entity Framework - Code First
 

WeWantWeb - WCF Data Services

  • 1. OData e WCF Data Services: dati a portata di Web Pietro Libro Pietro.libro@domusdotnet.org http://blogs.ugidotnet.org/PietroLibroBlog Twitter: pietrolibro
  • 2. Agenda • Open Data Protocol (OData) • WCF Data Services – QueryCRUD – Service Operations – Cache & Security 2
  • 4. …soluzione: OData • Protocollo Web: interrogazione ed aggiornamento dati • Utilizza tecnologie Web: HTTP, AtomPub, JSON • Modello astratto dei dati: URI per identificare le risorse • Rilasciato sotto Microsoft Open Specification Promise 4
  • 5. OData • Non solo database ! 5
  • 6. OData • Feeds : collezione di Entries tipizzate – Una Entry è una struttura contente proprietà • Proprietà: tipi primitivi o tipi complessi – Una Entry può far parte di una struttura gerarchica o essere isolata • Relazione tra entry tramite Link – Entry sono speciali (Media Element) • Media Link Entry • Media Resource • Service Operations – Funzioni che accettano parametri e restituiscono tipi complessi o primitivi 6
  • 7. OData • Metadata: – Service Document con la lista di tutti i Feeds • Lista ad alto livello di tutti i Feeds • Utile per associare ogni Feed ad un indirizzo – Service Metadata Document • Documento che descrive l’Entity Data Model per uno specifico servizio • Esposto come End-point 7
  • 8. OData : www.odata.org • Alcune applicazioni «OData Publisher»: – Microsoft Sharepoint 2010 – Microsoft Windows Azure Table Storage – Sql Server Reporting Services – OData per Team Foundation Server – IBM WebShpere • Librerie per interagire con: – Microsoft .Net – Windows Phone 7 – Microsoft Silverlight – PHP – Objective-C – Ecc… 8
  • 9. DEMO 9
  • 10. WCF Data Services • Conosciuti anche come ADO.NET Services (codename «Astoria») • Basati su – Open Data Protocol – REST (Representational State Transfer, Thomas Fielding) • Descrive le risorse presenti nel Web • Risorsa, univocamente determinata da un indirizzo • GET, POST, PUT e DELETE 10
  • 11. 11
  • 14. WCF Data Services Anatomia di una query 14
  • 15. WCF Data Services : Query • Per applicare un «filtro» è possibile utilizzare la Keyword $filter • Operatori di uguaglianza • Confronto • Operatori logici • Operazioni matematiche • Funzioni booleane applicabili a stringhe • Funzioni per le date • Funzioni di arrotondamento 15
  • 16. WCF Data Services : Service Operations • Logica di Business sui dati • REST • Requisiti – Public, membro di DataService<T> – Parametri di Input «Primitivi» – Il valore di ritorno può essere: • Void • IEnumerable • IQueryable • Un’entità (ad esempio Recipe, Glass) • Tipo Primitivo 16
  • 17. WCF Data Services : Service Operations • Per operazioni di: – Filtering – Paging – Sorting • Per utilizzare – Query Option – Accesso ai Link (entità collegate) E’ necessario ritornare IQueryable<…> 17
  • 18. WCF Data Services : Service Operations …ancora: • WebGet [GET] • WebInvoke(Method=«POST») [POST] 18
  • 19. WCF Data Services Query, Service Operations, Eager & Explicit Loading, Add/Update/Delete DEMO 19
  • 20. WCF Data Services : Cache & Security • Costruiti sull’infrastruttura ASP.NET • Cache – Possiamo utilizzarne tutte le varie features • Output caching • Custom OutputCacheProvider • Memory Cache • Enterprise Library • Ecc... 20
  • 21. WCF Data Services : Cache & Security • Costruiti sull’infrastruttura ASP.NET • Security – Query Interceptors – Anonymous Authentication – Basic-Digest Authentication – Windows Authentication – ASP.NET Forms Authentication – Claims-Based Authentication – WIF 21
  • 22. WCF Data Services Cache & Security DEMO 22
  • 23. Riferimenti: • OData, http://www.odata.org/ • OData Explorer: http://www.silverlight.net/content/samples/odataexplor er/default.html • Microsoft OSP: http://www.microsoft.com/openspecifications/en/us/pr ograms/osp/default.aspx • MSDN WCF Data Services: http://msdn.microsoft.com/it- it/library/cc668792.aspx • Blog  : http://blogs.ugidotnet.org/PietroLibroBlog/ 23