Exemple d'application d'entreprises avec Silverlight 3 et .NET RIA Services - Partie 22 - Séparer les fichiers de solution

| Brad Abrams | Philippe Vialatte (Traduction) |

Cet article fait partie d'une série de traductions d'articles de Brad Abrams sur le développement d'applications métier avec Silverlight et .NET RIA Services.

Retrouvez l'ensemble des articles de la série sur cette page : Exemple d'application métier pour Silverlight 3 et .NET RIA Services.

Commentez cet article : Commentez . ♪

- Titre : Exemple d'application d'entreprises avec Silverlight 3 et .NET RIA Services - Partie 22 - Séparer les fichiers de solution

- Auteurs : Brad Abrams, Philippe Vialatte (Traduction)

- Parution : 25 mars 2011

- Mise à jour : 25 mars 2011

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2011 VIALATTE, Philippe. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Sommaire

- I. Introduction

- II. Construire le serveur Web

- III. Construire le client

- IV. Conclusion

- V. Remerciements

I - Introduction

Je continue à mettre à jour ma présentation du Mix 09 sur Silverlight 3 + RIA Services avec encore plus des trucs rigolos. Cette fois, je relève un défi de M. Wildermuth. Shawn a récemment soulevé une question très intéressante avec le développement RIA Service. Il travaille avec beaucoup de grandes entreprises qui ont besoin d'avoir des fichiers solution distincts pour leurs projets clients et leurs projets serveur. Généralement, nous recommandons les projets de type RIA Services Class Libraries pour ce genre de chose. Mais il y a certains cas où encore plus de souplesse est nécessaire. Pour relever ce défi, j'ai reconstruit ma (désormais célèbre ?) application SuperEmployee en deux solutions : l'une pour le client et une pour le serveur.
Vous pouvez voir la série complète ici.  Cette démo nécessite les éléments suivants (tout est 100% gratuit) :

- VS2008 SP1 ;

- Silverlight 3 RTM ;

- .NET RIA Services.

Téléchargez aussi les fichiers de la démo complète.
La première chose à comprendre au sujet de ce scénario est que l'ensemble des services de génération de code de RIA Services sont effectivement faits par des tâches MSBuild, qui peuvent être utilisées en dehors de Visual Studio. C'est important pour des scénarios de compilation automatisée ou pour des structures de projet plus complexes (comme nous allons le voir ici). Il y a en réalité deux étapes ici. Nous commençons par construire la solution Web, puis nous construisons une solution distincte pour le client. Merci à notre responsable du développement, Jason Allor pour l'élaboration de ces étapes.

II - Construire le serveur Web

- Ouvrez Visual Studio et créez un nouveau projet d'application Web ASP.Net. Il en résulte une nouvelle solution contenant seulement ce projet.

- Ajouter des références aux assemblages RIA, y compris System.Web.Ria, et System.ComponentModel.DataAnnotations

- Ajoutez le div Silverlight à la page default.aspx

<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/MyApp.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;v=3.0.40624.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>
</div>

- Connectez-vous à votre source de données comme je l'ai montré dans les articles précédents.

- Créez une classe DomainService qui expose une ou plusieurs méthodes d'interrogation, d'insertion et de mise à jour. Assurez-vous que cette classe contient l'attribut EnableClientAccess, à nouveau, comme je l'ai montré dans les articles passés.

- Générez la solution et veillez à ce qu'elle se compile sans erreurs.

- Fermer Visual Studio.

III - Construire le client

- Ouvrez une nouvelle instance de Visual Studio et créez un nouveau projet d'application Silverlight. Lorsque vous y êtes invité, décochez la case à cocher « Héberger l'application Silverlight dans un nouveau site Web ». Cela supprime également la case à cocher « Activer. NET RIA Services ».

- Ajoutez des références aux assemblages RIA et de données, y compris   System.Windows.Ria, System.Windows.Ria.Controls, System.Windows.Data, System.Runtime.Serialization, et System.ComponentModel.DataAnnotations.

- Enregistrez la solution.

- Faites un clic droit sur le nœud de projet dans l'Explorateur de solutions et sélectionnez Décharger le projet.

- Faites un clic droit sur le nœud de projet dans l'Explorateur de solutions et sélectionnez Modifier .csproj.

- Trouver le nœud <LinkedServerProject> dans le csproj. Il sera initialement vide. Remplissez le chemin vers le fichier .csproj du projet de serveur Web que vous avez créé ci-dessus.

<LinkedServerProject>..\..\MyApp.Web\MyApp.Web.csproj</LinkedServerProject>

- Enregistrez et fermez le fichier .csproj.

- Faites un clic droit sur le nœud de projet dans l'Explorateur de solutions et sélectionnez Recharger le projet.

- Générez le projet.

- Notez que le dossier Generated Code apparaît, et que RIA Services a construit pour vous le modèle de votre entité côté client. Vous pouvez désormais consommer vos données sur le client en utilisant les patterns standards de RIA Service.

- Maintenant nous avons besoin de copier le XAP résultant dans l'application web afin que nous puissions démarrer l'application correctement, c'est assez facile depuis les propriétés du projet.

Ouvrez la solution web dans une instance séparée de VS (ce n'est pas un problème d'avoir deux solutions ouvertes en même temps). Après un peu de travail dans le client, nous nous retrouvons avec ceci :

Notez que vous pouvez apporter des modifications au client et le reconstruire, puis appuyez simplement sur F5 dans le navigateur et le nouveau XAP se charge.
Donc, en modifiant la propriété LinkedServerProject du client à la main, nous pouvons avoir le client RIA Services et le serveur dans différentes solutions, et/ou les construire séparément dans un système de compilation basé sur des lignes de commande. Cela vous donne beaucoup de souplesse dans la façon dont vous gérez de vastes et complexes systèmes de compilation.
En espérant que ça vous aide !

IV - Conclusion

Cet article conclut la partie sur la gestion de fichiers de solutions séparés. La vingt-troisième partie de cette série d'articles sera consacrée à l'utilisation de RIA services avec Azure.

V - Remerciements

Je tiens ici à remercier Brad Abrams pour son aimable autorisation de traduire l'article.
Je remercie également ClaudeLELOUP pour sa relecture et ses propositions.