Keeping your Sitecore configuration files clean
Keeping
your Sitecore configuration files clean is very important thing for further
upgrades and maintenance. I had a lot experience with projects where
configuration files was edited and maintained poorly. This article will provide
you with some points you should observe to keep your Sitecore configuration
clean and transparent.
For more informations about configuration patch files see John West post: http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2011/05/all-about-web-config-include-files-with-the-sitecore-aspnet-cms.aspx
You can check how patches applied to Web.config file using special url /sitecore/admin/showconfig.aspx.
1)
You
should definitely avoid editing Web.config file. Rather than that you should
use Sitecore patch files mechanism to change Sitecore configuration. In this
mechanism, Sitecore processes all .config files in App_Config\Include directory
and applies patches to Web.config file.
E.g when you want to replace pipeline processor
with your custom one, you could simply edit Web.config. You could delete or
comment line with processor you want to replace and write new one. This is the
fastest way but the worst. The best way is to create custom patch file:
<!-- Events configuration --> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <events> <event name="item:creating"> <handler type="SitecoreExperiments.Common.Events.PreventDuplicates, SitecoreExperiments.Common" method="OnItemCreating" /> </event> <event name="item:saved"> <handler type="SitecoreExperiments.Common.Handlers.CustomSaveHandler, SitecoreExperiments.Common" method="OnItemSaved" /> </event> </events> </sitecore> </configuration>
For more informations about configuration patch files see John West post: http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2011/05/all-about-web-config-include-files-with-the-sitecore-aspnet-cms.aspx
You can check how patches applied to Web.config file using special url /sitecore/admin/showconfig.aspx.
Unfortunately Sitecore patches concern only /sitecore
branch in Web.config file.
2)
Group
Sitecore patches into files that matches specified type of Sitecore region e.g
pipelines, scheduling tasks, events. Also make sure that your patches are
loaded last – put them in your folder in App_Config\Include
and name it with prefix ‘Z_’.
3)
Make
developer-specified patches ignored in code repository. Let developers use
commited example file (with name e.g FileName.config.example) to create their
custom one.
4)
Don’t
make Web.config file ignored in code repository. Web.config should be
commitable.
5) Make sure that all Sitecore application configs are in solution. Leaving
some of them just in webroot after some installations, leads to
misconfiguration and nasty bugs.