10

Actualmente estoy en el proceso de crear una aplicación basada en datos de Silverlight 3. Para acceder a la base de datos, se utilizan 2 enfoques comunes: Servicios RIA y Servicios de datos ADO.NET. ¿Alguien tiene alguna guía sobre cuándo/por qué elegir cada enfoque? Esto es lo que he recopilado de mi investigación/experiencia. ¿Alguna idea?RIA Services vs ADO.NET Data Services

ADO.NET parece ser solo útil para estrictamente llamadas a bases de datos. Si necesita exponer los servicios de datos a otras aplicaciones (ignorando la restricción de dominio de Silverlight 3), este es un buen enfoque. Además, si la sintaxis URL/Query puede ser útil en su aplicación, esta es otra ventaja

Los servicios de RIA parecen ser un marco más flexible y aceptado. Parece darle más que estrictamente acceso a la base de datos. Tiene una limitación de solo ser utilizado para la aplicación Silverlight/Web ya que no está expuesto a través de un servicio.

¿Pensamientos? Ideas? ¿Comentarios?

Respuesta

10

Por cable, los servicios de datos ADO.NET y los servicios de RIA son muy similares (ambos están basados ​​en REST).

Sin embargo, con los servicios de datos ADO.NET y todos los demás servicios REST no se obtiene una API fácil de ver en Visual Studio. Por ejemplo, no sabe qué llamadas a la base de datos están disponibles y los datos devueltos no están fuertemente tipados. Es un sistema de datos muy interoperable, pero puede ser doloroso trabajar con él.

Con los servicios RIA, obtiene lo mejor de ambos mundos ya que su proyecto RIA se referencia directamente para proyectos Silverlight, de modo que Visual Studio puede saber qué métodos están disponibles y todo está fuertemente tipado. Todas las demás aplicaciones pueden usar este servicio (dataservice.axd) pero no tienen el lujo de una API.

EDIT: Corrección: ADO.NET Data Services hace generar metadatos (Lo siento por la mala información) http://msdn.microsoft.com/en-us/library/cc716656.aspx

+0

buena información. Tendré que darte un voto "virtual" ya que soy demasiado nuevo para Stack Overflow (solo para reputación 11) para votar tu respuesta. –

+2

Creo que se equivoca con respecto a: "no es fácil ver API en Visual Studio" con respecto a los servicios de datos. ADO.NET Data Services se puede importar a Visual Studio como cualquier solución WCF/RIA que le permite ver el código en la API a través de los métodos/clases fuertemente tipados que se crean. –

+0

En general, buen hilo, pero estoy de acuerdo con Robert - ADO.NET Data Services es muy fácil de ver bajo el capó de. –

0

hice un prototipo de un sistema con Silverlight 2 y servicios de datos de ADO.NET y actualmente voy hacia adelante con una implementación de MVVM que usa los servicios de Silverlight 3 y RIA para una aplicación de LOB.

RIA tiene un modelo de seguridad que le evita crear uno propio con WCF para el uso de Silverlight. Se basa en el modelo de proveedor de seguridad ASP.NET. Tiene un modelo de validación interesante y poderoso que le permite insertar fácilmente sus propios validadores de clientes.

Los principales problemas con los Servicios de RIA son que son muy nuevos, no están en su forma final y tienen muy poca documentación con más de un senario de caso simplista. Se espera Beta en PDC en noviembre y el RTM con EF 4.0, C# 4.0 y VS2010.

Al trabajar con algo tan temprano, puede esperar una refacturación sustancial con los cambios a medida que se realizan las versiones y cierta frustración con pequeños cambios que no son tan fáciles de detectar.

Actualmente estamos trabajando en errores en EF y RIA y es posible que necesitemos utilizar los servicios de datos para hacer algunas cosas hasta que RIA sea más estable.

Hay un tipado fuerte tanto con los servicios de datos como con el RIA. Intellisense funciona con ambos. Resharper aún no es compatible con RIA, aunque se espera que esté en su versión 5.0.

3

Esta es una pregunta muy antigua pero me gustaría añadir una respuesta para los lectores.

Ria services se encuentra encima de los servicios de datos ADO.net. Los servicios de Ria usan ADO.Net como base framework y agrega capa para facilitar el uso de la biblioteca de UI.

Así que la pregunta puede ser cuando utiliza los servicios de RIA y cuando el uso de servicios de datos ADO.Net

Cuestiones relacionadas