Odio el sitio de MSDN para los servicios WCF RIA. No dice lo que es, solo dice lo que hace. Dice lo que puede lograr pero no dice por qué lo necesito.
Por ejemplo:
"Un problema común al desarrollar una solución RIA de n niveles es coordinar la lógica de la aplicación entre el nivel medio y el nivel de presentación".
Bueno, no significa mucho para mí.
"Los servicios de RIA resuelven este problema al proporcionar componentes de marco, herramientas y servicios que hacen que la lógica de la aplicación en el servidor esté disponible para el cliente de RIA sin necesidad de que duplique manualmente esa lógica de programación. Puede crear un cliente de RIA que conozca las reglas de negocio y sepa que el cliente se actualiza automáticamente con la última lógica de nivel medio cada vez que se vuelve a compilar la solución ".
Entonces, ¿descarga archivos DLL del servidor? ¿Es un metadato que describe las reglas para los datos?
¿Así que qué es lo? ¿Es solo un complemento de VS 2010 para RAD? ¿O es una tecnología sobre WCF o debajo de ella o qué? ¿Dónde vive? Con datos, con servidor, ¿qué?
Le agradecería que me pudiera resumir esto, por favor.
Respuestas:
Los servicios RIA son una tecnología del lado del servidor que genera automáticamente objetos del lado del cliente (Silverlight) que se encargan de la comunicación con el servidor por usted y brindan validación del lado del cliente.
El objeto principal dentro de un servicio RIA es un
DomainService
, generalmente un,LinqToEntitiesDomainService
que está conectado a un modelo LinqToEntities.La clave para recordar en los servicios RIA es que se trata principalmente de un truco de compilación sofisticado. Cuando crea un servicio de dominio y compila su solución, se genera una representación del lado del cliente de su servicio de dominio. Esta representación del lado del cliente tiene la misma interfaz. Suponga que crea un servicio de dominio del lado del servidor
CustomerService
con un métodoIQueryable<Customer> GetCustomersByCountry
. Cuando construye su solución, se genera una clase dentro de su proyecto Silverlight llamadoCustomerContext
que tiene un métodoGetCustomersByCountryQuery
. Ahora puede usar este método en el cliente como si lo estuviera llamando en el servidor.Las actualizaciones, inserciones y eliminaciones siguen un patrón diferente. Cuando crea un servicio de dominio, puede indicar si desea habilitar la edición. Los métodos correspondientes para actualizar / insertar / eliminar se generan en el servicio de dominio del lado del servidor. Sin embargo, la parte del lado del cliente no tiene estos métodos. Lo que tienes en tu
CustomerContext
es un método llamadoSubmitChanges
. Entonces, cómo funciona esto:GetCustomersByCountryQuery
).CustomerContext.Customers.Add(new Customer(...) {...})
.CustomerContext.Customers.Remove(someCustomer)
.Cuando termines de editar, llamas
CustomerContext.SubmitChanges()
.En cuanto a la validación, puede decorar sus objetos del lado del servidor con atributos de validación del
System.ComponentModel.DataAnnotations
espacio de nombres. Una vez más, cuando crea su proyecto, el código de validación ahora se genera automáticamente para los objetos del lado del cliente correspondientes.Espero que esta explicación te ayude un poco más.
fuente
Últimas noticias: WCF RIA Services está muerto:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
Si desea utilizar los servicios RIA, estos son de código abierto:
http://www.openriaservices.net/blog/posts/
fuente