SIGUIENDO MI RESPUESTA ANTERIOR AQUÍ LAS DESVENTAJAS DE LOS SERVICIOS DE RIA: En el otro extremo, la desventaja de los servicios de ria es su falta de flexibilidad. Principalmente es como un tubo que conecta una clase en el lado del servidor con su representante del lado del cliente de tal forma que opera en la clase del lado del cliente como si estuviera operando directamente en la clase del lado del servidor. Si la forma en que este "tubo" manejado está bien para su aplicación, obtendrá muchos servicios gratis (sin escribir ningún código ...). Sin embargo, existen limitaciones que no se pueden eliminar específicamente:
1) No tiene la misma libertad para definir el comportamiento, el atributo, etc., para modificar la forma en que se comporta el servicio web. Por ejemplo, no puede definir una transacción distribuida que involucre más de un servicio web. Es difícil agregar nuevos puntos finales ... Tiene que escribir código ... no simplemente modificar un archivo de configuración.
2) Solo puede definir un método Insertar/una actualización/obtener uno para cada clase. Si aplica el filtrado a la consulta del lado del cliente a través de LINQ, se aplica solo en el cliente, es decir, todos los datos se descargan del servidor y luego se filtran en el cliente.Por el contrario, si utiliza un servicio de datos WCF basado en OData y define una consulta en el lado del cliente. ESTA CONSULTA SE TRADUCE EN UNA CONSULTA DE DESCANSO (una consulta codificada en la URL de la solicitud) POR LO TANTO, SÓLO SE DESCARGAN LOS DATOS QUE USTED REQUIERE DE SU FILTRO DESDE EL SERVIDOR. Para obtener más información sobre el servicio de datos WCF, consulte here.
3) En contraste con los Servicios de datos de WCF, no se ofrece ningún servicio de Validación como con el servicio de Ria. Sin embargo, puede seguir utilizando annotatios de datos con la ayuda de mi kit de herramientas de validación para WPF & Silverlight, que está disponible de forma gratuita here
Gracias gius. Eso ayuda. Pero actualmente estoy tratando de encontrar una respuesta que me diga qué es lo que RIA no puede hacer en absoluto [o puede hacer frente a muchos dolores de cabeza y manipulaciones adicionales]. La forma en que lo veo, al actualizar los metadatos se encarga de un montón de validación para el cual tendría que escribir mucho código para empezar. ¿Pueden compartir un poco más detalles sobre las plantillas T4? –
Hemos creado plantillas T4 que generan metadatos (incluyendo validación y descripción), servicios (seleccionar, insertar, actualizar, eliminar funciones), recursos (cadenas de validación, cadenas de descripción) y procedimientos almacenados (insertar, actualizar, eliminar) basados en el modelo EF . Mi colega está limpiando las plantillas y preparando una publicación de blog donde se publicarán. Te lo haré saber tan pronto como se lance. – gius
Acerca de lo que RIA no puede: piense en ello como EF1 frente a EF4. Por lo tanto, es bastante difícil personalizar el comportamiento de las entidades, no puede usar POCO, todavía tiene que tratar con DomainContext. Pero como ya dije, probablemente sea la mejor forma de obtener datos del servidor en su aplicación de cliente SL. Hemos creado una aplicación bastante grande, tratada con datapaging, grids, master/details, DataForms, etc. y debo decir que RIA no fue el show stopper. No tome esto ya que estoy completamente satisfecho, esperamos con ansias RIA2. Simplemente no tendría miedo de usarlo. – gius