Choisir une couche de services .Net (par Joël Descombes, SQLI) RIA Services

RIA Services cible tout particulièrement les développements pour Silverlight. Elle reprend et étend la logique des WCF Data Services, en lui ajoutant une abstraction de la couche réseau, grâce à une très forte intégration à Visual Studio. Cette intégration à Visual Studio est réalisée aussi bien au niveau de l'IHM Silverlight (ex : ajout d'une grille liée aux données serveur par simple drag-and-drop), qu'au niveau de la prise en charge du ou des proxies, qui sont générés automatiquement et de manière transparente, ou encore du côté serveur, par l'initialisation du contexte d'accès aux données. L'objectif étant que le développeur se concentre principalement sur le métier et non sur la tuyauterie.

Points forts et points faibles de RIA Services
Avantages Inconvénients
Source : SQLI
Accélère le développement de solutions basées sur un client Silverlight (forte utilisation de code généré).Pas de SOAP.
Utilise les protocoles de l'Internet.Une vraie boîte noire, qui nécessite obligatoirement Visual Studio.
Compatibilité OData (.Net 4.0).Contexte de données obligatoire.
Intégration à ASP.Net, notamment au travers de la gestion des rôles.Méthodes Web nécessite au maximum une entité du modèle en paramètre d'entrée.
Composants Silverlight dédiés.Intégration de traitements métier dans les classes d'entités.
Partage de code entre le client et le serveur, limitant les développements.Opérations entre contextes de données très difficile, sinon impossible.
Intégration avec Microsoft Azure.Complexe à maitriser.
Technologie récente.

On retiendra cette solution pour des développements d'applications Silverlight, pour lesquels une exposition publique du modèle de données n'est pas gênante. Attention tout de même, le choix de RIA Services va bien au-delà de celui de la couche de service.

Il s'agit d'un modèle complet d'application dont l'aspect "boîte noire", soulève un certain nombre de questions. Comment va-t-elle évoluer, notamment face à la concurrence des WCF Data Services ? Que se passera-t-il, si l'on souhaite se séparer ultérieurement des RIA Services et adopter une autre technologie serveur ? Faudra-t-il refaire toute l'application ? Pour ces raisons, il semble que cette solution soit avant tout adaptée aux petites applications destinées à l'Internet, et pour lesquelles le temps de réalisation est réduit.