Publié lundi 23 août 2010 08:25 par Audrey

[RIA Services] Utilisation des classes Shared pour les metadatas


Avec WCF RIA Services et les DomainServices, le fichier contenant les metadatas est généré à partir des entités choisies dans l'ADO.NET Entity Data Model. Mais si l'on souhaite y ajouter une propriété "FullAddress", par exemple, on se retrouve confronté à l'erreur suivante :

"The associated metadata type for type 'SharedInfos.Web.Customers' contains the following unknown properties or fields: FullAddress. Please make sure that the names of these members match the names of the properties on the main type."

Pour compléter ces metadatas, il existe les classes Shared. Ce fichier avec l'extension .shared.cs (ou .shared.vb) permet de déclarer la classe partielle dans laquelle on souhaite ajouter les propriétés et/ ou les méthodes. Attention le nom du namespace doit bien être celui du projet Web.

namespace SharedInfos.Web
{
  public partial class Customers
  {
     public string FullAddress
     {
       get
       {
          return Address + " " + PostalCode + " " + City;
       }
     }
  }
}


Lors de la compilation, le fichier sera répliqué à l'identique du côté client, ce qui permet de pouvoir accéder à la fois du côté serveur et du côté client aux nouvelles fonctionnalités de la classe Customers.



Et maintenant la propriété "FullAddress" de la classe Customers est accessible :



Ces fichiers sont aussi intéressant pour déclarer les méthodes qui vont permettre d'utiliser des CustomValidations dans nos metadatas par exemple (à suivre dans un prochain article Wink ).
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

# re: [RIA Services] Utilisation des classes Shared pour les metadatas @ lundi 23 août 2010 22:55

Très bien mais je dirai que ces fichiers .shared sont complètement inutiles en Silverlight 4.

Je préfère mettre le fichier Customers.cs côté serveur, puis ajouter ce même fichier côté client en faisant un 'Ajouter comme lien' / 'Add as link'. Je ne vois pas l'intérêt de "cacher le code" côté client.

kakone

# re: [RIA Services] Utilisation des classes Shared pour les metadatas @ mardi 24 août 2010 07:22

Effectivement c'est aussi une manière de faire. L'avantage du .shared c'est qu'on garde la logique de génération / réplication du code côté Client à la compilation.

Audrey

# re: [RIA Services] Utilisation des classes Shared pour les metadatas @ mercredi 25 août 2010 14:59

Coucou, la feature est sympa ! Par contre je trouve que le mot Shared est mal choisi dans la mesure où il veut dire "Static" en VB, ça peut entraîner de la confusion...

vLabz


Les 10 derniers blogs postés

- Votez pour le TOP 10 des influenceurs SharePoint francophones ! par Le blog de Patrick [MVP SharePoint] le il y a 1 heure et 1 minutes

- [Conf’SharePoint] Dernier rappel ! :-) par Le blog de Patrick [MVP SharePoint] le il y a 4 heures et 51 minutes

- [ #SharePoint 2013 ] les modèles de sites standards… par Le blog de Patrick [MVP SharePoint] le il y a 4 heures et 57 minutes

- 10 erreurs de compréhension concernant SharePoint… par Le blog de Patrick [MVP SharePoint] le il y a 5 heures et 33 minutes

- Conf’SharePoint : 10 bonnes raisons pour ne pas la rater par Le petit blog de Pierre / Pierre's little blog le 05-14-2013, 02:24

- [Event] Soirée de lancement Agile .NET France à Lyon par Blog Agile/ALM de Vincent THAVONEKHAM le 05-13-2013, 01:29

- .NET / Debug : inspection de la mémoire d'applications .NET (dump ou processus live) : première livraison d'une librairie .NET par Microsoft par CoqBlog le 05-11-2013, 22:21

- SharePoint : Incompatibilité avec Internet Explorer 10 (IE10) par Blog Technique de Romelard Fabrice le 05-08-2013, 16:29

- AutoSPInstaller pour SharePoint 2013 maintenant disponible en “RTM” par Julien Chable le 05-06-2013, 23:30

- [TFS2010] A la recherche du Shelveset perdu par Blog de Jérémy Jeanson le 05-03-2013, 21:46