2010-03-26 7 views
20

Il existe de nombreuses informations sur la façon de créer une application Silverlight à l'aide des services .NET RIA, mais on ne sait pas quelle est la particularité de RIA qui est absente dans WCF?Services RIA et services WCF: quelle différence

Voici quelques sujets qui parlent autour de ce sujet: [1], [2]

Mais ils ne donnent pas une réponse à la question.

Désolé pour la question stupide, mais qu'est-ce que la couche RIA Services apporte dans votre application si vous avez déjà Silverlight <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database? Authentification? Validation? Est-ce que c'est de l'argent pour toi?

Au moment où la seule chose que je vois: avec l'utilisation des services de RIA vous n'avez pas besoin d'héberger un service WCF manuellement et ne pas besoin de configurer des références sur le côté client (côté clien == application Silverlight).

Probablement je ne connais pas certaines fonctionnalités très utiles des services RIA? Alors pourriez-vous me diriger vers le bon document pour cela?

Merci beaucoup.

P.S. J'ai lu beaucoup d'articles différents sur les différences, mais je ne peux pas le clarifier ... tous les articles "racontent" et ne sont pas concrets. Si vous allez me donner un lien vers un article supplémentaire, pourriez-vous s'il vous plaît être si gentil et fournir une liste des avantages que vous voyez.

Répondre

12

En fait, vous pouvez utiliser la même validation et l'authentification sans utiliser les services RIA. Ce que RIA Services vous donne est la génération de code. Il crée vos classes pour vous. Vous avez seulement besoin de mettre la logique métier. Je pense que RIA Services est très utile pour développer très rapidement des petites et moyennes applications. Une autre différence est qu'elle masque les appels asynchrones au service Web. Beaucoup de gens n'aiment pas le modèle asynchrone (qui est le seul que vous pouvez utiliser dans Silverlight) et les services RIA gère cela pour vous.

Je recommande la lecture de cet article de Shawn Wildermuth où il souligne les avantages et les inconvénients des deux approches et comprend également des services de données ADO.NET (qui est maintenant appelé WCF Data Services, je pense):

http://wildermuth.com/2009/09/29/Choosing_a_Data_Access_Layer_for_Silverlight_3

+0

Arturo, merci pour le lien, ça a donné matière à réflexion ... mais de toute façon, ce n'est pas clair pour moi quels sont les avantages de RIA.La seule nouvelle chose que j'ai obtenue de l'article lié: les services RIA sont TRÈS similaires à WebServices (ou au WCF qui utilise le protocole de transfert WsHttpBasic) et fournissent une capacité supplémentaire pour appliquer des requêtes LinQ aux méthodes appelées. Seront-ils exécutés côté serveur? Est-ce tout? – Budda

+0

Oui, ils seront exécutés côté serveur. Les services RIA incluent des descripteurs de filtre qui vous permettent de passer des critères à la base de données, là où ils doivent arriver. Autre que cela et les raisons énoncées ci-dessus, oui c'est tout :-) Pour moi, la génération de code que vous obtenez est sa différence. –

+0

Arturo, comment répliquer la logique de validation au client sans dupliquer le code? – bob

4

Eh bien, je ne suis pas d'accord avec la réponse affichée précédente. WCF Ria Sercices est une grande architecture et les temps ont prouvé. Je préférerais jeter un oeil à http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx

En fait, j'utilise WCF Ria Services sur une grande application LOB ciblant plus de 1500 utilisateurs contemporains. J'ai fait une utilisation massive de la personnalisation de génération de code client (voir le Varun's blog pour plus de détails) mais je suis capable d'utiliser LINQ sur le fil avec silverlight et j'ai la possibilité de choisir entre chargement automatique paresseux ou impatient parmi les entités sur le contexte . Et n'oubliez pas que le reste du paradigme de WCF Ria Services permet également l'utilisation de OutputCache.

Pas la mention que grâce à métadataprovider personnalisé, vous pouvez grandement faciliter la génération du client et la façon dont les données sont sérialisées au client. Je crois que si votre application Silverlight est basée sur le contexte, vous pouvez certainement aller avec WCF Ria Services. Espérons que ça aide, Marco