Cenni preliminari su WCF Data Services

WCF Data Services consente la creazione e l'utilizzo di servizi dati per il Web o una Intranet tramite OData (Open Data Protocol). OData consente di esporre i dati come risorse indirizzabili tramite URI. Consente di accedere e modificare i dati tramite la semantica di trasferimento dello stato rappresentativo (REST), in particolare i verbi HTTP standard GET, PUT, POST e DELETE. In questo argomento viene fornita una panoramica dei modelli e delle procedure definite da OData nonché le funzionalità fornite da WCF Data Services per utilizzare OData nelle applicazioni basate su .NET Framework.

Indirizzamento dei dati come risorse

OData espone i dati come risorse indirizzabili dagli URI. I percorsi delle risorse sono costruiti sulla base delle convenzioni delle relazioni delle entità di Entity Data Model (EDM). In questo modello le entità rappresentano unità operative di dati in un dominio di applicazione, ad esempio clienti, ordini, elementi e prodotti. Per ulteriori informazioni, vedere Entity Data Model.

In OData le risorse di entità vengono indirizzate come set di entità contenenti istanze dei tipi di entità. L'URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders restituisce ad esempio tutti gli ordini del servizio dati Northwind correlati al cliente con valore CustomerID corrispondente a ALFKI.

Le espressioni di query consentono di eseguire sulle risorse operazioni di query tradizionali, quali filtro, ordinamento e paging. L'URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$filter=Freight gt 50 filtra ad esempio le risorse in modo da restituire solo gli ordini con un costo di spedizione superiore a 50 dollari. Per ulteriori informazioni, vedere Accesso a un servizio OData (WCF Data Services).

Accesso ai dati interoperativo

OData sfrutta i protocolli Internet standard per creare servizi dati che interoperano con le applicazioni che non utilizzano .NET Framework. La possibilità di utilizzare URI standard per l'indirizzamento di dati consente all'applicazione di accedere ai dati e di modificarli utilizzando la semantica REST (Representational State Transfer), in particolare i verbi GET, PUT, POST e DELETE. In questo modo è possibile accedere a questi servizi da qualsiasi client in grado di analizzare e di accedere ai dati trasmessi su protocolli HTTP standard.

OData definisce un set di estensioni del protocollo di pubblicazione Atom (AtomPub). Per soddisfare le esigenze di applicazioni e piattaforme client diverse, supporta richieste e risposte HTTP in più formati di dati. Un feed OData può rappresentare i dati nei formati Atom e JSON (JavaScript Object Notation), nonché come XML semplice. Sebbene Atom sia il formato predefinito, il formato del feed è specificato nell'intestazione della richiesta HTTP. Per ulteriori informazioni, vedere OData: formato Atom e OData: formato JSON.

In caso di pubblicazione di dati come feed OData, WCF Data Services si basa sulle funzioni Internet esistenti per operazioni come la memorizzazione nella cache e l'autenticazione. Per eseguire questa operazione, WCF Data Services si integra con i servizi e le applicazioni di hosting esistenti, ad esempio ASP.NET, Windows Communication Foundation (WCF) e Internet Information Services (IIS). La serializzazione e deserializzazione dei messaggi di OData viene eseguita tramite la libreria OData. Se il servizio o l'applicazione basata sul Web fornisce già funzionalità di messaggistica HTTP, è consigliabile utilizzare direttamente la libreria OData per serializzare e deserializzare semplicemente i messaggi conformi a OData. Per ulteriori informazioni, vedere Libreria OData.

Indipendenza di archiviazione

Anche se le risorse vengono indirizzate in base a un modello entità-relazione, in WCF Data Services i feed OData vengono esposti indipendentemente dall'origine dati sottostante. Dopo che in WCF Data Services viene accettata una richiesta HTTP per una risorsa identificata da un URI, la richiesta viene deserializzata e una rappresentazione di tale richiesta viene passata a un provider WCF Data Services. Questo provider traduce la richiesta in un formato dello specifico dell'origine dati ed esegue la richiesta sull'origine dati sottostante. In WCF Data Services viene realizzata l'indipendenza di archiviazione separando il modello concettuale per l'indirizzamento delle risorse previste da OData dallo schema specifico dell'origine dati sottostante.

WCF Data Services si integra con ADO.NET Entity Framework per consentire la creazione di servizi dati che espongono dati relazionali. È possibile utilizzare gli strumenti di Entity Data Model per creare un modello di dati contenente risorse indirizzabili come entità e definire contemporaneamente il mapping tra questo modello e le tabelle nel database sottostante. Per ulteriori informazioni, vedere Provider di Entity Framework (WCF Data Services).

WCF Data Services consente inoltre di creare servizi dati che espongono strutture di dati che restituiscono un'implementazione dell'interfaccia IQueryable<T>. In questo modo è possibile creare servizi dati che espongono dati di tipi di .NET Framework. Le operazioni di creazione, aggiornamento ed eliminazione sono supportate quando si implementa anche l'interfaccia IUpdatable. Per ulteriori informazioni, vedere Provider di reflection (WCF Data Services). Implementando un set di interfacce personalizzate per i provider dei servizi dati, è possibile utilizzare WCF Data Services per pubblicare dati da qualsiasi origine, anche quando il modello di dati diventa noto solo in fase di esecuzione. Per ulteriori informazioni, vedere Provider di servizi dati personalizzati (WCF Data Services).

Per un'illustrazione dell'integrazione di WCF Data Services con questi provider di dati, vedere il diagramma dell'architettura più avanti in questo argomento.

Logica di business personalizzata

WCF Data Services semplifica l'aggiunta della logica di business personalizzata a un servizio dati tramite operazioni del servizio e intercettori. Le operazioni del servizio sono metodi definiti nel server che possono essere indirizzati tramite URI allo stesso modo delle risorse di dati. Le operazioni del servizio possono inoltre utilizzare la sintassi dell'espressione di query per filtrare, ordinare ed eseguire il paging dei dati restituiti da un'operazione. Ad esempio, l'URI https://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'&$orderby=OrderDate&$top=10&$skip=10 rappresenta una chiamata a un'operazione di servizio denominata GetOrdersByCity sul servizio dati Northwind che restituisce ordini per i clienti da Londra, con i risultati di cui è stato eseguito il paging e l'ordinamento per OrderDate. Per ulteriori informazioni, vedere Operazioni del servizio (WCF Data Services).

Le azioni di servizio sono un tipo speciale di operazione che possono essere associate alle risorse del servizio dati e hanno effetto sul sistema. Per ulteriori informazioni, vedere Utilizzo di azioni OData per implementare il comportamento lato server.

Gli intercettori consentono l'integrazione della logica delle applicazioni personalizzata nell'elaborazione dei messaggi di richiesta o di risposta da parte di un servizio dati. Gli intercettori vengono chiamati quando si verifica un'azione di query, inserimento, aggiornamento o eliminazione sul set di entità specificato. Un intercettore può modificare i dati, applicare criteri di autorizzazione o anche terminare l'operazione. I metodi dell'intercettore devono essere registrati in modo esplicito per un determinato set di entità esposto da un servizio dati. Per ulteriori informazioni, vedere Intercettori (WCF Data Services).

Librerie client

OData definisce un set di modelli uniformi per l'interazione con i servizi dati. In questo modo viene offerta la possibilità di creare componenti riutilizzabili in base ai servizi, quali librerie lato client che rendono più semplice l'utilizzo dei servizi dati.

WCF Data Services include librerie client sia per le applicazioni client basate su .NET Framework che su Silverlight. Queste librerie client consentono di interagire con i servizi dati utilizzando oggetti di .NET Framework. Supportano inoltre query basate su oggetto e query LINQ, caricamento di oggetti correlati, rilevamento di modifiche e risoluzione di identità. Per ulteriori informazioni, vedere Client dati (WCF Data Services).

Oltre alle librerie client OData incluse in .NET Framework e Silverlight, sono disponibili altre librerie client che consentono di utilizzare un feed OData in applicazioni client, quali applicazioni PHP, Java e iOS. È possibile che gli sviluppatori di applicazioni Javascript siano interessati alla libreria datajs per l'utilizzo di OData.

Panoramica dell'architettura

Nel diagramma seguente vengono illustrati l'architettura di WCF Data Services per l'esposizione dei feed OData e l'utilizzo di tali feed nelle librerie client con supporto OData:

Diagramma dell'architettura di WCF Data Services

Vedere anche

Altre risorse

WCF Data Services

Guida introduttiva a WCF Data Services

Servizio dati (WCF Data Services)

Accessing a Data Service (WCF Data Services)

Client dati (WCF Data Services)

Representational State Transfer (REST)