Je déteste le site MSDN pour les services WCF RIA. Il ne dit pas ce que c'est, il dit seulement ce qu'il fait. Il dit ce qu'il peut accomplir mais ne dit pas pourquoi j'en ai besoin.
Par exemple:
"Un problème courant lors du développement d'une solution RIA à n niveaux est la coordination de la logique d'application entre le niveau intermédiaire et le niveau de présentation".
Eh bien, cela ne signifie pas grand-chose pour moi.
«Les services RIA résout ce problème en fournissant des composants de structure, des outils et des services qui mettent la logique d'application sur le serveur à la disposition du client RIA sans que vous ayez à dupliquer manuellement cette logique de programmation. Vous pouvez créer un client RIA qui connaît les règles métier et sachez que le client est automatiquement mis à jour avec la dernière logique de niveau intermédiaire chaque fois que la solution est recompilée. "
Alors, télécharge-t-il les DLL du serveur? S'agit-il d'une métadonnée décrivant les règles pour les données?
Alors c'est quoi? Est-ce juste un module complémentaire VS 2010 pour RAD? Ou est-ce une technologie au-dessus de WCF ou en dessous ou quoi? Où est-ce que ça vit? Avec des données, avec un serveur, quoi?
J'apprécie si vous pouvez résumer ceci pour moi s'il vous plaît.
Réponses:
Les services RIA sont une technologie côté serveur qui génère automatiquement des objets côté client (Silverlight) qui prennent en charge la communication avec le serveur pour vous et fournissent une validation côté client.
L'objet principal à l'intérieur d'un service RIA est un
DomainService
, généralement unLinqToEntitiesDomainService
qui est connecté à un modèle LinqToEntities.La chose clé à retenir dans les services RIA est qu'il s'agit principalement d'une astuce de construction sophistiquée. Lorsque vous créez un service de domaine et compilez votre solution, une représentation côté client de votre service de domaine est générée. Cette représentation côté client a la même interface. Supposons que vous créez un service de domaine côté serveur
CustomerService
avec une méthodeIQueryable<Customer> GetCustomersByCountry
. Lorsque vous générez votre solution, une classe est générée à l'intérieur de votre projet Silverlight appeléeCustomerContext
qui a une méthodeGetCustomersByCountryQuery
. Vous pouvez maintenant utiliser cette méthode sur le client comme si vous l'appeliez sur le serveur.Les mises à jour, les insertions et les suppressions suivent un modèle différent. Lorsque vous créez un service de domaine, vous pouvez indiquer si vous souhaitez activer la modification. Les méthodes correspondantes de mise à jour / insertion / suppression sont ensuite générées dans le service de domaine côté serveur. Cependant, la partie côté client n'a pas ces méthodes. Ce que vous avez sur votre
CustomerContext
est une méthode appeléeSubmitChanges
. Donc comment ça fonctionne:GetCustomersByCountryQuery
).CustomerContext.Customers.Add(new Customer(...) {...})
.CustomerContext.Customers.Remove(someCustomer)
.Lorsque vous avez terminé l'édition, vous appelez
CustomerContext.SubmitChanges()
.En ce qui concerne la validation, vous pouvez décorer vos objets côté serveur avec des attributs de validation de l'
System.ComponentModel.DataAnnotations
espace de noms. Là encore, lorsque vous générez votre projet, le code de validation est désormais automatiquement généré pour les objets côté client correspondants.J'espère que cette explication vous aidera un peu plus loin.
la source
Les dernières nouvelles: WCF RIA Services est mort:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
Si vous souhaitez utiliser les services RIA, ils ont été open source:
http://www.openriaservices.net/blog/posts/
la source