2010-09-10 6 views
95

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 accomplir mais ne dit pas pourquoi j'en ai besoin.Qu'est-ce que les services WCF RIA?

Par exemple:

« Un problème commun lors de l'élaboration d'une solution RIA multiniveau coordonne logique d'application entre le milieu niveau et le niveau de présentation ».

Eh bien, cela ne signifie pas grand chose pour moi.

« Services RIA permet de résoudre ce problème en fournissant des composants cadres, des outils, des et des services qui rendent l'application logique sur le serveur à la disposition du client RIA sans vous obliger à dupliquer manuellement cette logique de programmation . Vous pouvez créer un client RIA qui est au courant des règles métier et savoir que le client est automatiquement mis à jour avec la dernière logique de niveau intermédiaire chaque fois que la solution est recompilée . "

Est-ce qu'il télécharge des DLL à partir du serveur? Est-ce une métadonnée décrivant les règles pour 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ù est-ce que ça vit? Avec les données, avec le serveur, quoi?

Je vous remercie si vous pouvez résumer cela pour moi s'il vous plaît.

+3

Il est une technologie sur en haut de WCF, qui utilise la génération de code et le code côté client et côté serveur. Il se concentre principalement sur le transfert de données du serveur vers le client et vice-versa, avec validation et autres. – Rangoric

+1

@Rangoric: Vous pouvez poster comme réponse. Des réponses courtes peuvent être de bonnes réponses aussi. –

+7

Ah, lol, j'ai mal lu comme *** RIAA ***, et est allé psycho. –

Répondre

96

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 d'un service RIA est un DomainService, généralement un LinqToEntitiesDomainService connecté à un modèle LinqToEntities. La principale chose à retenir dans les services RIA est qu'il s'agit principalement d'un tour de build 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é CustomerContext 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. Pour que 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ées via GetCustomersByCountryQuery).
  • Pour les insertions, utilisez CustomerContext.Customers.Add(new Customer(...) {...}). Pour supprimer, vous utilisez CustomerContext.Customers.Remove(someCustomer).

Lorsque vous avez terminé l'édition, vous appelez CustomerContext.SubmitChanges(). Pour la validation, vous pouvez décorer vos objets côté serveur avec les attributs de validation de l'espace de noms System.ComponentModel.DataAnnotations. 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.

+0

C'est sûrement le cas. Merci de l'avoir partagé. Je souhaite que vous pourriez mettre à jour le site MSDN. Maintenant, que faire si j'ajoute une propriété à mon objet de domaine? Est-ce qu'il se mettrait à jour? – Aliostad

+0

J'ai ajouté quelques informations supplémentaires sur les mises à jour, les insertions et les suppressions. –