When you combine Slow Cheetah with Web Deploy in a Sitecore solution you get the benefits of quick deployments with the ability to store any custom code and configuration in your source control. Slow Cheetah brings xml transformations to Sitecore so you only specify the differences between configuration files and can store every environment’s configuration in a single source control repository without polluting the project. Web Deploy offers one button deployments and only transfers the files that have changed. Together, they reduce the complexity of deployments and help you keep track of all of the configuration files in Sitecore.
Slow Cheetah
Slow Cheetah is a fantastic, free Visual Studio extension by Sayed I Hashimi (he needs a raise). It uses XSL syntax to transform configuration files. If you’ve worked with Sitecore, you know the plethora of configuration files you have to deal with. Slow Cheetah will nest config transform files under a configuration file in Solution Explorer and gives you a shortcut to create these transforms for every publishing profile. In these transforms, you only specify the changes from the original and when you publish to the associated profile, the configuration file is updated automatically.
You can install Slow Cheetah in your Visual Studio solution (2013 Professional + and earlier versions) by selecting Tools -> Extensions and Updates. Select Online from the left pane. Enter Slow Cheetah in the search box and press enter. Select and install Slow Cheetah – XML Transforms.
Unfortunately, Sayed is unable to continue support for Slow Cheetah past Visual Studio 2013, but Microsoft has said that they will bake XML Transformations into future versions of ASP.Net and Visual Studio (let’s hope that happens soon).
Web Deploy
Web Deploy is an excellent, free IIS extension that allows you to publish changes to web applications on the server. Using Visual Studio, you can create a publishing profile that will build your Sitecore solution and then automatically transfer only the changed files to the server.
There are decent articles on installing Web Deploy on your server, but a brief summary is:
- Install the Web Management Service on your server
- Create a local user for deployment
- Install Web Deploy
- Configure your IIS site for Web Deploy
- Create a Web Deploy publish profile in your Visual Studio solution
Summary
Once you have both extensions installed and working you can include the configuration files that change between environments in your solution and source control repository. I would suggest you try to keep this to a minimum, but some configuration files are necessary. In fact, with these 2 extensions I was able to keep almost all changes to the Sitecore configuration in the config transformations for just 1 configuration file.
Most Sitecore projects will be using multiple servers in each environment and should follow the Sitecore recommendations for each server role. These tools can help you maintain the different configuration changes from Visual Studio and store them in your source control.
Slow Cheetah and Web Deploy will help you maintain your configuration files in one place and deploy them quickly. The changes can be stored in source control while not cluttering your solution. Only the changes are transmitted to the server making deployments quick and accurate.