Qu'est-ce que WCF RIA services?

Je déteste le site de 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 réaliser, mais ne dit pas pourquoi j'en ai besoin.

Par exemple:

" un problème courant lors du développement d'un la solution RIA n-tier est coordonnée logique d'application entre le milieu niveau et le niveau de présentation".

Eh Bien, cela ne signifie pas grand-chose pour moi.

" RIA Services résout ce problème en en fournissant un cadre les composants, les outils, et les services qui font l'application logique sur le serveur Disponible pour le Client RIA sans vous obliger à dupliquer manuellement cette programmation logique. Vous pouvez créer un client RIA qui est au courant des règles d'affaires et savoir que le client est automatiquement mise à jour avec la dernière logique de niveau intermédiaire chaque fois que la solution est re-compilé."

Alors télécharge-t-il des DLL à partir du serveur? Est-ce une métadonnées décrivant les règles pour le les données?

Alors qu'est-ce que c'est? Est-ce juste un add-on VS 2010 pour RAD? Ou est - ce une technologie au-dessus de WCF ou en dessous ou quoi? Où vit-il? Avec les données, avec le serveur, quoi?

J'apprécie que vous puissiez résumer ceci pour moi s'il vous plait.

96
demandé sur Aliostad 2010-09-10 16:00:28

2 réponses

RIA services est une technologie côté serveur qui génère automatiquement des objets côté client (Silverlight) qui s'occupent de la communication avec le serveur pour vous et fournissent une validation côté client.

Le principal objet à l'intérieur d'une RIA services est un DomainService, habituellement, un LinqToEntitiesDomainService qui est connecté à un LinqToEntities modèle.

La chose clé à retenir dans les services RIA est que c'est principalement un truc de construction sophistiqué. 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éthode IQueryable<Customer> GetCustomersByCountry. Lorsque vous construisez votre solution, une classe est générée dans votre projet Silverlight appelée {[4] } qui a une méthode GetCustomersByCountryQuery. 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 pour update / insert / delete 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ée SubmitChanges. Alors, comment cela fonctionne:

  • pour les mises à jour, il vous suffit de mettre à jour les propriétés des clients existants (que vous avez récupérés via GetCustomersByCountryQuery).
  • Pour les insertions, vous utilisez CustomerContext.Customers.Add(new Customer(...) {...}).
  • pour supprime, vous utilisez 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 System.ComponentModel.DataAnnotations espace de noms. Encore une fois, lorsque vous construisez votre projet, le code de validation est maintenant généré automatiquement pour les objets côté client correspondants.

J'espère que cette explication vous aidera un peu plus loin.

99
répondu Ronald Wildenberg 2010-09-12 22:07:00

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é ouverts:

Http://www.openriaservices.net/blog/posts/

8
répondu user8128167 2014-11-21 22:47:44