Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

[MOSS] Déployer des Settings Custom

Il arrive souvent chez un client qu'un besoin de settings custom sur son portail se fasse sentir. Aussi on utilise les appSettings du web.config afin de stocker ses informations. Malheureusement, bien trop souvent ses settings sont déployés manuellement, et lorsque l'on a plusieurs frontaux ou Web Application, les actions manuelles sont multipliés et il y a donc potentiellement plus de source d'erreur.

C'est d'autant plus dommage que le mécanisme de déploiement de ses settings existe sous MOSS. Pour cela il faut utiliser le SPWebConfigModification qui est couplé à une feature.

Vous l'avez compris, il s'agit de faire une feature qui va appelé du code via le SPFeatureReceiver. Ensuite, pour allez plus loin vous pouvez définir cette feature dans un fichier onet.xml, mais c'est un autre sujet...

Voici donc le code associé à la feature, que nous allons détaillé :

public class CustomSiteSettings : SPFeatureReceiver { public override void FeatureActivated(SPFeatureReceiverProperties properties) { try { SPWebApplication webApp = ((SPSite)properties.Feature.Parent).WebApplication; foreach (SPFeatureProperty property in properties.Definition.Properties) { SPWebConfigModification webConfigModification = new SPWebConfigModification("add[@key='"+ property.Name+"']", "configuration/appSettings"); webConfigModification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode; webConfigModification.Value = "<add key=\"" + property.Name + "\" value=\"" + property.Value + "\" />"; webApp.WebConfigModifications.Add(webConfigModification); } webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); webApp.Update(); } catch(Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } }

Il y a ici trois étapes :

  1. Une boucle qui va chercher les settings dans la feature (nous détaillerons cette partie ensuite)
  2. l'ajout du settings via l'objet SPwebConfigModification
  3. la sauvegarde des settings dans le fichier web.config

Il est intéressant de noter que l'objet SPwebConfigModification utilise du XPATH pour se positionner dans le fichier web.config, cela pourrait vous être utile pour ajouter/modifier des tags autre que les appSettings.

Concernant les settings que nous déployons, ceux-ci sont stocké dans la définition de la feature (qui corresponde au SPFeatureProperty utilisé dans le code) comme suit :

<Feature Id="[GUID]" Title="[Title]" Description="[Description]" Version="1.0.0.0" Scope="Site" ReceiverAssembly="[Assembly Reference]" ReceiverClass="[Class Reference]" xmlns="http://schemas.microsoft.com/sharepoint/"> <Properties> <Property Key="settings1" Value="value1"/> <Property Key="settings2" Value="value2"/> </Properties> </Feature>

Comme vous le voyez rien de très compliqué, a chaque property correspond un setting avec le jeu Key/Value, il ne vous reste plus qu'a packager le tout dans une solution. Avouez que ce serait dommage de ne pas s'en servir :)

 

alex.

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 :
Publié vendredi 7 novembre 2008 11:48 par khamlon
Classé sous : ,

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [MVC] Plusieurs verbes pour une seule méthode du controller par Blog de Jérémy Jeanson le il y a 5 heures et 42 minutes

- SPS Paris 2015 – Back from MS Ignite par Le blog de Patrick [MVP Office 365] le 05-26-2015, 16:04

- Windows 10 IOT– exploitez vos capteurs en tout genre ! par Blog de Daniel TIZON [daniel] le 05-26-2015, 08:06

- SharePoint Saturday Paris 2015 c’est le 30 mai ! par Le blog de Patrick [MVP Office 365] le 05-25-2015, 21:07

- Configurer un écran 5 pouces 800x480 pour Raspberry Pi2 sous Windows 10 IOT par Blog de Daniel TIZON [daniel] le 05-22-2015, 07:52

- Office 365 : Sway est disponible en preview par Le petit blog de Pierre / Pierre's little blog le 05-21-2015, 22:24

- Première installation de Raspbian sur RASPBERRY Pi 2 par Blog de Daniel TIZON [daniel] le 05-14-2015, 22:17

- Mobile Day : c’est le 25 et c’est chez Microsoft! par Fathi Bellahcene le 05-13-2015, 23:48

- TFS 2013 : Migration d’une ferme TFS 2010 vers 2013 sans upgrade par Blog Technique de Romelard Fabrice le 05-01-2015, 16:28

- [ #SharePoint 2016 ] frappe à nos portes ! (1/2) par Le blog de Patrick [MVP Office 365] le 04-19-2015, 23:21