SPSite

Accès à une collection de site via l'objet SPSite

02/22/2009 3 202 lectures 5/5 (2 votes) Sébastien Sougnez

La structure interne ainsi que le design d'AreaProg ont récemment été modifiés.
Suite à cela, le format de certains articles a été perturbé. Le problème est connu et en cours de résolution. Merci de votre compréhension.

Dans ce cours, nous allons survoler l'objet SPSite. Nous disons survoler car cet objet représente une collection de site d'un point de vue programmation. Etant donné cela, vous comprendrez facilement qu'il contient beaucoup de propriétés et de méthodes. Il ne serait pas interessant d'aborder toutes ces propriétés et méthodes dans ce cours car il n'y aurait pas d'exemple concret. Nous allons donc vous présenter cet objet, expliquer son utilité et voir un petit nombre de ses propriétés. Vous découvrirez les méthodes et propriétés de cet objet dans d'autre cours qui seront, eux, plus ciblés sur un concept de SharePoint et qui, justement, utilisera telle ou telle propriété de l'objet SPSite. Comme nous venons de le dire, un objet du type SPSite représente une collection de site. Nous allons voir cela grâce à un exemple simple. Ouvrez donc Visual Studio et créez une nouvelle application Console que vous nommerez SPSiteTest. Etant donné que nous désirons accéder à l'Object Model, nous allons devoir ajouter une référence à l'API SharePoint. Pour cela, cliquez avec le bouton droit de souris sur le dossier References de votre projet et cliquez sur Add Reference. Allez ensuite chercher la référence nommée Windows SharePoint Services :
Image
Une fois que vous avez fait ça, nous allons ajouter la directive suivante à votre fichier cs :
using Microsoft.SharePoint; 
Vous êtes maintenant en mesure d'utiliser l'Object Model de SharePoint. L'objet SPSite possède deux constructeurs. Le premier est celui-ci :
SPSite(string) 
Ce constructeur attend une chaine de caractères qui devra contenir l'URL de la collection de site que vous voulez utiliser. Le deuxième constructeur est le suivant :
SPSite(Guid) 
Ce constructeur, quant à lui attend un GUID qui sera l'identifiant de la collection de site à utiliser. Notez que pour le constructeur attendant l'URL de la collection de site, celle-ci peut être de plusieurs formes. Par exemple, ma collection de site se trouve à l'URL "http://pc-de-zick/", donc si je tape l'URL telle quelle, cela fonctionnera, mais je peux également utiliser la collection de site en tapant l'URL http://pc-de-zick/Shared%20Documents/Forms/AllItems.aspx. Regardons maintenant le bout de code suivant :
using (SPSite site = new SPSite("http://pc-de-zick/"))
{
	Console.WriteLine("site.ContentDatabase.Name : " + site.ContentDatabase.Name);
	Console.WriteLine("Nombre de Feature : " + site.Features.Count);
	Console.WriteLine("ID : " + site.ID);
	Console.WriteLine("Allow anonymous ? " + site.IISAllowsAnonymous);
	Console.WriteLine("Owner : " + site.Owner.Name);
	Console.WriteLine("Port : " + site.Port);
	Console.WriteLine("Protocol : " + site.Protocol);
	Console.WriteLine("URL : " + site.Url);

	Console.Read();
}
L'exécution de ce code devrait donner quelque chose dans le style :
Image
Le résultat est très logique et le code très simple. Tout d'abord, remarquez que nous utilisons l'objet SPSite dans une clause using. Pour ceux qui ne savent pas à quoi sert using, sachez qu'un objet déclaré dans une telle clause est immédiatement détruit à la fin de cette clause. En l'occurence, nous faisons cela car un objet du type SPSite utilise beaucoup de ressources, il est donc impératif de ne pas le laisser actif plus longtemps que nécessaire, ici, nous utilisons donc la clause using pour le détruire immédiatement après son utilisation. Ici, nous utilisons le constructeur de SPSite prenant l'adresse de la collection de site à utiliser, nous faisons donc passer l'url http://pc-de-zick pour ouvrir cette collection. Ensuite, nous affichons la valeur de quelques propriétés de cet objet. La première, ContentDatabase permet de récupérer un objet du type ContentDatabase qui va contenir des informations concernant la base de données de contenu lié à cette collection de site. Ici, nous allons chercher la propriété Name de cette base de données pour en afficher le nom. L'objet site contient également une collection appelée Features. Cette collection contient les features de la collection de site et permet donc d'en récupérer les informations. Ici, nous utilisons la propriété Count pour voir combien sont associées avec la collection de site. Nous utilisons ensuite la propriété ID pour récupérer le GUID de cette collection de site. Nous aurions pu utiliser cette valeur dans le constructeur de l'objet pour ouvrir la même collection de site. La propriété IISAllowAnonymous permet de définir si la collection de site est accessible en anonyme ou non. Ensuite, nous avons la propriété Port qui va nous permettre de récupérer le port sur lequel la collection de site peut être accédée. Ici, c'est le port 80. Nous pouvons également récupérer le protocole utilisé par cette collection grâce à la propriété Protocol. En l'occurence, ce sera http:. Enfin, nous pouvons récupérer l'URL de cette collection. Si nous utilisons l'adresse d'une liste de cette collection dans le constructeur de l'objet, ce n'est pas cette adresse que renverra Url, mais bien juste l'adresse de la collection de site. Voilà, nous avons donc vu comment utiliser l'objet SPSite. Comme nous l'avons dit, il existe encore un grand nombre de propriété et de méthode non abordées ici (comme par exemple la méthode OpenWeb). Nous aborderons tous ces concepts dans les cours prochains.

Noter

Veuillez vous identifier ou vous inscrire pour donner une note à cet article.

Commentaires / Questions

Aucun commentaire.

Veuillez vous identifier ou vous inscrire pour réagir à cet article.

Avatar

Sébastien Sougnez

Envoyer un mail Site web Windows live messenger LinkedIn Twitter Facebook MVP Administrateur

25754 points