DotNetNuke - Not Good Enough

Background

It all started with a tweet, the intention wasn't to cause trouble, but to simply highlight what I thought of the contents of the post in question. I got a reply surprisingly quick from the co-founder who suggested "It is easy to take a shot at someone in abstract...", and then "how bout a real discussion on the merits or lack thereof of his points". Ok, let me elaborate.

Disclaimer
I'll get this out of the way now, this is my blog so I'm entitled to my opinion, but so are you. If you don't agree with my opinion, that's fine with me, I don't care at all. However, if you've never tried to use/customise/configure/upgrade/install this steaming p.o.s. then hold back any disagreement with me until after you have. Note: I'm not forcing you to try it out, that would be mean..

Retort - ask and ye shall receive

Those who work on DotNetNuke seem to be constantly defending themselves over the openness of their open-source project, so much so that I'm sure there are more defensive efforts than actual attacks. Despite what I think of their "openness", I'm not here to specifically attack how open it is. Well not to begin with anyway, we'll see what happens once I get going.

Much like Tony said some of their statements are broad, sweeping generalisations of little substance, I think the article was intended to defend their stance as open-source, but if anything it kind of makes them appear as though they are just looking for excuses. There are a few brilliant pieces in the article that are more than worth further comment, take for instance these 6 different 'open source' interpretation examples that were given...

To a Developer. "Open Source" means the "collaborative and open / transparent development of software"
To a Technical / Product Executive. "Open Source" means a "better software development model"
To a Business Executive. "Open Source" means a "new and better software business model; software distribution model; or software sales model or some combination"
To the linguistically inclined. "Open Source" means "software that is open; i.e. software whose source code is open"
To the Customer (Technical). "Open Source" means "software that is open, reliance and that can be easily enhanced or maintained"
To the Customer (Business). "Open Source" means "reliable software that provides greater value/dollar that everybody seems to be talking about"

So thats what they got from different groups of people. Interesting, I would thought that to defend something you'd provide examples that support the type of things that you do, or at least word them so they sound like they were supporting you. Maybe they actually believe they are doing some of those things.

Overall those examples are probably fair enough, but in relation to DNN all they do is highlight what they don't follow.

  • collaborative and open / transparent development of software - opaque, translucent maybe, but transparent?
  • better software development model - a model where massive bugs can remain unfixed for over a year is simply brilliant, why didn't I think of that.
  • reliable software that provides greater value/dollar that everybody seems to be talking about - yeah, ok, so DNN is free (not taking into account how much the MS platform it runs on will cost you to set up, and then there is paid-for modules, skins etc), but "reliable", yeah, not so much, kind of falls off the face of the planet on that one. Even the DNN project site itself is quite often down (or hideously, unusably slow), which is awesome when trying to use the broken forums to find support on something that no one except the developer knows anything about, and even they don't apparently care too much since they haven't updated their broken module for a year. To me the 'value' of free software is very little if it doesn't work, as it quickly becomes "un-free" once a developer has to be paid to fix it.
  • software that is open, reliance and that can be easily enhanced or maintained - yeah... see above.

From that they drew this genius conclusion:

Who is right? Everybody is right in their own way. Then again, Nobody is right --- when viewed from the others perspective. ... So, what does open source mean to DNN Corp? From our perspective, we don't want to get caught up in the linguistics of open source. For us, open source is a means to an end.

I think when they said "other perspective" they meant "our perspective". They "don't want to get caught up in the linguistics of open source" which from their definitions above indicates that they don't care much for "software that is open; i.e. software whose source code is open". Well, thats just peachy. As for their "means to an end" comment, well, more on that later.

To and fro

The follow up to the "sweeping generalisations" tweet mentioned above was this reply:

That blog is not written by a coder, but rather by the DNN Corp CEO. You are likely not the intended audience for the msg.

So who exactly was it aimed at? Was it intended for the decision makers, higher executives, those who don't necessary know better, those who hear "open source" and think "that means free, lets do it", those who like big words or those with a weakness for believing every fluffy justification dropped in front of them...

Ok, I can (kind of) see why you'd do that, but do you really think they are the ones who are going to be reading the post? I only read it because I was trawling through the numerous blogs in the hope of finding something useful like the announcement of a new module release or 17 that might fix one of the many issues I've found, and I imagine I'm not the only one who's done this. Not to mention that it would most likely be the "coders" who were the ones raising the questions around the open-source-ness of DNN in the first place, which should then mean that they *are* actually the intended audience.

Meaning of means to an end

Ok, back to that "means to an end" comment from before, the 'end' for DNN is:

first, to ensure that DotNetNuke becomes the defacto standard for building web applications (web sites, intranets, extranets etc.) in the world - first on the Microsoft stack, and then elsewhere;

ROFLMAO. Seriously guys, how getting the thing to a point where people should actually consider using it on a grand (or even tiny) scale before working on world domination. If DNN ever becomes the the de-facto standard I'm leaving the industry and joining the dying trade of hard-cover book-binding. A book knows its a book at least 99.9% of the time, DNN isn't sure exactly what it is - its a web-thingo with many very split, psychotic personalities, none of which are dominant.

second, to ensure that we enrich all the participants in our ecosystem - we have done this so far from a product / technology perspective - we intend to take that to the business side of the house as well

Ok, who are these 'participants' in your 'ecosystem'? and what have you done from a product/technology perspective? Out of interest, what are your 'participants' thoughts on poverty, starvation and depression? Is there a module I can download for those too?

Value, right...

The article then states that the bottom line for "open source" is how much value the project has added to the economy or market eco-system. Apparently because they've got 5.7 million downloads, 450,000 live instances and hundred of thousands of users and developers they are far superior to the "pure" open source projects. For those that haven't read the post, "pure" is basically just a term they grouped normal open source projects under. They pose this question (which is no doubt rhetorical)

How many so called "pure" open source projects have added comparable economic value? We rest our case!

Come on, do I need to begin no this one? Who are you comparing yourself to? What are you basing your claims on? Who are you trying to fool? Oh, right, those who don't know better. I rest my case.

...Actually, no I'm not resting it just yet, I'm not quite done.

The tag line

From the DNN homepage:

DotNetNuke is the ideal platform for building professional websites with dynamic content and interactive features.

If by 'ideal' they mean 'wrong', and by 'professional' they mean 'amateur', and by 'dynamic content' they mean the use of ajax features which cause the entire page to reload or break, and by 'interactive features' they mean, ah, umm, not sure what they mean... then yes that's a great tag line.

Module madness

Remember that module I mentioned above that hasn't been updated for over a year? Well its the core Forum module, and it was last updated October 16th 2007. What's more the bug (one of several) results in this (note: that is a screenshot of the DNN support forum on DotNetNuke.com - good to see them eating their own dog food). I can't whine about the forums and not mention the table structure, oh how I love tables. Check this piece of genius work out. Useless nested tables make cute kittens die.

The saddest part of all that, is that despite its flaws the forum module is actually one of the more reliable and stable core modules, most of its functions mostly work (most of the time), sure it's ugly as sin, poorly laid out etc, but what part of DNN isn't?

The forums other main issue is that they put things in places where they don't belong, for example, just about every forum I've ever used puts the reply/quote/etc links at the bottom of each reply, DNN, it puts them at the top. Now this wouldn't be a huge problem if the templates could be changed without having to recompile the modules code, but they can't. Well the admin screens can, but all the public facing stuff can't. Super.

Dicking around with Documentation

You thought a one year old module was bad, how about documentation that hasn't been updated for almost three years, and is yet renamed with each release to give the illusion that it has been. Don't believe me? Go download it for yourself at the DNN site and see what I'm talking about. You can open any one of the 27 pdfs they provide and you'll find 'last modified' dates of anywhere between April 2006 and August 2006. Several with useful comment like "applies to DotNetNuke 3.3/4.1"... this is in the DotNetNuke_05.00.00_Docs.zip package. Oh c'mon guys, give us a break.

(un)Support forums

Do a quick search (if the search functionality is working) around the DNN support forums and you'll notice a few things. Threads that ask for support rarely result in any useful help being given, and quite often end in "no it doesn't do that" or "we'd like it to do that in the future". And that goes well with my next point.

I'd actually hoped to point to you specific examples to prove my point but at the time or writing, you guessed it, dotnetnuke.com is down for maintenance, and apparently ha been for a couple of hours.

Being a web standard would require you to follow web standards.

Even getting close would be nice, take a look at what the output from the W3C Validator looked like when I passed DNN though it while back. 1054 Errors kind of says it all, I think this was running 4.8 or 4.9 at the time, and interestingly it reported less errors when checked as html4, and even less again when checked as html3.

Incessant use of tables for EVERYTHING, is a down right pain in the arse, and even in the forum module where I was willing to accept tables as being appropriate they go and do stupid shit like this.

It is now the year 2009, I think you can start to let people use more than 216 colours. Restricting colours to hex values that contain the characters 0,3,6,9,C,F is so 1994 its not funny. Even worse is that this is still an improvement from the stupid select box colour picker they'd used in the past (think a normal select box, but instead of text values its just colours, no indication what the hex code of the colour you're selecting is.)

Stop trying to be everything to everyone

For the love of all that is good and holy, please stop. So DNN thinks it can do blogs, forums, news, chats, polls, events, wikis etc all at the same time making it better than everyone else, but truth is that it doesn't do any of them anywhere near the level it needs to in order to be effective, let alone to get anywhere near its goal of becoming the "defacto standard for web applications". Using a product simply because it give the appearance it can do everything you need it to is a stupid idea. There I said it.

For example, if you want a blog, install WordPress, Moveable Type, Habari, TypePad or one of the other dozen decent blog packages out there that actually has all the features you need, has decent documentation, has a good community around it, and most importantly works as advertised. Importantly if the blog is central to what you are going to be doing, don't choose DNN.

The same goes for forums, news and everything else, find something that does the job correctly, don't just choose one product because it kills all you're birds with one stone. It's only capable of that because it's a huge fucking stone (and about that useful).

DNN is probably has the potential of becoming a system worth using, but until they focus their attention on fixing the countless bugs, and providing the features that people expect, and get, from much 'younger' projects, instead of writing books about DNN and silly blog posts defending things they shouldn't have reason to be defending, then its a long way from being worthy.

Conclusion

Ok, so I've cruised well past 2,000 words, should wrap things up I guess. I could go on, but I won't. Like I said at the beginning, this is just my opinion, yours might vary, and that's ok. If you've never had the pleasure of using DNN, do yourself a favour and request that your local ISP blocks the url so that you never can. If you've used it, you probably won't want to block them just yet because you'll no doubt find yourself needing to wade through the crap in the support forums looking for useful answers. Good luck.

It's definitely not just a case of "Not black enough, not white enough, not open source enough", DotNetNuke is simply not good enough.

I rest my case. ...and get suited up in flame proof attire