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

- « Naviguer vers le haut » dans une librairie SharePoint par Blog de Jérémy Jeanson le 10-07-2014, 13:21

- PowerShell: Comment mixer NAGIOS et PowerShell pour le monitoring applicatif par Blog Technique de Romelard Fabrice le 10-07-2014, 11:43

- ReBUILD 2014 : les présentations par Le blog de Patrick [MVP Office 365] le 10-06-2014, 09:15

- II6 Management Compatibility présente dans Windows Server Technical Preview avec IIS8 par Blog de Jérémy Jeanson le 10-05-2014, 17:37

- Soft Restart sur Windows Server Technical Preview par Blog de Jérémy Jeanson le 10-03-2014, 19:43

- Non, le certificat public du CA n’est pas un certificat client !!! par Blog de Jérémy Jeanson le 10-03-2014, 00:08

- Windows Server Technical Preview disponible via MSDN par Blog de Jérémy Jeanson le 10-02-2014, 19:05

- Focus Sauvegardes SharePoint par Le blog de Patrick [MVP Office 365] le 10-02-2014, 13:11

- Technofolies, votre évènement numérique de l'année par Le Blog (Vert) d'Arnaud JUND le 09-26-2014, 18:40

- Xamarin : From Zero to Hero par Fathi Bellahcene le 09-24-2014, 17:35