The DNN Platform is a .net-based web application framework, or CMS (Content Management System) as some people prefer to call it. Like many of its peers (Joomla, Wordpress, Drupal) it, too, is free and Open Source. You do not need to sign up or sign your business over to DNN Corp, the makers of this platform. You can just download it, install it and begin using it. You can use it for yourself or for a client, non-profit or commercial. You can even charge your client money for it. You do not need to attribute to anyone. And you can change it in whichever way you like.
What is a web application framework or CMS?
In a nutshell a CMS differs from a “classic website” in that the latter is a collection of html files on a web server, whereas a CMS is a program that runs on the server that creates web pages on the fly by looking up what it needs to make in a database. The CMS, thus, revolves around two key components: an application and a database. The application is what you’ll download. The database is what you’ll be filling as you add pages through the application’s management interface. Most modern websites are now based on one CMS or another. There are hundreds of CMSs out there, both commercial and free. By far the most popular of these is Wordpress. DNN is the most popular on the Microsoft Stack. What that is will be explained below.
The application’s “management interface” was mentioned briefly above. This brings us to another major difference. With a classic file-based website, the management requires you to change files on the server, meaning administrators need a login on the server. With a CMS, the application manages access and offers an interface through the web to administrators. This means that the CMS is responsible for account management and this is no longer necessary on the server. As you can imagine this greatly simplifies matters. In fact, the only person needing access rights on the server is the one installing the DNN platform at the very beginning. After that it is completely managed through the application.
The technology
Wordpress is based on a technology called PHP. This technology is arguably the most commonly used technology for delivering web content these days. In fact, the top 3 CMSs are based on PHP. DNN is different. It is based on asp.net. In fact, DNN is an abbreviation of the original name of the platform which is DotNetNuke. This was coined when PHP-Nuke was the biggest CMS out there and .net was the brand new thing. .Net is Microsoft’s programming framework for Windows. So, as you can guess, DNN needs a Windows server to run. In fact, DNN runs on what we call the “Microsoft Stack” comprised of Windows/IIS, .net and SQL server (you can use the free SQL Express version). This in contrast to the PHP projects which are mostly based on the "LAMP stack" (Linux, Apache, MySQL and PHP).
One of the biggest advantages of the Microsoft stack is that most businesses already have this in house. And it is understood, well supported, proven, reliable etc. These are properties that are typically very much appreciated by IT staff. And this is part of the reason why DNN is so successful in the corporate intranet market: It integrates well with the existing infrastructure.
A second big difference between PHP and .Net is that PHP is a scripting language, whereas .net supports separation of markup and code and can be compiled. What this technical jargon means is that in PHP the markup of an HTML page is generated in files that inter mingle this markup with code to be executed by the server, making it quite hard to properly maintain that code over time. This is also how Microsoft’s older “Active Server Pages” used to work. With .net Microsoft intended to move beyond this and allow the output of the application to be generated by templates that leveraged compiled code. This has several advantages, notably that code is better protected against tampering, that code is optimized for performance, and that programmers can protect their code against prying eyes.
Any debate about technology stirs up passion in developers. And no doubt, the very brief .net vs PHP comparison above will provoke some to come to the defense of one or another technology. But everyone agrees that technology is but a means to an end. In the end the central question is: is this the right tool to achieve my goals? And that is ultimately up to you. We encourage you to examine the .net technology if you’re so inclined. Those behind DNN Connect are enthusiastic about it and use it to deliver real solutions for real needs.
Extensibility
Like other CMSs, DNN is extensible. That is: you can add application bits to it, which will enable it to do new things that it didn’t do out of the box. The platform itself takes care of the basic functionality like managing pages and access rights or showing a text on a specific page. But if you’d like to run a blog, for instance, you’d have to download a blog “module” and add it to the system. The same goes for what are called “skins”, i.e. the design of the site (sometimes called "themes" in other CMSs). These are extensions, too. Typically you’d install the DNN platform and add the modules you need and add the skin you want and you can start adding your content.
This separation between function, look and content, is one of the most important advantages of using a CMS like the DNN platform. Because typically these areas involve different contributors (developers for the functionality, designers for the look and content managers for the content) it becomes much easier to run a team responsible for a website. If the designer wishes to make a change he/she will not need to wait for the others’ work to finish before uploading changes. The ability to work independently is crucial in the management of modern, larger websites.
The ability to extend DNN is simplified enormously for the end user through the in-built installer. This is where DNN really shines. An extension is delivered as a zip file which you upload on a special management page in DNN and that’s all there is to it. Upload and add the newly added module to a page (or apply the uploaded skin to the site). You don’t need any technical knowhow to install or use extensions. And this has created a whole new cottage industry of module/skin manufacturing. You can obtain free extensions from various sources and you can buy commercial extensions from vendors who specialize in this line of business. What this means is that you’ll most likely be able to tick off the majority of requirements for a site and just focus on the ones that are really specific to your needs.
Getting started
A good Getting Started resource can be found here.
There are many, many resources on the web with information about this, so we're keeping this short. But you’ll likely pass by these steps:
Step 1. Download the package.
You can download the DNN Platform through the buttons on this page. Currently it’s hosted on both Codeplex and Github. All you need is the “Install” package to get going. You don’t need the source code unless you really wish to start digging into the DNN source code. But even if you wish to start module programming this isn’t always necessary. So to avoid any confusion: just download the install zip.
Step 2. Install
Now you need a server with the following requirements:
Windows 2008+ or 7+ (if you’re running on a client machine), IIS 7+, .Net 4.0, SQL 2008+
There are many guides on how to install DNN on the DNN Software site and elsewhere. A great introduction video series can be found here:
DNN 7 Installation - Part I
DNN 7 Installation - Part II
DNN 7 Installation - Part III
DNN 7 Installation - Part IV
Step 3. Run.
Navigate to your web address and let the installer do its work. Log in as host and begin your discovery of DNN. Now you can:
- Create your first pages
- Create your first user accounts
- Install extensions
- Etc, etc.
Check out the getting started video top right or view in full screen mode on YouTube
Final Words
DNN is open source software. Around the world, people are working to improve this in their own free time. You are invited to join this party but you should realize this is a very big project with many, many stakeholders (not to mention a 10 year history). So although you can try to contribute directly to the core project, it can be a frustrating undertaking as you need to get this accepted by your peers. But the project is much larger than just the core. There are numerous open source module projects, for instance, that are eager for new talent to join the team. And you can chip in on the forums and help other users get started. Or how about creating a new skin and contributing that? We are all volunteers with a mission. And that mission is to make this the most awesome CMS there is.
For those interested in getting involved, this guide by Peter Donker will help a lot.