2011-05-06 4 views

Répondre

4

J'essaie de clarifier un peu.

Un fichier de code avec l'extension .shared est "copié" dans le projet client Silverlight lors de la compilation. Pour que vous puissiez gérer le code côté serveur, mais utilisez le même code côté client. Here vous pouvez trouver une définition de la fonction SharedCode dans Silverlight. Un fichier de code avec l'extension .metadata est normalement généré par l'Assistant "Nouvelle classe de service de domaine" dans Visual Studio lorsque vous cochez l'option "Générer des classes associées pour les métadonnées". Ce fichier contient des informations de métadonnées supplémentaires sur une classe, comme ValidationAttributes pour le client Silverlight. Here vous pouvez trouver des informations sur les métadonnées dans les services RIA WCF.

A fichiers de code avec les .partial signaux d'extension seulement que ce fichier contient le code partial supplémentaire (mise en oeuvre des procédés partiels, d'autres méthodes ou propriétés) pour une classe. Ceci est normalement utilisé lorsque vous étendez une classe générée automatiquement par un concepteur (comme Entity Framework).

La seule extension réellement spéciale est .shared, car ces fichiers sont particulièrement pris en charge lors de la compilation. Toutes les autres extensions ne sont que des conventions de nommage pour les fichiers, afin de signaler quel code se trouve dans un fichier. Ce que je fais actuellement, c'est que lorsque j'implémente une interface sur une classe, je définis la classe comme partielle et mets le code d'implémentation de l'interface dans un autre fichier de code avec le nom de l'interface comme extension.

Exemple:

UserListViewModel.cs -> UserListViewModel de classe partielle avec la mise en œuvre de la viewmodel

UserListViewModel.INavigationAware.cs -> UserListViewModel de classe partielle avec la mise en œuvre de l'interface INavigationAware pour la viewmodel .

+0

Merci, Jehof, pour une réponse utile. J'aime bien ta convention d'organisation de tes classes partielles par implémentation d'interface; J'ai vu une suggestion similaire [ici] (http://www.riaservicesblog.net/Blog/post/How-to-setup-your-DomainService-using-partial-classes-for-easy-maintenance.aspx) en ce qui concerne pour atténuer les effets des mises à jour d'un modèle EF. – RichC

+0

J'ai posé cette question parce que je voulais changer le texte dans le formulaire de connexion d'une application d'affaires ria. Je m'attendais à appliquer l'annotation Afficher sur un champ dans une classe du côté serveur et j'ai d'abord pensé que je devais faire le mod dans les fichiers User.cs ou User.shared.cs. Je l'ai vu fait dans les fichiers .metadata avant donc j'ai cherché l'un de ceux aussi. J'ai fini par changer le fichier Logininfo sur le client. Je comprends un peu cela comme le client est la destination finale pour les annotations de données, mais pourquoi cela n'a pas été fait sur le serveur et projeté sur le client me échappe un peu. – RichC

Questions connexes