Should we build our next generation web application on the DotNetNuke platform?

DotNetNuke can be a powerful platform. Most people who bash it haven't actually used it for anything, but just know that it was created a long time ago.

I can give you a couple pros and cons to look at. The major advantage of using it over other CMS platforms is that it's a very mature platform with a pretty big community around it (Snowcovered for example). For most tasks, it's either already built in or there's already somebody out there that has built a module to do it. Its architecture is already built to support caching and a farm configuration for high-availability applications, which would eliminate a major headache if you're looking at a high volume of requests.

The place where DotNetNuke could disappoint, though, is when you need to do multi-step processes in your modules. This is probably true for any CMS, but you'll feel like you're jumping through hoops to try to get multiple, separate modules to give a "tight" user experience. I don't really have a concrete example for this - it's just the feeling you get from the experience where everything is in its own "container". The other thing is that out of the box, it just doesn't have a Web 2.0 look to it. You can customize skins and stylesheets to do just about whatever you want, but for some reason this just hasn't been a big priority for the DNN camp as a whole, as much as it has for Drupal and others.

So I guess if I had to make a summary, I'd say if you are looking for a quick way to get a customizable CMS up, and you're comfortable with the limitations of CMS platforms in general, then go for it. However, if your UI is the most important thing to you and you're willing to spend a LOT of effort to make it exactly what you want, then create your own application using ASP.NET master pages and the like.


eee, DNN? Really?

I'm opening myself for flames here but it's a product which was built for a different, less-civilised age (VB.NET, poor I18N support, no msterpages). Better frameworks exist even natively in ASP.NET now, and better CMSs in things like Drupal. I think it was pretty good at getting us through the pain of ASP.NET 1.1, but I think the answer to your title question is "No" these days.


I have worked on several DNN projects. There are a few things that I always seems to get stuck on.

The first thing and maybe most important is the menus. The built in menuing and the purchased menu modules all were very limited and difficult to use. We used xml transformation to present create the html for the menus. However, the xml that we got returned to us was a flat xml file. Meaning no use of hierarchies, which limited some of the sub-menu things you can do. So Level 0 to Level 4 menu items were all siblings of each other.

Secondly there are in many modules out there to choose from. If standard DNN doesn't do something there is most likely a module for it. However, the quality of these modules varied wildly from module to module.

Last, in the case that you need a module to do something specific and need to build one yourself. It is not that intuitive as to how to do it, and the process changed between the version of DNN we used for two different projects.

I would say that if you are willing to really learn DNN, it can be a really useful tool. But if this is a one off project I think it is better to leave it alone.