Partager via


Procédure : utiliser SPMetal

Dernière modification : mercredi 2 février 2011

S’applique à : SharePoint Foundation 2010

Cet article explique comment utiliser l’outil en ligne de commande SPMetal pour générer des déclarations de classes d’entités pour vos solutions Microsoft SharePoint Foundation.

Pour configurer votre projet de développement afin d’utiliser SPMetal

  1. Ajoutez le chemin d’accès de SPMetal.exe à la fin de la variable d’environnement Windows %PATH% sur votre ordinateur de développement. Il s’agit généralement de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN.

    1. Dans le menu Démarrer de votre ordinateur Windows Server, cliquez avec le bouton droit sur Ordinateur, puis sur Propriétés.

    2. Dans la boîte de dialogue Système, cliquez sur Paramètres système avancés.

    3. Dans la boîte de dialogue Propriétés système, cliquez sur l’onglet Avancé, puis sur Variables d’environnement.

    4. Dans la liste Variables système, mettez en surbrillance Chemin d’accès, puis cliquez sur Modifier.

    5. Dans la boîte de dialogue Modifier la variable système, ajoutez un point-virgule à la fin de la valeur de la variable, puis ajoutez le chemin d’accès du dossier qui contient SPMetal.exe. Cliquez sur OK trois fois.

    Notes

    Si Microsoft Visual Studio est ouvert lorsque vous effectuez cette étape, vous devez le fermer et le rouvrir pour qu’il reconnaisse la nouvelle variable %PATH%.

  2. Sur votre ordinateur de développement, créez un site Web SharePoint Foundation qui fera office de banc d’essai pour le développement de votre code LINQ to SharePoint. Dans la mesure du possible, il doit, au fil du développement, posséder les mêmes listes, colonnes et champs de recherche que le type de site final que vous envisagez d’inclure dans votre solution. L’outil SPMetal lira ces informations. Toutefois, vous pouvez réexécuter l’outil, ce qui permet de modifier la conception à mesure que le projet avance.

  3. Ouvrez votre projet Visual Studio et ajoutez-y un fichier texte portant le nom Prebuild.bat.

  4. Ouvrez Prebuild.bat si ce n’est déjà fait, puis ajoutez les lignes suivantes.

    Echo Off
    SET SPLANGEXT=cs
    
    Echo Backing up previous version of generated code ... 
    IF NOT EXIST .\PreviousVersionGeneratedCode MkDir .\PreviousVersionGeneratedCode
    IF EXIST SiteName.%SPLANGEXT% xcopy /Y/V SiteName.%SPLANGEXT% .\PreviousVersionGeneratedCode
    
    Echo Generating code ...
    SPMetal /web:http://MyServer/MySite /code:SiteName.%SPLANGEXT%
    

    Apportez les modifications suivantes au code, selon vos besoins :

    • Remplacez « cs » par « vb » dans la deuxième ligne, si vous utilisez Microsoft Visual Basic.

    • Remplacez « MyServer/MySite » par le chemin d’accès du site Web sur votre ordinateur de développement par rapport auquel vous allez exécuter le code LINQ to SharePoint.

    • Remplacez les trois occurrences de « SiteName » par le nom du site Web. Outre le fait d’être un nom de fichier, cette chaîne fera partie d’un nom de classe qui représente toutes les listes et données sur le site Web. Utilisez une chaîne qui laisse entendre que la classe représente la totalité du site Web, par exemple la chaîne « MySite » qui apparaît à la fin de l’URL ou, éventuellement, la valeur de l’espace réservé de contenu PlaceHolderPageTitle sur la page d’accueil.

    Ce fichier de commandes enregistre la version antérieure du code généré, afin que vous puissiez la comparer à la nouvelle version dans le cadre d’une opération de débogage.

  5. Enregistrez le fichier, mais pas en cliquant sur le bouton Enregistrer ou Enregistrer tous les fichiers dans la barre d’outils ou en sélectionnant Enregistrer dans le menu Fichier. Le codage par défaut des fichiers texte dans Visual Studio n’est pas compatible avec les fichiers de commandes système. À la place, dans le menu Fichier, sélectionnez Enregistrer Prebuild.bat sous. Dans la boîte de dialogue Enregistrer le fichier sous, cliquez sur la flèche vers le bas située sur le bouton Enregistrer. Sélectionnez Enregistrer avec encodage. Dans la boîte de dialogue Options d’enregistrement avancées, sélectionnez Unicode (UTF-8 sans signature) - Page de codes 65001 dans la liste déroulante Codage, puis cliquez sur OK. Veillez à sélectionner la version « sans signature » d’UTF-8.

    ConseilConseil

    Si vous enregistrez le fichier en employant par inadvertance une méthode inappropriée, rouvrez-le, apportez une légère modification, telle que l’ajout d’un espace, et réenregistrez-le en suivant la procédure adéquate. Cette modification est nécessaire pour que le fichier soit effectivement réenregistré.

  6. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, puis sélectionnez Propriétés. Ouvrez l’onglet Événements de build.

  7. Dans la zone Ligne de commande de l’événement pré-build (et non dans la zone Ligne de commande de l’événement post-build), entrez les deux lignes suivantes.

    cd $(ProjectDir)
    Prebuild.bat
    

    Cliquez sur Enregistrer tout.

  8. Une fois que vous avez généré le projet pour la première fois, un fichier SiteName.cs (ou SiteName.vb) apparaît dans le répertoire du projet dans Windows, mais pas dans l’Explorateur de solutions. Ajoutez-le au projet en tant qu’élément existant.

Chaque fois que vous régénérez votre projet, SPMetal régénère les déclarations de classes d’entités et leurs propriétés. Dans la mesure où le fichier généré est systématiquement écrasé, vous ne devez y apporter aucune modification. Toutefois, les classes générées par SPMetal étant marquées « partial », vous pouvez y ajouter d’autres membres dans un fichier de code distinct créé manuellement qui n’est pas écrasé par SPMetal.

Configuration de SPMetal

La procédure précédente utilise uniquement les paramètres SPMetal minimaux nécessaires à la génération d’un fichier de code et suppose que vous souhaitez que SPMetal utilise ses paramètres par défaut pour déterminer les listes et les colonnes qu’il doit modéliser dans le code généré. La procédure suivante porte sur les différents modes de fonctionnement de SPMetal.

Pour ajuster les paramètres de SPMetal et les paramètres par défaut

  1. Pour spécifier un espace de noms pour les classes générées, indiquer si les objets créés à partir de celles-ci sont sérialisables ou indiquer que l’URL dans le commutateur /web est un ordinateur distant (c’est-à-dire, un ordinateur différent de l’ordinateur de développement), ajoutez les options /namespace, /serialization ou /useremoteapi à la ligne de commande SPMetal dans le fichier prebuild.bat. Pour plus d’informations sur ces options, voir SPMetal.

  2. Pour exécuter SPMetal dans un contexte utilisateur différent du vôtre, ajoutez les options /user et /password à la ligne de commande SPMetal dans votre fichier prebuild.bat. Pour plus d’informations sur ces options, voir SPMetal.

  3. Pour utiliser une extension de fichier autre que « cs » ou « vb » pour le fichier de code généré, ajoutez une option /language à la ligne de commande SPMetal dans votre fichier prebuild.bat. Pour plus d’informations sur cette option, voir SPMetal.

  4. Inspectez le fichier généré après la première exécution de SPMetal, puis de nouveau après avoir apporté les dernières modifications aux listes, types de contenu et champs (colonnes) du site Web. Dans toutes les circonstances suivantes, le comportement par défaut de SPMetal peut créer du code qui ne répond pas à vos besoins ou qui est difficile à lire. Dans ces cas, vous pouvez créer un fichier XML de paramètres SPMetal et ajouter une option /parameters à la ligne de commande SPMetal dans votre fichier prebuild.bat. Pour plus d’informations sur le comportement par défaut de XPMetal, sur le fichier XML de paramètres ou sur l’option /parameters, voir, respectivement, Règles de génération de code par défaut SPMetal, Remplacement des valeurs SPMetal par défaut par un fichier XML de paramètres et SPMetal.

    • Une ou plusieurs des propriétés qui représentent des listes ont un nom inapproprié.

    • Vous devez inclure ou exclure un ensemble différent de listes, de types de contenu et de colonnes dans le jeu par défaut modélisé par SPMetal.

Voir aussi

Référence

SPMetal

Concepts

Remplacement des valeurs SPMetal par défaut par un fichier XML de paramètres

Règles de génération de code par défaut SPMetal