Création de solutions de Services RIA

Les Services RIA WCF vous permettent de créer des solutions qui s'adressent à divers scénarios lors de la création d'applications métier. Ces scénarios vont du scénario le plus élémentaire au plus complexe. Par exemple, un scénario élémentaire peut être constitué d'une application Silverlight unique qui n'accède qu'à quelques services de domaine dans la couche intermédiaire. Un scénario plus complexe peut contenir plusieurs applications Silverlight, toutes liées à une couche de niveau intermédiaire commune qui expose une grande quantité de services de domaine. Cette rubrique aborde les problèmes qui surviennent lors de la création et de la gestion d'une solution Services RIA . Elle répond à des questions telles que :

  • Quelles sont les différentes façons de structurer une solution Services RIA  ?

  • Quelle est la meilleure structure pour un scénario particulier ?

  • Comment dépanner une solution ?

  • Comment déployer une solution ?

Cette rubrique fournit également quelques conseils pour les procédures pas à pas et d'autres rubriques contenues dans cette section, qui vous permettent de mener à bien les tâches liées à plusieurs scénarios typiques relatifs aux Services RIA . Cette section contient les cinq procédures pas à pas suivantes :

  1. Procédure pas à pas : Présentation des Services RIA

  2. Procédure pas à pas : Création d'une solution de Services RIA

  3. Procédure pas à pas : Utilisation du modèle Application métier Silverlight

  4. Procédure pas à pas : Création d'une bibliothèque de classes Services RIA

  5. Procédure pas à pas : Localisation d'une application métier

Cette section contient également les trois rubriques suivantes :

  1. Procédure : Ajouter ou enlever un lien des services RIA sur la gestion des liens des Services RIA .

  2. Utilisation de l'Assistant Service de domaine qui documente les éléments d'interface utilisateur de la boîte de dialogue.

  3. Débogage d'une solution services RIA qui donne quelques conseils sur ce qu'il faut faire lorsque la création d'une solution Services RIA se passe mal.

Les procédures pas à pas présentées dans cette section de la documentation des Services RIA nécessitent au préalable l'installation et la configuration correctes de plusieurs programmes, tels que Visual Studio 2010 et le Runtime et SDK Silverlight, en plus des Services RIA WCF et du kit de ressources des Services RIA WCF. Ces procédures nécessitent également l'installation et la configuration de SQL Server 2008 R2 Express with Advanced Services et l'installation de la base de données AdventureWorks OLTP et LT.

Vous trouverez des instructions détaillées pour satisfaire chacune de ces conditions préalables dans les rubriques du nœud Conditions préalables pour les Services RIA WCF. Suivez ces instructions pour être sûr de rencontrer le moins de problèmes possibles en effectuant les procédures pas à pas des Services RIA de cette section.

Lien des services RIA

Dans toutes les solutions Services RIA , un lien (appelé lien des Services RIA ) existe entre un projet Silverlight et son projet de couche intermédiaire associé. Un lien des Services RIA est une forme spéciale de référence entre projets qui facilite la génération du code de couche Présentation à partir du code de la couche intermédiaire. Vous créez un lien des Services RIA en activant la case à cocher Activer les services RIA WCF lorsque vous créez un projet Silverlight. Vous pouvez également créer un lien des Services RIA pour les projets existants dans les propriétés du projet. Dans certains cas, vous créez le lien des Services RIA entre des projets d'application, et dans d'autres cas vous créez le lien entre des projets Bibliothèque de classes, comme expliqué dans les sections suivantes.

Quand un lien existe entre les projets, le projet Silverlight reçoit des classes proxy qui lui permettent d'accéder au code de couche intermédiaire. Il n'y a aucune méthode pour spécifier que seules certaines parties de la couche intermédiaire s'appliquent à un projet Silverlight. Les règles générales suivantes s'appliquent à l'utilisation des liens des Services RIA  :

  • Le lien est défini dans un projet client Silverlight.

  • Le lien pointe toujours d'un projet client Silverlight vers un projet ou une bibliothèque de classes serveur .NET.

  • Il ne peut y avoir qu'un seul lien par projet client Silverlight.

  • Le lien ne peut pas pointer vers d'autres projets clients Silverlight.

  • Plusieurs projets clients Silverlight peuvent pointer vers le même projet serveur ou la même bibliothèque de classes serveur.

  • Une application Silverlight ne peut pas être directement liée à un projet Bibliothèque de classes.

Pour plus d'informations sur la gestion des liens des Services RIA , consultez Procédure : Ajouter ou enlever un lien des services RIA dans cette section.

Structure de la solution par défaut

Dans la structure de la solution par défaut, les Services RIA créent un projet client unique et un projet serveur (unique). Lorsque vous créez un projet à l'aide du modèle Application Silverlight et que vous activez la case à cocher Activer les services RIA WCF, une solution est créée avec cette structure par défaut. Un lien des Services RIA existe déjà entre les deux projets. Quand vous générez la solution, le code client est généré pour les services de domaine et le code partagé. L'illustration suivante montre la structure de la solution par défaut.

Structure de projet par défaut

La structure de la solution par défaut est pratique, car tous les types de service de domaine et le code partagé ajoutés au projet serveur sont automatiquement disponibles pour le projet client Silverlight une fois que vous avez généré la solution. Le code partagé que vous ajoutez au projet serveur est également visible dans le projet client. Cette structure fonctionne bien si vous n'avez pas beaucoup de services de domaine dans le projet serveur et si vous n'avez pas besoin de réutiliser la logique métier dans de nombreuses applications Silverlight différentes.

Dans une solution avec la structure par défaut, vous pouvez ajouter davantage d'applications Silverlight au projet serveur à l'aide d'un lien des Services RIA . Cependant, la structure par défaut présente certaines limitations. Le code généré pour chaque client Silverlight peut accéder à l'ensemble du code de couche intermédiaire du projet serveur. Par exemple, si vous possédez trois applications Silverlight liées à un projet serveur unique et que vous voulez ajouter un service de domaine qui sera utilisé par une seule de ces applications Silverlight, l'ensemble des trois applications clientes auront un contexte de domaine généré pour le service de domaine et seront capables d'accéder à ce service de domaine.

Pour plus d'informations sur la création de solutions Services RIA dans Visual Studio 2010, consultez Procédure pas à pas : Création d'une solution de Services RIA. Pour plus d'informations sur le code généré pour un projet client, consultez Génération de code client.

Modèle Application métier Silverlight

Les Services RIA fournissent également un modèle Application métier Silverlight. Ce modèle fournit un point de départ commode pour générer une application métier qui utilise Silverlight comme client. Le modèle repose sur l'application de navigation Silverlight et utilise les Services RIA pour prendre en charge l'authentification et l'inscription des utilisateurs. Quand vous créez un projet à l'aide du modèle Application métier Silverlight, les Services RIA créent la solution avec la structure par défaut. Le modèle Application métier Silverlight ajoute automatiquement les fonctionnalités suivantes :

  • Fenêtre de connexion

  • Fenêtre d'inscription

  • Navigation Silverlight

Le mode d'authentification par défaut pour l'application métier est l'authentification par formulaire. Pour utiliser l'authentification Windows, vous devez simplement remplacer la valeur de l'élément d'authentification dans le fichier Web.config par <authentication mode="Windows"/> et modifier la valeur de la propriété Authentication sur la classe WebContext générée. Le modèle Application métier contient automatiquement du code pour prendre en charge l'authentification par formulaire ou l'authentification Windows. Pour plus d'informations, consultez la rubrique Procédure pas à pas : Utilisation du modèle Application métier Silverlight.

Le dossier Services du projet serveur contient les services de domaine qui exposent l'inscription et l'authentification des utilisateurs. Le service d'inscription des utilisateurs utilise le fournisseur d'appartenances ASP.NET pour créer des utilisateurs. Dans le projet serveur, un dossier Models contient des classes de définition de propriétés pour les données utilisateur et d'inscription. Vous pouvez ajouter des propriétés à ces classes afin de personnaliser les données utilisateur pour votre application.

Dans le projet client, l'application métier contient du code pour simplifier le développement de la couche Présentation. Les dossiers Libs et Controls contiennent des assemblys et des contrôles utilisés dans le modèle. Le dossier Login (qui se trouve dans le dossier Views) contient les contrôles d'authentification et d'inscription des utilisateurs. Ces contrôles sont automatiquement activés dans le projet. Le dossier Resources (situé dans le dossier Assets) contient des chaînes de ressource pour le texte dans le projet. Lorsque vous ajoutez des textes à votre application, vous pouvez les ajouter au fichier des chaînes d'application.

Pour plus d'informations, consultez Procédure pas à pas : Utilisation du modèle Application métier Silverlight.

Prise en charge des composants de bibliothèque de classes multicouches

Les Services RIA fournissent le type de projet Bibliothèque de classes WCF RIA Services pour prendre en charge le partage du code entre les bibliothèques. En utilisant des bibliothèques de classes, vous intégrez la logique métier dans des composants de bibliothèque de classes multicouches réutilisables.

L'illustration suivante montre une structure de solution qui utilise une bibliothèque de classes RIA Services.

Structure de bibliothèque de classes

Dans l'illustration, remarquez qu'il n'existe pas de lien des Services RIA entre les projets d'application. En revanche, le lien existe entre les projets Bibliothèque de classes. Vous pouvez utiliser un nombre quelconque de bibliothèques de classes dans votre application et vous pouvez réutiliser la bibliothèque de classes dans un nombre quelconque d'applications.

L'utilisation de bibliothèques de classes Services RIA offre les avantages suivants :

  • Les parties client et serveur d'un domaine unique de données peuvent être développées et packagées en un seul composant. Ce composant peut être réutilisé dans plusieurs applications.

  • La génération de code de proxy client et le partage de code source se produisent à un seul emplacement. Cet emplacement se trouve entre les couches du composant et non dans chaque application Silverlight.

  • Plusieurs applications Silverlight dans un seul projet d'application Web peuvent faire référence uniquement aux bibliothèques de classes dont elles ont besoin. De cette façon, un client Silverlight n'a pas à consulter toute la logique métier exposée par la couche intermédiaire.

Avec les bibliothèques de classes Services RIA , vous pouvez générer une structure de solution flexible qui fournit uniquement les composants nécessaires pour une application. L'illustration suivante montre une structure de solution qui utilise plusieurs bibliothèques de classes Services RIA .

Structure de bibliothèque de classes

Important Remarque :
Si vous ajoutez un projet Bibliothèque de classes à un projet Application métier Silverlight, vous ne pouvez pas ajouter de service d'authentification au projet serveur dans la bibliothèque de classes. L'objet User dans le modèle Application métier Silverlight est inaccessible à la bibliothèque de classes.

Pour plus d'informations, consultez Procédure pas à pas : Création d'une bibliothèque de classes Services RIA.