Skip to content
AlenPelin edited this page Feb 10, 2016 · 7 revisions

About Sitecore Bootcamp

Sitecore Bootcamp is a project which is designed to simplify deployment of Sitecore solutions and to make artifact as simple as possible.

Check this article with a lot of screenshots.

Check 3-minute video where the Bootcamp is shown.

Why

There is no universal, simple, easy-to-upgrade and easy-to-use (at the same time) approach of deploying Sitecore application. Sitecore Bootcamp tries to create this way, so please welcome brief description how it does.

How

- Development run Ctrl+F5

Imagine you have simple Sitecore site with a couple of .cshtml files and a few config files. Lets assume that you want to run this solution to see how it looks like.

Prerequisites:

  • SQL Express is installed and current Windows user is an administrator
  • QA version of SIM is installed, necessary version of Sitecore is available in SIM QA (it is presented in combobox in Install Instance dialog) and NuGet packages are generated (Ribbon -> Home -> Bundled Tools -> Generate NuGet)

With Sitecore Bootcamp, this is very simple:
1. Create an empty Visual Studio solution with single empty web project where mentioned .cshtml and .config files are added to. Delete the web.config file.
2. Open NuGet Console and type:

Install-Package Sitecore.Bootcamp
Install-Package SC.Sitecore.Kernel -Version 8.1.0.151207

3. Press Ctrl+F5
4. Open http://localhost:12345/sitecore, log in to Content Editor and create necessary items for .cshtml files
5. Perform publish and enjoy working website

Note, in the solution there are no Sitecore out-of-the-box files excepting the Sitecore.Kernel assembly that is used to define necessary Sitecore version, all the rest files are copied from C:\ProgramData\Sitecore\NuGet folder or downloaded from http://dl.sitecore.net.

- Publish to Azure Web Apps

Imagine you have simple Sitecore site with a couple of .cshtml files and a few config files. Lets assume that you want to deploy this solution to Azure Web Apps, for example.

Prerequisites:

  • QA version of SIM is installed, necessary version of Sitecore is available in SIM QA (it is presented in combobox in Install Instance dialog) and NuGet packages are generated (Ribbon -> Home -> Bundled Tools -> Generate NuGet)

With Sitecore Bootcamp, this is very simple:
1. Create an empty Visual Studio solution with single empty web project where mentioned .cshtml and .config files are added to. Delete the web.config file.
2. Open NuGet Console and type:

Install-Package Sitecore.Bootcamp
Install-Package Sitecore.NoSql
Install-Package SC-AsFiles -Version 8.1.0.151207

Remark, Sitecore.NoSQL was added for simplicity, it is not required. You can change ConnectionStrings.config file to update the connection strings to point to real databases hosted somewhere.

3. Publish site using Visual Studio Publishing
4. Open mysitecoresite.azurewebsites.net and wait a couple of minutes while it is installed
5. Open mysitecoresite.azurewebsites.net/sitecore, log in to Content Editor and create necessary items for .cshtml files
6. Perform publish and enjoy working website

Note, that in the solution there are no Sitecore out-of-the-box files excepting for assemblies placed in App_Bin folder (as links, so you don't need to include them to the version control system). In addition, these assemblies are not added as references so it does not slow down Visual Studio.

What happens under the hood?

Sitecore.Bootcamp consists of Default.aspx file and Sitecore.Bootcamp.dll assembly. After deployment, Sitecore assemblies are not loaded into application pool because they are stored in a different folder, and there are no Sitecore web.config file so no run time error shown. So the only code that runs during loading is Sitecore.Bootcamp.

During first request, Default.aspx file runs code in Sitecore.Bootcamp.dll assembly which:

  • detects current Sitecore version using App_Bin/Sitecore.Kernel.dll
  • downloads default static files (including configuration files) from dl.sitecore.net cloud service
  • default Sitecore web.config is placed in the root which will cause application pool recycle by the end of the request
  • assemblies from App_Bin folder are moved to bin folder
  • all /Web_Config/Include/*.config files are used to transform web.config the same way as /App_Config/Include/*.config transform /App_Config/Sitecore.config file, but due to the nature of ASP.NET the /web.config file is modified when Web_Config/Include/*.config files arg merged into it and deleted
  • request ends and application pool restarts, having all necessary Sitecore files to run