Comment programmer SharePoint
La programmation de SharePoint implique l'utilisation de ses API, outils et cadres d'application, principalement destinés aux développeurs .NET. Voici les principaux aspects et approches pour programmer SharePoint :
- Modèles de développement SharePoint :
- Client-Side Object Model (CSOM) : Permet d'interagir avec SharePoint en utilisant des langages de programmation comme C#, VB.NET et JavaScript. Il est couramment utilisé pour le développement à distance et est disponible pour les versions sur site et SharePoint Online.
- API REST : Fournit une interface RESTful pour interagir avec les données de SharePoint. C'est une méthode indépendante du langage pour interagir avec SharePoint, permettant d'utiliser n'importe quel langage de programmation capable de faire des requêtes HTTP.
- Server-Side Object Model (SSOM) : Utilisé pour le développement de SharePoint sur site. Cela nécessite l'exécution de votre code sur le serveur SharePoint, généralement en C#.
- Outils de développement :
- Visual Studio : L'IDE principal pour le développement SharePoint, offrant des gabarits et des outils pour créer des solutions SharePoint, y compris des Web Parts, des applications et des fonctionnalités.
- SharePoint Framework (SPFx) : Un gabarit de développement moderne pour créer des solutions SharePoint en utilisant JavaScript, HTML et CSS côté client. SPFx prend en charge les techniques de développement Web modernes et peut être utilisé pour SharePoint sur site (2016 et versions ultérieures) ainsi que pour SharePoint Online.
- Tâches de programmation SharePoint courantes :
- Web Parts et Extensions : Les composantes personnalisés qui peuvent être ajoutés aux pages SharePoint. Ils sont développés en utilisant SPFx ou SSOM.
- Add-ins SharePoint : Petites applications autonomes étendant la fonctionnalité de SharePoint.
- Flux de travail : Automatisation des processus dans SharePoint en utilisant Power Automate (Microsoft Flow), SharePoint Designer, ou des flux de travails personnalisés avec Visual Studio.
- Actions personnalisées et Event Receivers : Utilisés pour gérer des événements spécifiques ou étendre la fonctionnalité de SharePoint.
- Flux de développement typique :
- Configurer votre environnement : Installer Visual Studio avec les outils de développement SharePoint ou configurer Node.js et Yeoman pour le développement SPFx.
- Créer un projet SharePoint : Utiliser Visual Studio ou le générateur Yeoman SPFx pour créer un nouveau projet.
- Écrire le code : Utiliser CSOM, API REST, ou SSOM selon vos besoins.
- Déployer et tester : Déployer votre solution sur un serveur SharePoint ou SharePoint Online et tester sa fonctionnalité.
- Ressources pour apprendre :
- Documentation Microsoft : Une documentation complète est disponible pour le développement SharePoint, y compris des références API et des tutoriels.
- Ressources communautaires : Blogs, forums, et chaînes YouTube fournissent des tutoriels et des exemples pour des scénarios courants de développement SharePoint.
Le développement SharePoint est principalement axé sur les technologies .NET, et il est essentiel de maîtriser C#, JavaScript, et le développement Web moderne.
C#
Voici comment C# peut être utilisé avec SharePoint :
- Développement de Web Parts : Les Web Parts sont des composantes modulaires pouvant être ajoutés à des pages SharePoint. Vous pouvez créer des Web Parts personnalisés en utilisant C#. Ils permettent d'intégrer des fonctionnalités complexes comme des formulaires, des tableaux de bord, ou des intégrations avec d'autres systèmes.
- Solutions SharePoint (Farm Solutions et Sandbox Solutions) :
- Farm Solutions : Ce sont des solutions s'exécutant sur toute la ferme SharePoint. Elles sont déployées à un niveau central et peuvent inclure des fonctionnalités développées en C#.
- Sandbox Solutions : Ce sont des solutions limitées en termes de permissions et d'impact, mais permettant de déployer du code C# dans un environnement plus contrôlé.
- Event Receivers et Features :
- Event Receivers : Ils permettent d'exécuter du code C# en réponse à des événements spécifiques dans SharePoint, comme la création ou la modification d'un élément de liste.
- Features : Les fournitures permettent de regrouper et de déployer des composantes personnalisés (comme des Web Parts, des flux de travail, des pages,...) dans SharePoint.
- Développement d'applications SharePoint Add-ins : Les SharePoint Add-ins (anciennement appelés Apps) sont des applications légères s'intégrant à SharePoint. Vous pouvez utiliser C# pour développer des backends d'Add-ins, surtout lorsqu'ils interagissent avec les API SharePoint pour manipuler des données.
- CSOM (Client-Side Object Model) : CSOM est une API client fournie par Microsoft permettant d'interagir avec SharePoint depuis une application C#. Elle est particulièrement utile pour développer des applications qui accèdent à SharePoint sans être déployées sur le serveur SharePoint.
- REST API et Services Web : Vous pouvez utiliser C# pour consommer les API REST de SharePoint ou interagir avec les services web SOAP, afin de lire, créer, mettre à jour ou supprimer des données dans SharePoint.
- SharePoint Framework (SPFx) : Bien que SPFx soit principalement utilisé pour le développement d'applications côté client avec JavaScript/TypeScript, vous pouvez utiliser C# pour écrire des services Web ou des API backend étant consommés par des applications SPFx.
- PowerShell avec C# pour automatiser les tâches : PowerShell est souvent utilisé pour l'automatisation des tâches administratives dans SharePoint, et vous pouvez appeler des scripts C# depuis PowerShell pour exécuter des tâches plus complexes.
REST
Pour programmer SharePoint en utilisant des appels REST avec C#, vous pouvez utiliser la classe HttpClient ou d'autres classes similaires du .NET Framework pour envoyer des requêtes HTTP à l'API REST de SharePoint. Voici un guide étape par étape pour vous aider à démarrer :
- Configurer l'environnement : Assurez-vous que vous avez installé Visual Studio et le .NET Framework. Ayez accès à un site SharePoint avec les permissions appropriées pour interagir avec ses API.
- Authentification : Si vous accédez à SharePoint Online, vous devrez probablement utiliser OAuth ou l'authentification moderne. Pour les environnements sur site, l'authentification NTLM ou Kerberos peut être utilisée.
- Utilisation de HttpClient pour effectuer des appels REST : Voici un exemple de code en C# pour interagir avec l'API REST de SharePoint :
- using System;
- using System.Net.Http;
- using System.Net.Http.Headers;
- using System.Threading.Tasks;
- namespace SharePointRestExample
- {
- class Program
- {
- static async Task Main(string[] args)
- {
- string siteUrl = "https://votre-site-sharepoint.com/sites/votre-site";
- string listName = "NomDeLaListe";
- string restApiUrl = $"{siteUrl}/_api/web/lists/getbytitle('{listName}')/items";
- using (HttpClient client = new HttpClient())
- {
- // Configurer l'authentification (exemple pour SharePoint Online avec un cookie FedAuth)
- client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");
- client.DefaultRequestHeaders.Add("X-RequestDigest", await GetFormDigestValue(siteUrl));
- // Effectuer la requête GET pour récupérer les éléments de la liste
- HttpResponseMessage response = await client.GetAsync(restApiUrl);
- if (response.IsSuccessStatusCode)
- {
- string jsonResponse = await response.Content.ReadAsStringAsync();
- Console.WriteLine(jsonResponse);
- }
- else
- {
- Console.WriteLine($"Erreur : {response.StatusCode}");
- }
- }
- }
- static async Task<string> GetFormDigestValue(string siteUrl)
- {
- using (HttpClient client = new HttpClient())
- {
- string formDigestUrl = $"{siteUrl}/_api/contextinfo";
- client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
- HttpResponseMessage response = await client.PostAsync(formDigestUrl, null);
- if (response.IsSuccessStatusCode)
- {
- string jsonResponse = await response.Content.ReadAsStringAsync();
- dynamic jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonResponse);
- return jsonObject.d.GetContextWebInformation.FormDigestValue;
- }
- throw new Exception("Impossible de récupérer le Form Digest.");
- }
- }
- }
- }
Explication du Code :
- HttpClient : Est utilisé pour envoyer des requêtes HTTP. Vous configurez l'en-tête de la requête pour accepter du JSON et pour ajouter le FormDigestValue requis pour les requêtes POST.
- GetFormDigestValue : Cette méthode envoie une requête à l'API /contextinfo de SharePoint pour obtenir le FormDigestValue, un jeton utilisé pour valider les requêtes POST et PUT.
- GetAsync : Effectue une requête GET à l'API REST de SharePoint pour récupérer les éléments d'une liste.
- Authentification : Pour SharePoint Online, l'authentification OAuth avec des jetons d'accès est recommandée. Pour les environnements sur site, vous pouvez utiliser l'authentification NTLM intégrée de Windows :
- client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
- Exemples de Requêtes REST :
- GET : Récupérer les éléments d'une liste :
- HttpResponseMessage response = await client.GetAsync($"{siteUrl}/_api/web/lists/getbytitle('NomDeLaListe')/items");
- POST : Ajouter un élément à une liste :
- var postData = new StringContent("{ '__metadata': { 'type': 'SP.Data.NomDeLaListeListItem' }, 'Title': 'Nouvel Élément' }");
- postData.Headers.ContentType = new MediaTypeHeaderValue("application/json");
- HttpResponseMessage response = await client.PostAsync($"{siteUrl}/_api/web/lists/getbytitle('NomDeLaListe')/items", postData);
- DELETE : Supprimer un élément d'une liste :
- HttpResponseMessage response = await client.DeleteAsync($"{siteUrl}/_api/web/lists/getbytitle('NomDeLaListe')/items(ID)");
- Erreurs et déboguage :
- Assurez-vous que les URL et les entêtes sont corrects.
- Utilisez Fiddler ou un autre proxy HTTP pour inspecter les requêtes et les réponses en cas de problème.
En suivant ces étapes, vous pourrez programmer des appels REST vers SharePoint en utilisant C# pour interagir avec vos sites, listes, bibliothèques, et plus encore.
ColdFusion
Il est possible d'interagir avec SharePoint en utilisant ColdFusion. ColdFusion peut se connecter à SharePoint via ses API REST, ses services web SOAP, ou même directement via des requêtes HTTP. Cela vous permet d'effectuer des opérations telles que la création, la lecture, la mise à jour et la suppression d'éléments SharePoint.
Pour travailler avec SharePoint dans ColdFusion, vous pouvez :
- Utiliser l'API REST de SharePoint : ColdFusion peut envoyer des requêtes HTTP aux points de terminaison REST de SharePoint en utilisant des balises comme <cfhttp> pour interagir avec les listes, les documents, et autres ressources SharePoint.
- Services Web SOAP : SharePoint expose également des fonctionnalités via SOAP, que ColdFusion peut consommer en utilisant les balises <cfinvoke> ou <cfobject>.
- Gérer l'authentification : SharePoint Online nécessite généralement une authentification OAuth ou basée sur des jetons, que ColdFusion peut gérer à l'aide de bibliothèques supplémentaires ou en construisant les entêtes HTTP appropriés.
Bien que ColdFusion n'ait pas d'intégration native avec SharePoint comme .NET, ces méthodes offrent une façon flexible de travailler avec les données SharePoint depuis une application ColdFusion.
Delphi
Programmer SharePoint en Delphi nécessite l'utilisation des services web de SharePoint, de l'API REST ou des objets COM. Voici les méthodes de base pour programmer en Delphi :
- Utilisation de l'API REST de SharePoint : SharePoint offre une API RESTful pouvant être consommée à l'aide de requêtes HTTP. En Delphi, vous pouvez utiliser des composantes comme THTTPClient pour envoyer des requêtes GET, POST, PUT ou DELETE et interagir avec les données de SharePoint.
- Utilisation des objets COM : Si vous travaillez avec une version sur site de SharePoint et que vous avez besoin d'interagir avec ses bibliothèques, vous pouvez utiliser l'automatisation COM. Delphi prend en charge COM (voir l'unité ComObj), et vous pouvez ainsi créer ou manipuler des objets SharePoint.
- Utilisation des services web SOAP : Les anciennes versions de SharePoint exposent également des services web basés sur SOAP. Vous pouvez consommer ces services dans Delphi en utilisant la composante THTTPRIO.
- Authentification : Lorsque vous travaillez avec SharePoint Online, l'authentification par OAuth ou NTLM peut être nécessaire. Pour cela, vous devrez peut-être gérer les entêtes d'authentification ou utiliser des bibliothèques tierces simplifiant ce processus en Delphi.
- Bibliothèques tierces : Il existe des bibliothèques tierces ou des composantes Delphi pouvant faciliter l'intégration avec SharePoint. Vous pouvez explorer des outils ou des bibliothèques fournissant des abstractions de haut niveau pour travailler avec les données SharePoint.
Exemple : Utilisation de THTTPClient pour envoyer une requête GET afin de récupérer des éléments d'une liste SharePoint :
Exemple : Utilisation de CreateComObject pour automatiser des tâches SharePoint :
Programmer SharePoint en Delphi implique l'utilisation combinée d'appels HTTP/API REST, d'objets COM ou de services SOAP, en fonction de la version de SharePoint et de vos besoins. Pensez à utiliser des bibliothèques ou des composantes facilitant les requêtes HTTP et la gestion des mécanismes d'authentification spécifiques à SharePoint.
Free Pascal
Si vous devez intégrer SharePoint à l'aide de Free Pascal, une approche possible consiste à utiliser les interfaces COM (Component Object Model) fournies par SharePoint. Free Pascal peut interagir avec les objets COM via l'unité ComObj, bien que cette méthode soit lourde et limitée par rapport au développement .NET direct.
Pour une approche plus pratique, envisagez les alternatives suivantes :
- Utiliser les API REST : SharePoint propose une API REST complète pouvant être utilisée par n'importe quel langage capable d'effectuer des requêtes HTTP, y compris Free Pascal. Vous pouvez utiliser l'unité fphttpclient pour envoyer des requêtes HTTP aux points de terminaison SharePoint.
- Créer une enveloppe .NET : Écrivez un petit assemblage .NET en C# ou VB.NET interagissant avec SharePoint et expose une interface COM ou une interface de ligne de commande simple avec laquelle Free Pascal peut interagir.
Bien que ces méthodes soient possibles, le développement SharePoint est fortement optimisé pour .NET, donc l'utilisation directe de C# ou VB.NET est généralement le chemin recommandé.