SharePoint or DotNetNuke?

In Mindsharp’s
SharePoint Discussions group
, the following question was posted:

Does anyone have experience
with both SharePoint and DotNetNuke to the point where they could comment on
the benefits of each are compared to the other?  Is there a type of
installation where you might use one vs. the other?

Here’s the answer I posted in the group:

SP and DNN are very different beasts which offer some similar
functionalities.  I’m using SP as a generic term for either WSS or SPS,
which is a different decision.  DNN is really an easy website creation
tool, while SP was designed to be an information repository and collaboration
tool in a corporate environment.  The best way to summarize might be
“Extranet vs. Intranet”.  My thinking is Extranet=DNN, Intranet=SP. 
DNN is designed to be used and maintained by persons with little IT
experience.  SP is one of those things that will require having a decent IT
person around.

First question would be whether or not you need tight integration with
Office.  If so, then hands down your only choice is SP.  Another
feature that DNN is lacking is a document library with version control, although
one may appear down the road.  SP offers full-text indexing of the
documents you store in it, and so you can search inside the documents in its
libraries.  DNN doesn’t offer this.  SP stores its documents very
securely in the SQL database; DNN stores them as files, which means if someone
knows the right path, the site’s security could be bypassed and the documents
downloaded directly.

If you don’t need the tight Office integration, DNN is a very valid choice
for a website.  A good use would be for a school’s website.  DNN
supports multiple child portals, just as SP does, and you can distribute
administration, just as with SP.  The school could have its main portal,
and each department or club could have its own child portal, each with their own
radically different looks.  True, you could pull off the school’s website
with SP, but it wouldn’t be so flexible, and you would put in a lot more effort
to make it work.

Another consideration is what type of authentication you need to use. 
WSS was designed to integrate with Active Directory, DNN was designed to work
with anonymous users and Forms Authentication.  There are ways to make DNN
work with AD, and WSS work with anonymous users, but anytime you make a change
as significant as authentication scheme, you introduce adminsitrative
overhead.  One point of using these tools is to simplyify your life, not
create extra work.

Cost might also be a consideration.  True, if you have Windows 2K3, then
WSS is essentially free; DNN is entirely free.  There are a lot of good web
parts available for free and cheap for WSS, but many are very expensive. 
DNN can also be extended with inexpensive or free modules, and even the ones you
have to pay for are still pretty cheap.

One main difference I see is the amount of different things you can do with
DNN.  DNN can also serve as an e-commerce platform, or host robust photo
galleries (rather than the “list of photos” in SP).  There are some nice
calendar modules for DNN that not only list events, but allow registrations and
can accept payment for them.  In this case, it might seem like SP is
lacking in some functionality, but SP was never designed to do these
things–these are functions of a website, not a collaboration tool.

Skinning is a bazillion times easier with DNN.  The DNN core team did a
great job with its skinning engine, and there are lots of skins available for
free or cheap.  Changing the look of a single page, or entire portal is
done with a simple package upload and a few mouse clicks.  With enough
work, you can do some really nice skinning on SP (both SPS and WSS), but it
takes some work.  I’ve done both, and DNN is by far easier and more
powerful (mainly due to DNN’s simplicity–features which are hidden or difficult
really aren’t features at all).

DNN runs very well in a shared hosting environment; SP, not so much. 
Although DNN only ships with SQL Server provider, if you’re handy enough, you
would write one for MySQL, or Vista, etc.  You don’t have that option with
SP–it’s SQL Server only.

<update 2006-02-01>

If you didn’t come here from there, Bil Simser has a much more detailed post
Bil also includes some of the features of SharePoint ‘v-Next’ (currently due to
be released at the end of this year), and better breakdown of the OOTB



Support the DotNetNuke Project – Become a Benefactor

It’s been three years since the release of DotNetNuke, and today Shaun announced the DotNetNuke Benefactor Program.  Basically, you can make a donation to support the project, and get some extra benefits in return.  DNN will remain open source and free, and becoming a benefactor is optional.

The DotNetNuke Benefactor Program was created with the intent to preserve the delicate balance between the needs of the open source community, the serious business ecosystem it has fostered, and the on-going management of the project. The Benefactor Program provides the ability for community members to gain access to a premium set of layered benefit packages; with each level designed to satisfy the needs of a specific stakeholder group.

Full information at

Now playing: Pearl JamYou’ve Got to Hide Your Love Away

Review: Building Websites with VB.NET and DotNetNuke 3.0

I’ve had the priviledge of reading Dan Egan’s Building Websites with VB.NET and DotNetNuke 3.0 recently, and there are other reviews out there, I figured I’d chime in also.

Overall, I think this is a better book for the DNN beginner than the WROX book (see, and is more suitable to the non-technical people who may be administrating the portal, but not developing for it.  It’s not perfect, but I think these users will appreciate some of the extra work Dan put into this book.  Most of the book is written as if you are building a coffehouse locator together, so much of the book flows from one topic into another, and is written with a point.

Chapter 1 starts you with an overview of portals in general, and explains why DNN is a very good choice.  Dan also lays the groundwork for the portal you’ll be building (Coffe Connections), and demonstrates a technique called “user stories” than can help design an effective portal.

Chapter 2 covers installation on a local machine, which I think many users may not need to worry about.  It’s not something everyone needs to know, but it’s a good idea to familiarize oneself with the information even if you won’t be performing the installation.

Chapter 3 really gets into the meat of DotNetNuke.  It’s probably the best coverage of users, roles and pages and how they operate in DotNetNuke I’ve seen.  There is a chunk of very technical information regarding the Membership Provider; if you’re not developing for DNN, you can safely ignore this section and not miss anything.  Useful information for all in this chapter includes how to control user registration, how to create pages and control access to them using user roles.  This chapter is written using the user stories created in chapter 1.

Chapter 4 is great.  This chapter covers all the standard modules included with DotNetNuke, with a simple explanation.  Coffee Connections isn’t tied into this chapter too tightly, but it fits.  Dan went above the usual descriptions of the modules, and includes some “Practical Purposes” of each module, and how to administrate the modules.  This is a very useful chapter for anyone who will be working with DNN.

Chapter 5 covers the host and admin tools.  This seems a little out of order, but contains great information on how to administer your portal.  It covers the difference between ‘host’ and ‘admin’ logins, how to change site settings, upload new images to be used on the site, view logs and a few other features.

Chapters 6 and 7 get way off course in the context of building Coffee Connections.  They contain some very detailed technical information, more suitable for the developer than administrator.  The non-technical administrator can skip over these chapters and not miss too much.  For the developer, chapter 6 covers caching, config files, providers and other detailed information you’ll need to develop custom modules.  Chapter 7 is an introduction into building custom modules (called “Private Assemblies”) in DNN.  Included are discussions of setup and adding the proper user controls (you need at least 3 ASCX files–a View, an Edit, and a Settings), packaging your module and adding it to a site, and creating a business logic layer and a data access layer using the database provider module.  Extensive code examples in VB.NET are provided.  The sample module you’re building is a custom Coffee Shop Listing control for Coffee Connections.  This chapter alone is nearly 1/5 of the book’s almost 300 pages, and is very detailed.

Chapter 8 covers creating DNN skins and containers, and how to apply them to your site.  You create Coffee Connections’ skin using Visual Studio, and ending up with an HTML and token based skin.  This is a short chapter, and doesn’t go too deep into skinning (but compared to custom modules, skinning isn’t a deep subject anyway), but you’ll be able to create DNN skins after reading this chapter.

Chapter 9 lists some must-have modules, where to find them and how to use them.  Another great chapter, and I now use several modules I didn’t know about until I read this chapter.

Chapter 10 covers deploying your portal to a live site, using FTP and SQL Server Enterprise Manager.  Presumably, many readers will already have passed this point, but it’s good for the beginner ready to go live.

Chapter 11 covers one of DNN’s best features–supporting multiple portals from a single installation.  This is exceptionally useful for a school or other setup where one parent portal may be the gateway to the portals of other departments, etc.

Chapter 12 covers the Provider Model as its implemented in DNN.  If you’re new to the provider model, DNN is a very complicated example to try and learn from.  Chapter 12 will bring you up to speed with the theory of the provider model so you’ll be able to work with DNN’s implementation effectively.

Overall, I think this book is better for the non-technical user than WROX’s book, but adds technical information in a few spots that can distract such a user.  If you’re a hard core DNN developer, DNN’s book is probably the better technical manual (being written by the DNN Core Team, you’d expect that), but this book makes an excellent secondary reference.

DotNetNuke Error “System.Security.Cryptography.CryptographicException: Bad Data.”

If you receive a Bad Data error when working with DotNetNuke, the problem seems to be with cookies.  The solution is to clear the cookies from your computer, and that should take care of the problem.  It worked for me when I encountered the error.  There is a discussion on this at, and one of the core team members has a code workaround.

After I cleared my cookies, I changed the name of the FormsAuthentication cookie in my web.config, and the problem has not happened again.

I run DotNetNuke in my main directory (, and have dasBlog set up as a separate application in a subdirectory (  This error arose after I had logged into my blog site and edited posts or other admin functions, and then tried to log into my DNN portal.  If I manually removed the single cookie for my site from my cookies folder, I could log in with no problems.

Even when I tried setting the path attribute of my forms tag in the web.config for dasBlog, I still got this error.

Very Sweet Open Source DNN Calendar Module

I stumbled across a really sweet calendar module for DotNetNuke today–the AVCalendar from  It’s open source/donationware, and is the best DNN calendar module I’ve found yet.  It supports multiple calendars, which you can arrange as master/child, and an additional calendar list module that lists events from one calendar.  It handles recurring events, and events with limited enrollment.  You can also set a charge for enrollment, and use PayPal for admission.  Weekly and Monthly, as well as etailved views, and there’s an option to add the calendar event to a VCS-compatible calender app such as Outlook.  Definately worth a look.  I’ll be adding this to the BADNUG site shortly as we plan our next events.

Review: Professional DotNetNuke ASP.NET Portals

My latest ASP Alliance article has been published: Review: Professional DotNetNuke ASP.NET Portals

DotNetNuke is an exciting open-source portal application, full of features and potential. Unlocking the application’s potential through custom modules and configurable skins can involve a steep learning curve. “Professional DotNetNuke ASP.NET Portals” has been written by members of the DotNetNuke Core Team (which manages the overall project), and provides an in-depth discussion on what a developer needs to know to install and develop for the portal.

Read the full review at

Click here to buy the book from

Building Websites with VB.NET and DotNetNuke 3.0

Daniel Eagan’s (from DotNetDoc) book Building Websites with VB.NET and DotNetNuke 3.0 is now shipping.  The publisher is also offering a free chapter and chapter summaries.

A practical guide to creating and maintaining your own website with DotNetNuke, the free, open source evolution of Microsoft’s IBuySpy Portal Create and manage your own website with DotNetNuke Customize and enhance your site with skins and custom modules Extend your site with forums and the best of third-party add-ons Complete coverage of setup, administration, and development




Free DotNetNuke Chapter From “Building Websites With VB.NET and DotNetNuke 3.0”

Packt Publishing is offering a free chapter on module development from Building Websites With VB.NET and DotNetNuke 3.0, as well as chapter summaries for the rest of the book.  Building custom modules for DNN has a learning curve, so this is a valuable chapter in itself.  Since this is probably the most complicated aspect of working with DNN, the free chapter will give you an idea of how good the rest of the book is.