mercredi 10 septembre 2008

[Sharepoint] Créer un Delegate Control

Ayant eu le besoin de faire un delegate control facilement déployable, j'ai voulu le créer avec VSeWSS.

Mais, il n'y a pas la possibilité d'ajouter un élément delegate control dans le projet.

Je vais donc présenter ici, ce que j'ai fait pour automatiser mon développement, le déploiement sur ma machine et la génération de la WSP. Cette solution me permet aussi d'avoir une prévisualisation de mon UserControl dans VS2008 et surtout, elle me permet d'avoir l'intellisense :p

Tout d'abord, je créé un site web pour créer, visualiser et tester mon userControl.
Ensuite, je créé un projet VSeWSS vide.

image

Ensuite, dans le site web, on ajoute un élément userControl

image

Voilà le code interne au userControl :

[sourcecode language='html']
< %@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
< %@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

< %@ Import Namespace="Microsoft.SharePoint" %>
< %@ Control Language="C#" ClassName="Xtr.Features.WelcomeControl"%>











[/sourcecode]

 Le fichier default.aspx me permet de tester mon contrôle

Dans le projet VSeWSS, voilà l'architecture que j'ai créé (voir le post  sur la gestion de ressources avec VSeWSS):

image

Le fichier copyAscx.bat permet de copier le .ascx du site web dans le répertoire CONTROLTEMPLATES du projet avant la génération du projet.

Voilà le contenu du fichier .bat :

@ECHO OFF
ECHO Copie du fichier ascx ...
xcopy /y "..\Xtr.DelegateControl\*.ascx" .\Templates\CONTROLTEMPLATES\




Et dans les propriétés du projet il faut ajouter les lignes suivantes :

image

Ensuite on ajoute le fichier module.xml avec le code suivant :

[sourcecode language='xml']

< ?xml version="1.0" encoding="utf-8"?>
http://schemas.microsoft.com/sharepoint/">
 


[/sourcecode]

Ensuite, il vous suffit de déployer votre projet sur votre serveur de développement.

 

Pour tester ce UserControl, j'ajoute la ligne suivante à l'intérieur de ma masterpage :





Voilà le résultat obtenu :

image

Aucun commentaire:

Enregistrer un commentaire