Partager via


Comment : créer une commande SharePoint

Si vous souhaitez appliquer le modèle d'objet serveur à une extension d'outils SharePoint, vous devez créer une commande SharePoint personnalisée pour appeler l'API. Vous définissez la commande SharePoint dans un assembly capable d'appeler directement dans le modèle d'objet serveur.

Pour plus d'informations sur la finalité des commandes SharePoint, consultez Appel des modèles d'objet SharePoint.

Pour créer une commande SharePoint

  1. Créez un projet de bibliothèque de classes avec la configuration suivante :

    Notes

    Vous ne pouvez pas implémenter une commande SharePoint dans le même projet que celui définissant une extension d'outils SharePoint, car les commandes SharePoint ciblent .NET Framework 3.5 et les extensions d'outils SharePoint ciblent le .NET Framework 4. Vous devez définir toutes les commandes SharePoint utilisées par votre extension dans un projet séparé. Pour plus d'informations, consultez Déploiement d'extensions pour les outils SharePoint dans Visual Studio.

  2. Ajoutez des références aux assemblys suivants :

    • Microsoft.VisualStudio.SharePoint.Commands

    • Microsoft.SharePoint

  3. Dans une classe du projet, créez une méthode qui définit votre commande SharePoint. La méthode doit respecter les instructions suivantes :

    • Elle peut avoir un ou deux paramètres.

      Le premier paramètre doit être un objet ISharePointCommandContext. Cet objet fournit le Microsoft.SharePoint.SPSite ou Microsoft.SharePoint.SPWeb dans lequel la commande est exécutée. Il fournit également un objet ISharePointCommandLogger qui peut être utilisé pour écrire des messages dans la fenêtre Sortie ou la fenêtre Liste d'erreurs dans Visual Studio.

      Le deuxième paramètre peut être un type de votre choix, mais ce paramètre est facultatif. Vous pouvez ajouter ce paramètre à votre commande SharePoint si vous devez communiquer des données de votre extension d'outils SharePoint à la commande.

    • Une valeur de retour, facultative elle aussi, peut lui être associée.

    • Le deuxième paramètre et la valeur de retour doivent correspondre à un type susceptible d'être sérialisé par Windows Communication Foundation (WCF). Pour plus d'informations, consultez Types Supported by the Data Contract Serializer et Using the XmlSerializer Class.

    • La méthode peut avoir n'importe quelle visibilité (public, internal ou private) et être statique ou non statique.

  4. Appliquez l'SharePointCommandAttribute à la méthode. Cet attribut spécifie un identificateur unique pour la commande, lequel ne correspond pas nécessairement au nom réel de la méthode.

    Vous devez spécifier le même identificateur unique lorsque vous appelez la commande à partir de votre extension d'outils SharePoint. Pour plus d'informations, consultez Comment : exécuter une commande SharePoint.

Exemple

L'exemple de code suivant montre une commande SharePoint désignée par l'identificateur Contoso.Commands.UpgradeSolution. Cette commande utilise des API dans le modèle objet serveur à mettre à niveau vers une solution déployée.

<SharePointCommand("Contoso.Commands.UpgradeSolution")> _
Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String)
    Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath))
    If solution Is Nothing Then
        Throw New InvalidOperationException("The solution has not been deployed.")
    End If
    solution.Upgrade(fullWspPath)
End Sub
[SharePointCommand("Contoso.Commands.UpgradeSolution")]
private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath)
{
    SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)];

    if (solution == null)
    {
        throw new InvalidOperationException("The solution has not been deployed.");
    }

    solution.Upgrade(fullWspPath);
}

Outre le premier paramètre ISharePointCommandContext implicite, cette commande a également un paramètre de chaîne personnalisé qui contient le chemin d'accès complet du fichier .wsp mis à niveau vers le site SharePoint. Pour voir ce code dans le contexte d'une procédure pas à pas plus vaste, consultez Procédure pas à pas : création d'une étape de déploiement personnalisée pour des projets SharePoint.

Compilation du code

Cet exemple nécessite des références aux assemblys suivants :

  • Microsoft.VisualStudio.SharePoint.Commands

  • Microsoft.SharePoint

Déploiement de la commande

Pour déployer la commande, incluez l'assembly de commande dans le même package d'extension Visual Studio (VSIX) avec l'assembly d'extension qui utilise la commande. Vous devez également ajouter une entrée pour l'assembly de commande dans le fichier extension.vsixmanifest. Pour plus d'informations, consultez Déploiement d'extensions pour les outils SharePoint dans Visual Studio.

Voir aussi

Tâches

Procédure pas à pas : extension de l'Explorateur de serveurs pour afficher des WebParts

Concepts

Appel des modèles d'objet SharePoint

Autres ressources

Comment : exécuter une commande SharePoint