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,
- 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
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/