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 alle risorse del servizio dati (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. A tale scopo, 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).
Indipendenza di archiviazione
Anche se le risorse vengono indirizzate in base a un modello di relazione di entità, WCF Data Services espone feed OData indipendentemente dall'origine dati sottostante. Dopo che WCF Data Services accetta una richiesta HTTP per una risorsa identificata da un URI, la richiesta viene deserializzata e una rappresentazione di essa 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. WCF Data Services realizza 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. 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).
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 utilizzare anche 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 del 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).
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 Libreria client 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 le applicazioni PHP, AJAX e Java. Per ulteriori informazioni, vedere OData SDK.
Panoramica sull'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 :
Vedere anche
Concetti
WCF Data Services
Guida introduttiva a WCF Data Services
Altre risorse
Definizione di WCF Data Services
Accessing a Data Service (WCF Data Services)
Libreria client WCF Data Services
Representational State Transfer (REST)