DotNetNuke in Azure Cloud

2012-04-14 by Marina Astapchik

DotNetNuke (DNN) is an open source CMS (Content Management System) written in Microsoft VB.Net (from the version 6.0 C# .Net). It has two versions: community (free) and commercial. The commercial version contains some additional features and customer support. A standard DotNetNuke installation contains only the DNN core, with the basic functionality that could be extended by additionally installed modules. This architecture provides a good flexibility of project design and configuration. Complicated web solutions could be built easily using the modules like bricks, which provide all the required functionality.

Nowadays cloud solutions become more and more popular. Project scalability in the cloud requires less time and has an elastic scale. So let's discuss the possibility of using the DotNetNuke and the cloud together. Could a DNN solution be deployed to the cloud and achieve all the benefits of cloud scaling? Let's take Microsoft Azure as a cloud platform for this investigation. As DNN is .Net based CMS, and we could make an assumption, that Microsoft's cloud platform will be the most suitable for DNN hosting, as it uses the same technologies from the same vendor.

Deployment of the DNN to one server is an easy process. You could just download the binaries from the DNN official site and install them using the simple wizard. But what could we do in case to install DotNetNuke to Azure cloud, while you don't have access to the destination virtual servers, where your solution will be hosted?

David Rodriguez has an idea of the same simple installation DotNetNuke to the Azure cloud in his Azure accelerator project (https://dnnazureaccelerator.codeplex.com/). It is a simple application for creating a deployment package which could be used to install DNN to the cloud. Package creation requires SQL Azure and Azure Storage pre-configuration. Deployment could be done just in few easy steps:

1. Creating the Azure SQL Server.
2. Creating Azure Storage instance.
3. Run the Accelerator installation and enter Storage & SQL credentials on wizard request.
4. Upload created packages to the Azure server and start deployment.

While deployment DotNetNuke Accelerator creates the virtual drive on Azure Storage with DNN Sources and deploys DNN Database to the SQL Server. A detailed diagram of DotNetNuke architecture while using Azure Accelerator you can see on the screen.

After deployment, we could use all the features or Azure to optimize our DotNetNuke application.

  • Use the core Azure Load Balancing mechanism to provide better performance
  • Improve system logging with Azure logging services.
  • Optimize file storage, using a separate Azure Storage. It will give us access to the fast, cost-effective and efficient file management.
  • Store DotNetNuke Database on the fail safe server using Azure SQL.

So, at first view DotNetNuke is ready to be installed to the Azure cloud to achieve all the positive aspects of the cloud scalability. But during the detailed investigation I've found several serious limitations for DotNetNuke in the Cloud:

  • Azure SQL limitations. The DNN Azure Accelerator installs only basic modules. So, other modules should be installed manually. Each module installer contains a script which applies to the DNN Database. In case of using Azure SQL for database hosting, script could fail due to the SQL limitations of Azure SQL. In some cases it could fail a whole DNN site. So, don't forget to back up the database before installation of a new module. Install script should be also edited to fit Azure SQL requirements.
  • Azure storage connection limitations. The community edition of DotNetNuke doesn't contain Azure Storage connectors. Connectors for cloud storages (Azure, Dropbox, Amazon) are present only in the commercial version of DNN, which have no Azure Accelerator installer. The workaround for this is installing the Intelequia DNNFolderProviders. But this provider is shareware and requires a license file before its configuring. So for now there isn't a free way of using the Azure Storage, while hosting in the Azure cloud.

As a conclusion, I would like to say that as for me the time for DotNetNuke in the cloud has not come yet. The installation process still looks complicated. Code adaptation requires a lot of efforts to be used in the Azure cloud. I hope that the community will provide more tools and workaround in the near future, but you could already start a pilot project to plan the strategy for your future DotNetNuke projects for the cloud deployment.

Industries and Technology Areas:

Industries: DotNetNuke (DNN), Windows Azure, cloud computing

Technology Areas: DotNetNuke (DNN), Microsoft Azure, cloud computing, content management system (CMS), SQL Azure

RELATED ARTICLES

Top Questions and Answers about CRM

Growing businesses are looking for a better way to manage customer relations. Understanding that the idea to store their information in note cards or Google documents is a bit old-fashioned, they are wondering, what is CRM, how it works and how it can help their businesses. These questions are hardly...
READ ARTICLE

QR Code Solution for Mobile Devices

Business Needs High level of competition in business creates needs to provide as much services as possible for less money. Companies try to inform clients as much as possible about the opportunities and competitive advantages. Large spaces of printed surfaces are used to show the content marketing information. The tendency…

READ ARTICLE
Node.js: pros and cons

Bringing Node.js into your project: pros and cons

Introduction “Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.” This is what official Node.js website tells us, and this...
READ ARTICLE
Database Migration Best Practice

How to migrate high-load tables with zero downtime using background jobs and SQL views

Sometimes database migration may become a pain. The tables are large, the load is high, HDD space is expensive and the downtime should be as short as possible. Elinext team has recently investigated the issue within one of our Ruby on Rails projects and managed to offer a flexible data…

READ ARTICLE
WHO WE ARE

ABOUT ELINEXT

Elinext is a custom software development and consulting company focusing on web, mobile, desktop and embedded software development, QA and testing. Since 1997, we have been bringing digital transformation to mid-sized and large enterprises in Banking and Finance, Insurance, Telecommunications, Healthcare and Retail. Our key domains include enterprise software, e-commerce, BI and Big Data, e-learning and IoT.