DotNetNuke: Ready for Prime Time?

"The delivery boys have been displaced by Comcast and AT&T and Google and Yahoo, and there's no way newspapers will ever reclaim that role." -- Justin Fox, Time

Our group at work needs desperately to have a CMS that is easy to work with for various clients -- especially clients that need to be able to "edit" their own corporate web sites. Basically, we needed to have a CMS with which we could just "plug in" a customizable pre-made CSS XHTML "skin" for a particular industry, and customize it to the client's desires.

So, we all went out and started researching various offerings. Sharepoint was eliminated, it is simply too "high end" and expensive for what we need to be able to do. We looked at Joomla and Drupal, both had their plusses and minuses, but mainly they're interpreted PHP and though we've got PHP people, most of us are hard - core .NET developers. We looked at Umbraco, Rainbow, MojoPortal, Cuyahoga, and others.

It ends up that we settled on -- gasp -- DotNetNuke! I looked at DotNetNuke a couple of years ago and besides my acquired aversion to anything not written in C#, it just looked like there was "too much baggage".

However, the current release (4.8) is very smooth, and I hasten to add that if you look at the project properties, Shaun Walker has Option Explicit and Option Strict both set to "on" - a very good sign. But the things we liked the most:

1) It installs very easily. Basically, if you create a SQL Server database and update the connection string settings, and run the web project, the wizard gets you up and running in no time. And you get a real site with real content that you can start playing with, no B.S. -- and no excuses! The 4.8 source release built perfectly under Visual Studio 2008 with no missing files or errors.

2) It is very extensible. There is not only a big "skin" community of free and "for pay" XHTML - compliant CSS Web site skins, it is easy to learn to create your own. I looked at the one that Lee Sykes did of Andreas Viklund's "Andreas01" and once you peruse the component files it really isn't a big deal at all to do one on your own. Moreover, with the C# Template for Modules from "BiteTheBullet", you can start authoring custom modules pretty fast. This .vsi installer also works with Visual Studio 2008, and it gives you all the possible component files you need to write any kind of module. You can also go into the zip file that gets installed in your C:\Users\<username>\Documents\Visual Studio XXX\Templates\ProjectTemplates\Visual C# folder, and modify the contents, re-zip it, and overwrite the original zip if you know what you are doing. The C# template appears as a project type in "Add New Project". A module is basically a class library with one or more ASCX user controls, along with some metadata files, that can be installed into DNN via the Host or Admin control menu, and it can pretty much provide any kind of functionality you want - RSS, forums, news, whatever.

Holy Cow, Batman! Once I saw that I could write DNN Modules in C# and would never have to type that awful keyword "Dim" again, I felt -- well, relieved!

The whole DNN infrastructure runs on a provider model and once you "get it" you can do any kind of extensibility you want. But the main thing is that once you have DNN under your belt you can use it to provide custom editable web sites for just about any kind of client. You can give them page and functionality templates to choose from, and they can add whatever they need by themselves (after a short learning curve) without having to bother you or pay you extra money. I like that, because I really hate hand-holding; I like to do development. Once something is debugged, tested and delivered -- if I've done my job right -- I shouldn't ever have to hear from the client unless they have a new project for me.

DotNetNuke has a huge developer community and sports some very nifty caching and other options that have been added in the 4.XX versions that speed it up and make it a much better performer than the old DNN that I looked at a couple of years ago. Recommended. Also, the "My Web Pages Starter Kit" mentioned by oarfish in the comments is a good (and much simpler) alternative.

Comments

  1. Whoa there big boy! I've (re-)evaluated DNN at each major release since its inception several years ago, and have had to deploy it for several clients large and small, and on *every* occasion have come to the same conclusion: it's unwieldy to deploy and customise and, most importantly, clients (non-technical people) HATE the admin mode and find it hard to know where to start and what to do when they want to log in and edit content. When a client forces me to use DNN (normally because they've read great things about it online), they often end up calling me for help or emailing me the content to be added/changed, which kind of defeats the object of a CMS, wouldn't you say?

    For the last year or so I've been deploying for non-technical clients the simple little "My Web Pages Starter Kit" ( http://www.codeplex.com/MyWebPagesStarterKit ), a non-MS, free CMS system which, although it doesn't get much press or blog write-ups, I find much nicer work with and easier to customise and add/edit skins, as well as being quicker and simpler to deploy than DNN. And, most importantly, my clients find it easier to administer and add/edit content than DNN. Also, it's written in C#, has a clean modular design, several useful built-in modules, and offers about as much extensibility as DNN to boot.

    So, before you go down that DNN road, why not take a look at MWPSK and see if it will work for you and your clients.

    P.S. I'm not affiliated with the MWPSK project; just a big fan.

    ReplyDelete
  2. I'm currently going through the pain of making DNN XHTML compliant. You absolutely certain you got your site to validate as transitional/strict without patching half of the framework? Half of the default modules emit tables all over the bloody place by default too. If I ever meet Shawn Walker in a dark alley I'll be sorely tempted to beat him to death with a printout of w3c.

    If you want a .net CMS that is actualy capable of doing xhtml strict without rewrites, try www.umbraco.org (validates xhtml strict) not www.dotnetnuke.com (fails validation of html4 with 300+ errors).

    ReplyDelete
  3. Good comments.
    @Duckboy: I've gone through a couple video tutorials on "Fixing up" DNN so that it is XHTML transitional compliant, but not XHTML strict.

    @oarfish: I've also looked at the starter kit and I guess I should probably go back and look at it again since the jury is still out on DNN.

    ReplyDelete
  4. Anonymous2:42 PM

    Keep us posted on how it goes. I've tried it several times for small projects with mixed results. The feature set is no doubt extremely rich, but I found that you have to spend serious time with DNN in order to do keep it going and make tweaks to it. It sounds from your post that you guys are committed to this so your mileage might be different.

    ReplyDelete
  5. Yeah, well this is the thing- making DNN "reallyreallydumb" for clients so they don't go bonkers trying to add or edit a page. I did look at MyWebPagesStarterKit and it is really nice- extremely simple and easy to use, doesn't even require a database.

    ReplyDelete
  6. Umbraco is also recommended from my end. Implemented for multiple clients and always happy with the clean and powerful results. I've also fooled around the starter kit (hooked in with SubSonic which is great), but Umbraco is still by far our fave.

    ReplyDelete
  7. Hmmm...reread the earlier post and the "starter kit" refers to http://www.codeplex.com/MyWebPagesStarterKit. Haven't tried but will now go take a look.

    ReplyDelete
  8. I downloaded Umbraco again today from codeplex (the sources) and tried to install it from a built solution, and had issues. I'm going to download the MSI and give that a try tomorrow and test it out. Time permitting, I'll post my findings.

    ReplyDelete
  9. Anonymous8:41 AM

    Umbraco can't run under medium-level trust environment which most of hosting providers enforce. However MWPSK can, and the second point is MWPSK can use XML instead of and RDBMS

    ReplyDelete
  10. Anonymous11:20 AM

    A lot of the XHTML compatibility comes from properly crafted skins.

    The front-runner for any .Net-based CMS is Kentico, IMO. We've been using it for almost 8 months and haven't run into ANY brick walls...period.

    ReplyDelete

Post a Comment

Popular posts from this blog

ASP.NET: Loss of Session / Cookies with Frames

FIREFOX / IE Word-Wrap, Word-Break, TABLES FIX