Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

The Mit's Blog

En plus d'intégrer et skier, il sait même écrire !
(Blog de Renaud Comte)

Actualités

SharePoint Deployment : Feature, Feature, Solution .... mais aussi WebProvisioningProvider

Petit message à tous mes lecteurs développeurs SharePoint

Je répete encore et encore que 90 %  du temps, la solution à une problématique SharePoint passera forcement par l'utilisation et la conception d'une Feature.

Et je maintiens

Mais comment déployer physiquement mon dev (via Feature) sur mes serveurs de prod ?

>>> Simple, vous la packagez dans une solution et hop, en ligne de commande STSADM, via l'installer MSI d'Ontolica ou la web interface de TamTam 

Mais comment mettre à jour un site déja créé ?

>>> Simple, vous utilisez le Feature Stapling et vous le mappez sur l'identifiant de votre modéle de site

Vous voyez, Feature reste souvent la réponse générique :)

Enfin pour 90 % des cas

...

...

Et je suis tombé dans l'un des 10% de cas : et oui, la nature déteste le vide smile_regular

>>> le Stapling et les Features activés par site Definition sont activés trop tôt dans le cycle de création d'un SPWeb.

Dommage, mais alors "Que pouvons nous bien faire ?"

>>>>>>> Simple voyons, il vous reste la solution du WebProvisioningProvider

La SPWebProvisioningProvider est une classe de base permettant de personnaliser la phase de "provisionning" de SharePoint. Elle est d'ailleurs largement utilisé dans le cas de publication de site MOSS (vous savez les modéles entreprises)

Exemple : avec le modèle SPS

<Template Name="SPSPORTAL" ID="47">
  <Configuration ID="0" Title="Collaboration Portal" Type="0" Hidden="FALSE" 
ImageUrl="/_layouts/1033/images/template_corp_intranet.png"
Description="A starter site hierarchy for an intranet divisional portal. It includes a home page, a News site, ...and is used to host team sites."
ProvisionAssembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
ProvisionClass="Microsoft.SharePoint.Publishing.PortalProvisioningProvider"
ProvisionData="SiteTemplates\\WebManifest\\PortalWebManifest.xml"

RootWebOnly="TRUE"
DisplayCategory="Publishing"
VisibilityFeatureDependency="97A2485F-EF4B-401f-9167-FA4FE177C6F6" /> </Template>

Il suffit juste de déclarer la DLL signée avec son strong name dans les attributs ProvisionAssembly et ProvisionClass. ProvisionData, lui permet de passer des paramétres externes pour aller encore plus loin dans la personnalisation.

En ce qui concerne la classe, vous ne devez que surcharger la méthode Provision(SPWebProvisioningProperties props) et faire vos propes "actions"

class SiteAction : SPWebProvisioningProvider
    {
        public override void Provision(SPWebProvisioningProperties props)
        {
            using (SPWeb web = props.Web)
            
                web.AplyWebTemplate("STS#1"); //if you don't apply a template you will be prompted to select one upon creation
                //your own custom things ...
                web.Update(); 
            }
        }
    }

Ainsi, avec votre propre WebProvisioningProvider vous pouvez aisement accéder aux listes crées de votre site et, par exemple, modifier l'héritage des listes et pre paramétrer les sécurités (pardon, SPRoleAssignment)  de celle ci. Voir même créer les connexions entre listes vu que les GUIDs existent.

Et quitte à reparler des Features, bien pourquoi pas, activer certaines features "hidden" pour des cas métiers en se passant de script supplémentaires

Une classe bien sympathique non ?

Encore un nouvel incontournable (de plus)

Pour revenir à l'exemple du modèle MOSS Portal, le PortalProvisioningProvider utilise simplement une arboréscence XML de Site Definition pour créer/provisionner un portail MOSS avec News, Document, Report Center, Search Center et Site Directory en une fois. A vous de créer les votres !

Voici quelques annexes pour aller plus loin dans le concept :

Renaud Comte aka TheMit (Je provisionnes, tu provisionnes, SP provisionne ...)
Member of WygTeam
http://www.wygwam.com

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

EROLMVP a dit :

Super !

From India (private jock  ;+))

EROL

# octobre 30, 2008 09:37
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- MBA : Pourquoi faire et comment le choisir ? par Blog Technique de Romelard Fabrice le il y a 15 heures et 28 minutes

- Y'a des erreurs qui peuvent rendre le développeur violent par Aleks's Blog le 02-02-2012, 16:33

- [Hyper-V 3] Présentation des commandlets PowerShell par Blog de SPBrouillet (Pierrick BROUILLET) le 01-31-2012, 16:01

- IIS7 – Compression GZIP par Atteint de JavaScriptite Aiguë [Cyril Durand] le 01-31-2012, 15:52

- SharePoint 15 Technical Preview Managed Object Model Software Development Kit par Matthew le 01-31-2012, 12:34

- Office 15 Technical Preview - Open specification Update par Matthew le 01-31-2012, 10:14

- TFS Integration Tools – Installation par Vivien Fabing le 01-31-2012, 00:06

- Test par RonnyK le 01-30-2012, 16:56

- [SharePoint 2010] Désactiver le correcteur orthographique dans les pages d’un site de publication par Jean-Christophe Brabant le 01-30-2012, 09:30

- [SharePoint 2010] Site internet et performances : poids et nombre des ressources par Arnault Nouvel le 01-30-2012, 00:52