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
Créez un projet de bibliothèque de classes avec la configuration suivante :
Cible .NET Framework 3.5.Pour plus d'informations sur le choix de la version cible du .NET Framework, consultez Comment : cibler une version du .NET Framework.
Cible la plateforme AnyCPU ou x64.Par défaut, la plateforme cible pour les projets de bibliothèque de classes est AnyCPU.Pour plus d'informations sur le choix de la plateforme cible, consultez How to: Optimize an Application for a Specific CPU Type.
[!REMARQUE]
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.
Ajoutez des références aux assemblys suivants :
Microsoft.VisualStudio.SharePoint.Commands
Microsoft.SharePoint
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.
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
Comment : exécuter une commande SharePoint
Procédure pas à pas : extension de l'Explorateur de serveurs pour afficher des WebParts