Información general acerca de WCF Data Services
Servicios de datos de Microsoft WCF permite la creación y la utilización de servicios de datos para web o para una intranet mediante Open Data Protocol (OData). OData permite exponer datos como recursos direccionables a través de identificadores uniformes de recursos (URI). De esta forma, puede acceder y cambiar datos mediante el uso de la semántica de transferencia de estado de representación (REST), específicamente los verbos HTTP estándar de GET, PUT, POST y DELETE. En este tema se proporciona información general sobre los modelos y los procedimientos definidos por OData y también las funciones proporcionadas por Servicios de datos de Microsoft WCF para aprovechar las ventajas de OData en aplicaciones basadas en .NET Framework.
Direccionamiento de datos como recursos
OData expone los datos como recursos direccionables a través de identificadores uniformes de recursos (URI). Las rutas de acceso de los recursos se construyen según las convenciones del modelo entidad-relación de Entity Data Model. En este modelo, las entidades representan unidades operacionales de datos en un dominio de aplicación, como clientes, pedidos, elementos y productos. Para obtener más información, vea Entity Data Model.
En OData, los recursos de entidades se direccionan como conjunto de entidades que contiene instancias de tipos de entidad. Por ejemplo, el URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders devuelve todos los pedidos del servicio de datos Northwind relacionados con el cliente con un valor CustomerID de ALFKI.
Las expresiones de consulta permiten realizar operaciones de consulta tradicionales en los recursos, como filtrarlos, ordenarlos y paginarlos. Por ejemplo, el URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$filter=Freight gt 50 filtra los recursos para devolver solo los pedidos cuyo costo de flete sea mayor que 50 dólares. Para obtener más información, vea Tener acceso a un servicio de OData (WCF Data Services).
Interoperabilidad en el acceso a los datos
OData se basa en los protocolos estándar de Internet para lograr que los servicios de datos puedan interoperar con aplicaciones que no usan .NET Framework. Dado que es posible usar los URI estándar para direccionar los datos, una aplicación puede obtener acceso a los datos y modificarlos usando la semántica de la Transferencia de estado de representación (REST), específicamente los verbos HTTP estándar GET, PUT, POST y DELETE. Esto le permite tener acceso a estos servicios desde cualquier cliente que pueda analizar y tener acceso a los datos que se transmiten mediante los protocolos HTTP estándar.
OData define un conjunto de extensiones del protocolo de publicación Atom (AtomPub). Es compatible con solicitudes y respuestas HTTP en más de un formato de datos para albergar distintas aplicaciones y plataformas cliente. Una fuente OData puede representar los datos en formato Atom, JavaScript Object Notation (JSON) y como XML sin formato. Aunque Atom es el formato predeterminado, el formato de la fuente se especifica en el encabezado de la solicitud HTTP. Para obtener más información, vea OData: formato Atom y OData: formato JSON.
Cuando se publican los datos como fuente de OData, Servicios de datos de Microsoft WCF se basa en otros servicios de Internet existentes para operaciones como el almacenamiento en memoria caché y la autenticación. Para ello, Servicios de datos de Microsoft WCF se integra con las aplicaciones y los servicios de hospedaje existentes, como ASP.NET, Windows Communication Foundation (WCF) e Internet Information Services (IIS). La biblioteca de OData realiza la serialización y deserialización de mensajes de OData. Si su aplicación o su servicio web ya proporciona funciones de mensajería HTTP, considere la posibilidad de usar directamente la biblioteca de OData para serializar y deserializar los mensajes conformes a OData. Para obtener más información, vea Biblioteca de OData.
Independencia de almacenamiento
Aunque los recursos se direccionan basándose en un modelo entidad-relación, Servicios de datos de Microsoft WCF expone fuentes de OData sin tener en cuenta el origen de datos subyacente. Después de que Servicios de datos de Microsoft WCF acepte una solicitud HTTP para un recurso identificado mediante un URI, se deserializa la solicitud y se pasa una representación de la misma a un proveedor de Servicios de datos de Microsoft WCF. Este proveedor traduce la solicitud en un formato específico del origen de datos y la ejecuta en el origen de datos subyacente. Servicios de datos de Microsoft WCF logra la independencia de almacenamiento separando el modelo conceptual que direcciona los recursos indicados por OData del esquema específico del origen de datos subyacente.
Servicios de datos de Microsoft WCF se integra con ADO.NET Entity Framework para que puedan crearse servicios de datos que exponen datos relacionales. Puede usar las herramientas de Entity Data Model para crear un modelo de datos que contiene recursos direccionables como entidades y al mismo tiempo definir la asignación entre este modelo y las tablas de la base de datos subyacente. Para obtener más información, vea Proveedor de Entity Framework (WCF Data Services).
Servicios de datos de Microsoft WCF también le permite crear servicios de datos que exponen cualquier estructura de datos que devuelva una implementación de la interfaz IQueryable<T>. Esto le permite crear servicios de datos que exponen los datos procedentes de tipos de .NET Framework. Si también se implementa la interfaz IUpdatable, se admiten las operaciones de creación, actualización y eliminación. Para obtener más información, vea Proveedor de reflexión (WCF Data Services). Si se implementa un conjunto de interfaces de proveedor de servicio de datos personalizadas, puede usar Servicios de datos de Microsoft WCF para publicar datos de cualquier origen, incluso cuando el modelo de datos solo se conoce en tiempo de ejecución. Para obtener más información, vea Proveedores de servicios de datos personalizados (WCF Data Services).
Para obtener una ilustración de cómo se integra Servicios de datos de Microsoft WCF con estos proveedores de datos, vea el diagrama arquitectónico que se muestra más adelante en este tema.
Lógica de negocios personalizada
Servicios de datos de Microsoft WCF hace más fácil agregar la lógica de negocios personalizada a un servicio de datos a través de operaciones de servicio e interceptores. Las operaciones de servicio son métodos definidos en el servidor direccionables a través de URI con el mismo formato que los recursos de datos. Las operaciones de servicio también pueden usar la sintaxis de las expresiones de consulta para filtrar, ordenar y paginar los datos devueltos por una operación. Por ejemplo, el URI https://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'&$orderby=OrderDate&$top=10&$skip=10 representa una llamada a una operación de servicio denominada GetOrdersByCity en el servicio de datos de Northwind que devuelve los pedidos para los clientes residentes en Londres, con los resultados paginados ordenados por OrderDate. Para obtener más información, vea Operaciones de servicio (WCF Data Services).
Las acciones de servicio son una clase especial de operación que se pueden enlazar a recursos de servicio de datos y tienen algún efecto sobre el sistema. Para obtener más información, vea Usar acciones OData para implementar el comportamiento del lado servidor.
Los interceptores permiten integrar la lógica de la aplicación personalizada en el procesamiento de los mensajes de solicitud o respuesta de un servicio de datos. Se llama a los interceptores cuando se produce una acción de consulta, inserción, actualización o eliminación en el conjunto de entidades especificado. Después, un interceptor puede modificar los datos, aplicar la directiva de autorización o incluso terminar la operación. Los métodos de interceptor se deben registrar explícitamente para un conjunto de entidades determinado expuesto por un servicio de datos. Para obtener más información, vea Interceptores (WCF Data Services).
Bibliotecas de cliente
OData define un conjunto de modelos uniformes para interactuar con los servicios de datos. Esto proporciona una oportunidad de crear componentes reutilizables que se basen en estos servicios, como las bibliotecas del lado cliente que permiten usar servicios de datos más fácilmente.
Servicios de datos de Microsoft WCF incluye bibliotecas de cliente para aplicaciones cliente basadas en .NET Framework o en Silverlight. Estas bibliotecas de cliente le permiten interactuar con los servicios de datos mediante objetos de .NET Framework. También admiten consultas basadas en objetos y consultas LINQ, carga de objetos relacionados, seguimiento de cambios y resolución de identidades. Para obtener más información, vea Cliente de datos (WCF Data Services).
Además de las bibliotecas de cliente de OData incluidas con .NET Framework y con Silverlight, hay otras bibliotecas de cliente que le permiten usar una fuente de OData en aplicaciones cliente como aplicaciones PHP, Java e iOS. La biblioteca datajs puede resultar interesante para los desarrolladores de aplicaciones JavaScript que desean usar OData.
Información general sobre la arquitectura
En el diagrama siguiente se ilustra la arquitectura de Servicios de datos de Microsoft WCF para exponer fuentes de OData y usar dichas fuentes en bibliotecas de cliente habilitadas para OData:
Vea también
Otros recursos
Introducción a WCF Data Services
Servicio de datos (WCF Data Services)
Accessing a Data Service (WCF Data Services)
Cliente de datos (WCF Data Services)
Transferencia de estado de representación (REST, Representational State Transfer)