[SharePoint 2010] Des “Tools” bien pratiques

Lorsque vous allez développer sur SharePoint, vous serez très vite confronté à devoir générer des ID pour vos Features et surtout vos Fields ou encore récupérer le nom de votre assembly.

A force de perde du temps la dessus, je suis tombé sur plusieurs outils bien pratique et qui je pense vous ferons gagner pas mal de temps ! (merci msdn)

Ces tools peuvent également servir pour d’autre choses, et fonctionnent aussi bien sur SharePoint 2010 que 2007 et à vous de trouver une autre utilisation.

Ils marchent bien sur sous Visual Studio 2008 & 2010.

Génération de Guid.
Récupérer la clé publique de l’assembly.
Récupérer le nom complet de l’assembly (version et key).

1 – Génération de Guid :

La création de champs (Field) pour une liste nécessite sur SharePoint un Guid unique:

<Field ID="11678534-6898-460e-868b-34700cf9d5a2"
       Name="Identity"
       StaticName="Identity"
       DisplayName="Identité"
       Type="Text"
       Required="true"
       Hidden="false" />
</Field>
<Field ID="38490ff6-8ed3-4681-86eb-467cf51aa33b"
       Name="Sex"
       StaticName="Sex"
       DisplayName="Sexe"
       Type="Choice">
  <CHOICES>
    <CHOICE>Homme</CHOICE>
    <CHOICE>Femme</CHOICE>
  </CHOICES>
  <Default>Femme</Default>
</Field>

<FieldRef ID="{11678534-6898-460e-868b-34700cf9d5a2}" Name="Identity" />
<FieldRef ID="{38490ff6-8ed3-4681-86eb-467cf51aa33b}" Name="Sex" />

Pour 2 champs, c’est faisable de les modifier à la main, mais une liste peut en contenir beaucoup, je vous propose donc cette solution :

http://newguid.com/ 

Un générateur de Guid qui vous permettra en une touche (F5) de générer vos Guid directement. Il ne vous reste plus qu’à faire le bon vieux copier-coller !

2 – Get Assembly Public Key : (clé publique de l’assembly)

Utile également pour toute la gestion des listes, en effet, la gestion des champs personnalisés nécessite d’avoir la fameuse clé publique de l’assembly.

<?xml version="1.0" encoding="utf-8" ?>
<FieldTypes>
  <FieldType>
    <Field Name="TypeName">Upload File</Field>
    <Field Name="ParentType">Text</Field>
    <Field Name="TypeDisplayName">Upload</Field>
    <Field Name="TypeShortDescription">Upload a file</Field>
    <Field Name="UserCreatable">TRUE</Field>
    <Field Name="ShowOnListCreate">TRUE</Field>
    <Field Name="ShowOnSurveyCreate">TRUE</Field>
    <Field Name="ShowOnDocumentLibraryCreate">TRUE</Field>
    <Field Name="ShowOnColumnTemplateCreate">TRUE</Field>
    <Field Name="FieldTypeClass">ListDefinitionProject1.UploadField, ListDefinitionProject1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e9d555780b2ce561</Field>

  </FieldType>
</FieldTypes>

Pour la récupérer, il y a plusieurs solutions comme reflector, qui, à partir de la dll vous donnera la Key:

image

Et d’ailleurs le nom de l’assembly complètement, logiciel bien pratique 🙂

Mais vous pouvez également utiliser votre Visual Studio préféré, pour cela la procédure est simple :

Dans VS :

– Menu Tools => External Tools

 image

– Ajouter, donnez un nom, et allez chercher le fichier sn.exe dans c:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\x64\sn.exe. (la version peut changer en fonction de votre Framework).

image

Et voila vous avez un nouveau “Tools” dans votre onglet !

image 

Le résultat en direct :

image

Voilà une solution rapide pour retrouver votre clé, mais il y a encore mieux…

3 – Get the full Name of an Assembly:

Mieux mais nécessite un peu plus de temps ( au moins 5 min !) que le précédent, mais l’effet est garanti.

En effet, il faut commencer par faire une application console afin de récupérer le nom complet de l’assembly (ce que vous donne reflector) et qui vous servira également pour appeler des dll dans plusieurs cas.

Il faut donc ouvrir un nouveau projet :/ => Application Console (je ne vous fait pas l’affront de vous montrer comment on fait ça)

Voici le code :

namespace GetAssemblyName
{
    class Program
    {
        static void PrintUsage()
        {
            Console.WriteLine("Usage: GetAssemblyName.exe <path and filename>\n");
            Console.WriteLine(@"Example: GetAssemblyName.exe C:\MyAssembly.dll");
            Console.Read();
        }

        static void Main(string[] args)
        {
            if (args.Length < 1 || args[0] == "?")
            {
                PrintUsage();
                return;
            }
            
            string filename = args[0];

            try
            {
                AssemblyName an = AssemblyName.GetAssemblyName(filename);
                Console.WriteLine("Fully specified assembly name:\n");
                Console.WriteLine(an.ToString());
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine("Cannot locate the assembly. Check the path and try again.");
            }

            Console.Read();
        }
    }
}

Compilez / Testez. Et vous pouvez fermer le projet.

Pour les flémards, code source.

Retournez dans Tools => External tools.

Par le même principe, ajoutez votre application console :

image image

Maintenant vous allez pouvoir tous récupérer :

image

Elle est pas belle la vie ?

2 Commentaires

  1. Dorian LAMANDE · · Réponse

    Sympas ces tools !

    Pour le GUID, tu peux aussi utiliser le Tool de Visual Studio : Tools > Create GUID.

    A+

    1. Oui c’est vrai ! ça peut servir également.

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :