2010-06-23 20 views
8

¿Para qué aplicaciones o escenarios de desarrollo el uso de WCF Data Services tiene sentido y cuando otras tecnologías son la mejor opción (por ejemplo, WCF RIA Services, ADO Entity Framework, ADO.NET clásico, servicios simples o lo que sea)?Cuándo usar los servicios de datos WCF y cuándo no?

Respuesta

12

WCF Data Services es una manera bastante fácil y rápida de obtener su modelo de datos (colecciones y entidades) en la web. Puede navegar fácilmente por sus colecciones, mirar entidades, etc., a través de llamadas HTTP/REST estándar.

En la medida en que tenga más que eso, mostrando y mostrando entidades y colecciones de entidades, funciona muy bien. Realmente no conozco la bonificación adicional que llevan los Servicios de WCF RIA, no he investigado demasiado.

Los servicios de datos WCF se basan en una representación modelo de sus datos. Aquí entran en juego Linq-to-SQL o Entity Framework y le permiten crear ese modelo, basado en su base de datos física.

Sin embargo, cuando necesite utilizar algo como servicios orientados a métodos, como "Insertar cliente", "Calcular pedidos totales para el cliente", etc., entonces un servicio WCF basado en SOAP será más adecuado. Un servicio WCF basado en SOAP define un contrato de servicio (conjunto de métodos en su servicio) y le permite llamar a esos métodos en su objeto de servicio.

SOAP es genial cuando se realiza un trabajo comercial orientado a las transacciones: es autodescriptivo, p. su cliente puede descubrir e interrogar al servicio SOAP (un área en la que REST no cuenta, no hay "WSDL" o algo similar para los servicios REST).

Y si está haciendo SOAP, también recomendaría utilizar un enfoque basado en modelos para sus datos - cree un modelo de su base de datos y exponga los métodos en esas entidades al mundo exterior - de nuevo, usando Linq-to- SQL, Entity Framework, NHibernate u otra herramienta de modelado/ORM. No recomendaría usar ADO.NET "clásico" o "básico" para la mayoría de su trabajo - es demasiado trabajo pesado y código tonto - deje que un marco como Linq-to-SQL o EF maneje esas cosas aburridas de infraestructura para usted y concéntrese en los requisitos y necesidades de su negocio real.

+0

Gracias por esta respuesta integral. – Kottan

Cuestiones relacionadas