Eu odeio o site do MSDN para serviços WCF RIA. Não diz o que é, apenas diz o que faz. Diz o que pode alcançar, mas não diz por que preciso disso.
Por exemplo:
"Um problema comum ao desenvolver uma solução RIA de n camadas é coordenar a lógica do aplicativo entre a camada intermediária e a camada de apresentação".
Bem, isso não significa muito para mim.
"Os serviços RIA resolvem esse problema fornecendo componentes de estrutura, ferramentas e serviços que tornam a lógica do aplicativo no servidor disponível para o cliente RIA sem exigir que você duplique manualmente essa lógica de programação. Você pode criar um cliente RIA que esteja ciente das regras de negócios e saiba que o cliente é atualizado automaticamente com a lógica da camada intermediária mais recente toda vez que a solução é recompilada. "
Então, ele baixa DLLs do servidor? É um metadado que descreve as regras para os dados?
Então o que é? É apenas um add-on do VS 2010 para RAD? Ou é uma tecnologia em cima do WCF ou embaixo dele ou o quê? Onde isso vive? Com dados, com servidor, o quê?
Agradeço se você pode resumir isso para mim, por favor.
Respostas:
Os serviços RIA são uma tecnologia do lado do servidor que gera automaticamente objetos do lado do cliente (Silverlight) que cuidam da comunicação com o servidor para você e fornecem validação do lado do cliente.
O objeto principal dentro de um serviço RIA é um
DomainService
, geralmente umLinqToEntitiesDomainService
que está conectado a um modelo LinqToEntities.O principal a ser lembrado em serviços RIA é que ele é principalmente um truque de construção sofisticado. Quando você cria um serviço de domínio e compila sua solução, uma representação do lado do cliente de seu serviço de domínio é gerada. Essa representação do lado do cliente possui a mesma interface. Suponha que você crie um serviço de domínio do lado do servidor
CustomerService
com um métodoIQueryable<Customer> GetCustomersByCountry
. Quando você constrói sua solução, uma classe é gerada dentro de seu projeto Silverlight chamadaCustomerContext
que possui um métodoGetCustomersByCountryQuery
. Agora você pode usar esse método no cliente como se o estivesse chamando no servidor.Atualizações, inserções e exclusões seguem um padrão diferente. Ao criar um serviço de domínio, você pode indicar se deseja habilitar a edição. Os métodos correspondentes para atualização / inserção / exclusão são gerados no serviço de domínio do lado do servidor. No entanto, a parte do lado do cliente não possui esses métodos. O que você tem em mãos
CustomerContext
é um método chamadoSubmitChanges
. Então, como isso funciona:GetCustomersByCountryQuery
).CustomerContext.Customers.Add(new Customer(...) {...})
.CustomerContext.Customers.Remove(someCustomer)
.Quando terminar de editar, você liga
CustomerContext.SubmitChanges()
.Quanto à validação, você pode decorar seus objetos do lado do servidor com atributos de validação do
System.ComponentModel.DataAnnotations
namespace. Novamente, quando você constrói seu projeto, o código de validação agora é gerado automaticamente para os objetos do lado do cliente correspondentes.Espero que esta explicação ajude você um pouco mais.
fonte
As últimas notícias: WCF RIA Services está morto:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
Se você quiser usar os Serviços RIA, eles foram de código aberto:
http://www.openriaservices.net/blog/posts/
fonte