I wanted to start using a new open source and "free" CMS for my general and professional needs. So I did some digging for .NET based CMS's that are modern but mature enough to cover the needs of small to large organizations as well as personal websites
There are fairly some well-known "Open Source" .NET based CMS's in the market, probably the most famous I found is DotNetNuke which is now called DNN, looking a little closer to it made me think I should look some more.
Umbraco is a fairly new ASP.NET CMS, see the Wiki page (say 2010 when it had a "mature enough" version) and now it claims "Umbraco loves Azure". Well, this is really a catchy name and being interested in hosting my websites in Azure it made me give it some attention. Turned out it is a good modern CMS that uses ASP .NET MVC as it's base development platform (which is perfect for my case, DNN uses WebForms!) and has good community and commercial support (not as good as DNN). I still have a lot of reservations about their claims "Umbraco Loves Azure" but this is for another post. This post here cover a lot of the challenges of using Umbraco with Azure as a cloud solution or any other cloud solution...
There is currently a deployment package in the Azure Portal gallery for installing Umbraco CMS, but it just always fail! The website will run fine but some conflict is causing a problem for MSDeploy during the the deployment process and it marks the causes it to fail. I did some research and reading but it's really not much worth the effort and time when I can build my own deployment pretty quickly, beside Umbraco versions are changing quickly, azure is changing very quickly and most resources on the internet is outdated already. Who know, maybe by the time you are reading this my content is outdated as-well!
So instead of using the gallery I decided to just build my own deployment package of Umbraco which allows me later to customize the deployment to my needs, thinking database, scaling, monitoring and all the good stuff that comes with Azure Deployment from Visual Studio.
Table of Contents
- Create the website template in Visual Studio
- Building a web deployment package
- Building Azure Resource Manager Deployment Template
We'll be using Visual Studio 2015 to build an ASP.NET web project, We'll add Umbraco dependencies into the project and use that as our general template for deploying Umbraco CMS on Windows Azure. Visual Studio will also build a Web Deploy Package in ZIP format that can be deployed to Windows Azure Website or IIS on a Windows Machine if you are using VMs.
Other variations from this template can be created for common scenarios. For example, I can always have the site created along with an Azure SQL Database, MySQL database or MS SQL Server and a storage account that holds the media folder where Umbraco stores uploaded media. This is where the power of Azure Template Deployment shows as I can include my entire environment in one deployment package where I can mix my PaaS and IaaS resources.
If you are only looking to deploy Umbraco without going through the entire steps, you can use the "Deploy to Azure" button on my GitHub repository where I uploaded the template deployment and it is pointing to an Umbraco package that I built and host.
However, if you like to build your own deployment package or have an existing Umbraco site that you want to deploy to Azure using Template Deployment then continue reading part 2 of this post.