There are a number of open source projects dedicated to providing building blocks or entire frameworks for building community Web sites and managing content. One of the most popular has been PHP Nuke which was written using PHP and is highly customisable.
For developers using ASP.NET development there is an equivalent project called "DotNetNuke" that offers some of the same benefits to those of the PHP varieties. When Microsoft originally introduced Visual Studio.NET, they made available a number of sample applications and toolkits to help developers learn how to create .NET applications, including a portal application called "IBuySpy Portal" that was further developed and released as DotNetNuke 1.0 in late 2002.
Now on version 2.0 of the product and with over 50,000 lines of managed code, .NET developers have been using this project as a starting point for a wide range of community and commercial Web applications, intranets and portals.
In this article, we are going to take a look at how to get started with DotNetNuke and leverage the existing code to jump-start your own content management system (CMS).
To make the most out of this article you will need to download a copy of DotNetNuke from their web site (the latest version is 2.04.) You will need to register to access the download 0.5 MB file.
Once you have downloaded the software, unzip it to a directory on your hard drive and set up Web sharing for that directory. If you are using Windows XP, the easiest way to do this is to right-click on top of the folder and select Sharing and Security from the right-click menu. You can then create a Web share named DotNetNuke and grant the right to execute.
From this point, have a look in the directory for the actual Visual Studio .NET Solution File for the project, named DotNetNuke.sln. You can open this solution file and work with it as you would any other .NET solution. By default, DotNetNuke will store the back-end data for the portal in an Access database (DotNetNuke.mdb.resources), so you should be able to immediately run and view the portal from
Customising Dot Net Nuke
You can configure the portal using the tools provided within the UI and try out the different modules that are included with Dot Net Nuke, including:
- Account Login—for allowing users to log in to your application
- Announcements—for publishing announcements, news, etc.
- Banners—for displaying banner advertising
- Contacts—for displaying names, e-mail address, phone numbers, etc.
- Discussions—for creating a simple threaded discussion
- Documents—for uploading and managing documents
- Events—for announcing events
- FAQ's—for Frequently Asked Questions
- Feedback—for providing feedback
- iFrame—for introducing other pages and content using iFrames
- Image—for displaying an image
- Links—for displaying a list of links
- Newsfeeds(RSS)—for displaying news from an RSS feed
- Text/HTML—for displaying your own custom text or HTML
- User Account—for displaying and editing user account details
- User Defined Table—for creating a custom HTML table of information
- XML/XSL—for displaying XML data
You can create different tabs within the portal and then add these modules to the pages associated with the tabs. For instance, you could create a tab called "Contacts" and then add the Contacts module to store and display names, e-mail address and phone numbers. Likewise, you could add a news feed on the right side of the page to display an RSS feed from a news source. See Figure A.
|The DotNetNuke administration interface|
To customise your portal, go to the main portal page http://localhost/DotNetNuke/ and login as the Administrator using the default user name and password of "Admin". Once you have logged in as the administrator, a toolbar will appear at the top of the page.
From this toolbar you can add or edit tabs, as well as place modules in different locations on the page. The page is split up into three named sections: "Left", "Right" and the "Content Pane". You can add multiple modules to each of these sections, with each additional module appearing underneath the current module.
Once you have setup your tabs and basic page layout, you can then customise each of the modules you have added. You can access the module options using the "Pencil" icon that appears in the top left-hand corner of the module. Each module will have different options depending on the type of content they are designed to deliver. If you were to add the Contacts module, for example, you could set generic module settings like the title, description, etc. and then use the pencil icon to add contacts to the list.
Likewise, if you added the iFrame module, you could provide a URL to be shown in the iFrame within your portal page. This is an easy way to display content from other Web sites and pages within the DotNetNuke framework.
In addition to the default user interface, you can also customise or create your own UI and create your own look and feel by customising the style sheets and graphics that drive DotNetNuke. You can also come up with a completely different design and simply use the DotNetNuke framework to manage the content and other features of your site. One good example is the Asthma Foundation of Victoria which uses DotNetNuke v2.0.3 to deliver their Web site and other Web-based applications.
And finally, if you need to add additional features to DotNetNuke, you can find a number of third-party modules that extend the Dot Net Nuke framework. A good starting point is Snowcovered which sells a number of DotNetNuke modules at low cost and has a free download section to boot. You can also do a quick Web search on "DNN Modules" and find a number of providers out there.
If you have some experience with Visual Studio.NET, you can also create your own modules for use with DotNetNuke, there are a number of resources available on the web to walk you through how to create and package your module, but one of the best has to be at DotNetNuke.DK
If you do develop a new module or want to contribute to the DotNetNuke project, you can visit their workspace on ASP.NET where you will find additional documentation, a bug tracker and information on how you can contribute the DotNetNuke project.
DotNetNuke in action
We've come across quite a few Web sites running DotNetNuke in production here in Australia. While there could be many more DotNetNuke sites running behind company intranets here are some examples of professional Web sites running the content management system today:
- www.health.sa.gov.au/sahealttarget="_blank" hreform/