Why DotNetNuke Sucks

Why DNN sucks?

From the time you download it, to actually start using it, you start to notice how poor it is…
DNN Site itself is sloooow….granted many users possibly

Installation

Installing DNN sometimes does not always work…errors galore throughout different parts of the installation for example 5.1.2 (or 5.2.1 doesnt matter exactly, many versions have install problems)…if one thing works, another doesnt, and so on….

Administration

Administering DNN sites, with the ugly vanilla admin interface that looks like its 10 years old, it’s slow to work with.. It seems that the design is somewhat tightly coupled with the content editing. DNN has an In-Place editing where content can be edited on the page, however this is the *only* means to edit content…

Content Structuring

In other modern CMS’s, content can be structured within a hierachy, with access to pages via aliases or id’s to link to another page on the site from within content (from anywhere) to another content page….DNN….egads…..what a joke.

Customisation and Development

Developing for it….omg, this is probably the worst thing about it (though it has so many bad qualities, its hard to pick which one is worse)…developing skins the DNN way is slow and tedious, other CMS’s such as Umbraco and ModX for instance have excellent templating systems using masterpages, xslt to perform advanced user interface designs.

  • Documentation – or quality of it, lacking, no API in one area, bits scattered
  • Community Support – not typical open source, seems guarded around their product in order to _sell_ more support
  • Skinning – Antiquated and tedious to create skins..
    Take for instance code behind, well on DNN forums, they recommend keeping code within the template itself, rather than as a separate code behind file, back to good old classic asp mixed html soup.
  • Modules – While docs are provided, it requires a module for basic user interface features
  • Bloated – from the JS and HTML output, through to the core architecture and SQL Server sprocs, it just seems a huge tangled mess that is just running….not well though…with bugs left unfixed for years, implementation still todo…
  • Caching – having to implement our own caching to fix dnn’s silly caching is jut not fun

Skinning

  • DNN Changes ID’s within templates to add “dnn_” prefix, for example: “mydiv” becomes “dnn_mydiv”, meaning your xhtml layout using id’s will break!, they recommend using classes for layout panes….pathetic….while asp.net does this, it does not mean any cms should
  • The whole skinning process is so convoluted and outdated….while I can build a template/skin in other CMSs straight from an HTML template within hours…DNN has to be researched, reviewd, created than parsed, with specific limatations.
    • Dont use ID’s in skins, ie “#mydiv”
    • Don’t use absolutely positioned divs for content panes (it breaks the default menu in dnn in the admin area)
  • While they claim flexibility, it’s all nonsense..

Oh damn, where to start, the forums encourage worst practices with skins, for example code-behind should be within the skin itself (rather than separate code-behind file), back to classic asp+html mixed soup. While there shouldnt be business logic within the skin, it can definitely turn a skin file into a mess depending on the U.I complexity.
No nested skins, all layout panes afaik need to be within the main skin, we cant use nested user controls that contain panes to define layout areas within the page….thereby reducing redundancy.
When developing HTML skins, what the DNN skin parser does is strips everything outside the <BODY> tag, that’s because DNN uses a global default skin container for all portals, while this is admirable in some respects to share global containers, it’s not ideal.
Also DNN loads skins according to it’s own naming, for instance, skin.css, portal.css, which means that your portals often need to override default values specified in the css heirachy. not nice for designers..
DNN Has a habit of rewriting default style links (for instance css etc) to match the current skin directory, while this has benefits I would prefer to place in a token or something where I WANT them replaced, not just where it decides it wants it.
Another thing I noticed with skinning, DON’T use absolute positioned divs as content panes, what happens in the admin (DNN 5.x.x) is the settings menu pops up somewhere else on the page…pita….forget css layouts that require absolute positioning……what kind of a joke system is this…..

Workarounds, Modules Galore

DNN has so many workarounds, hacks, modules and documentation for how to do things, the problem is though at the core of DNN itself, it’s not intuitive, you can’t just think logically how you would normally do something and apply it, with DNN you have to search, review forum posts, look at documentation to find out how to achieve things in it…..while this is true of any CMS, with DNN its absurd, even minor presentation things may require a module, or some obscure searching to find out how to do it…… yet in other CMS’s you can apply a structured approach that can be repeated relatively easy.
DNN has so many modules by third parties and the like, but many of them are plain pathetic, and the worst thing is, they expect you to pay for them, you need a module to list news items, list announcements, have document mangement etc, many basic things that other CMS’s cover.

Performance

Want to know one of DNN’s strong points, well performance definitely is not it…in fact it is absolutely terrible in terms of performance, it’s slow slow slow…..caching is troublesome to say the least. Our company has had numerous issues with DNN’s caching…

Future Progress

DNN requires you to learn its skinning, which doesnt use master pages, its module development, not exactly transferable skills to other projects.

Other Opinions

There is always going to be advocates for DNN, they will say things like, you just have to learn how to use it and become more knowledgable in order to build things for it…Bullshit!! Here’s why, if I can spend half the time learning something else and delivering a better final product in less time, stress and pain, than why should I even bother using it. It’s going to cost me less to build and deliver in something better.
The more I work with DNN (going on 4 months now) the worse it gets…..no system I have ever used in the past has ever been like this…they generally get better….but with dnn, I find holes, more holes, and than some….
DNN Forces the developers to work within it’s tiny box, rather than working for the developer.
Where it may take a week to setup a DNN site, would likely take me a day or two, something that takes a month in dnn, generally a week….producing better output on the better system….by smaller and more valid xhtml
Perhaps I’m biased, I’m biased to something I can administer, something I can develop for, others can develop for, something that has a decent templating engine, that performs as a CMS should, something that I could present to clients that they would actually want to use….I would be ashamed to even recommend let alone implement any DNN based sites to any clients….

  • DNN is a serious time waster, it affects the bottom line to a significant degree thats not even funny.
  • DNN is frustrating on many levels, development, design, skinning, module construction, deployment, compilation, and than administration, it’s not stable, and does not feel stable in use.
  • If anyone says its because there are no alternatives, it’s because of one or more of the following:
    • Seems like too much of Risk – Usually fear
    • Rather go with what you know, even if that is costing you more in both short and long term.
    • Lack of knowledge – They havent used other products, developed with them and so its a case of “If all you have is a hammer, than everything seems like a nail”

So why is it so popular?

Consider this, DNN started many many years ago, back in 2002-2003 (based off IBuySpy Portal) which is a long time for the internet, at the time there was very little if any .Net based cms systems around, so therefore people started using it (in the age of asp.net 1.x), it must of spread like wildfire I’d imagine with very little competition in the open source space…so It’s had time to grow, although here’s the problem, it’s grown, and grown and grown…..but not in an architecturally sound way…by the looks of it, it has not improved but just become more bloated and slower.

Bad for Business: The Bottom Line

DNN costs more in both Time and Money.
1. It simply takes longer to develop for, modules, skinning, installing
2. It injects its own js and html, therefore its more of a struggle getting designs implemented as it messes with the page output.
3. Store Brought modules usually have be modified anyway to provide greater customization.
4. Developers find it frustrating to work with, this affects productivity over a period of time. Take a look at the ANTI DNN forum posts scattered around, they are mostly development related.

In Comparison

“If all you have is a hammer, then everything looks like a nail”


For companies that have not used many systems, or dont keep up to date on different CMS systems out there, they may believe that what they have is the best option. After all if you dont know of anything better, that doesnt mean that better does not exist.

I’ve worked on lots of CMS in both PHP and ASP.Net, by worked I mean researched, reviewed, implemented and developed for, some over a period of years, so I understand the differences, and I can spot the benefits, and drawbacks of a system fairly quickly.

Well, I believe MS have some very smart people working for them, and they would have evaluated many products thoroughly before deciding on one. Having said that, I have built several websites in umbraco, and some in DNN, and to be honest umbraco is superior to DNN on many levels, performance, custom development, templating, administration and content management. it’s closer to native asp.net development combined with an excellent CMS which allows structuring of content from within the CMS itself, whereas DNN requires Modules for practically all custom structuring

Conclusion

Personally, I think that anyone who uses DNN with the intention of developing customized high quality results is sorely going to be disappointed and is being ripped off….how so, its FREE, well there are many other open source products (truly open source, not this half assed attempt at it) that are superior to DNN on so many levels. One good thing about DNN is that once using it than migrating to something else you will definitely appreciate the other system much more.

I think it’s suitable for a portal that has lots of things in it, for semi-developers that just want to use 3rd party modules rather than customizing it to a great degree. Who dont care how the admin interface works. Who want to pay for low quality modules. And generally want to spend more time delivering final working products.

Check this post from 2004, about why are dnn sites so crappy, this was 6 years ago, in that time other systems have started from scratch, and already proving better and more popular.

Other Articles about DNN

http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/118/postid/350670/scope/posts/Default.aspx

http://forums.whirlpool.net.au/forum-replies-archive.cfm/1251749.html

http://www.nathanm.com/dotnetnuke-sucks/

http://deanjrobinson.com/article/dotnetnuke-not-good-enough/

http://geekswithblogs.net/TimH/archive/2006/08/23/89006.aspx

http://blogs.xd.com.au/2009/12/30/how-will-dotnetnuke-rate-as-a-cms-in-2010/

http://somenewkid.blogspot.com/2006/01/why-wonky-wheel.html

http://www.joesak.com/2008/04/23/why-dotnetnuke-is-terrible/

Microsoft using UMBRACO for new ASP.Net Site (find Umbraco in page)

http://weblogs.asp.net/scottgu/archive/2010/01/24/about-technical-debates-both-in-general-and-regarding-asp-net-web-forms-and-asp-net-mvc-in-particular.aspx#7321918

Advertisements

25 thoughts on “Why DotNetNuke Sucks

  1. I stumbled upon your post while searching for some other information about DotNetNuke.

    I started out trying to understand what part of DNN you didn’t like and ended up laughing about all the misconceptions and mis-statments you make in the course of a single article. We have evaluated almost every CMS out there and we only use two. DotNetNuke is definitely the first choice.

    I guess you beleive you are a super-developer and a purist who thinks that your opinion matters. In fact, you think it matters enough to create a blog about this one topic.

    i suggest you read this article:

    http://webmasterformat.com/blog/dotnetnuke-vs-kentico-vs-umbraco

    Even though it is only six months old, DotNetNuke has released signficiant updates (not because, as you state, it was crappy), but because they have a standardized development process that ensure consistent and quality releases.

    BOC

    1. Actually I’m not a super developer though I have worked with many super developers, designers, and web related people over the last decade. I know developers who left their jobs because of DNN, they simply couldnt stand it anymore, even if everything else was good.

      May I ask what is your specialty?, are you a developer or web designer?

      1. “I know developers who left their jobs because of DNN” – I couldn’t agree more… I have 12 years experience of web and application development; and DotNetNuke was certainly the reason i decided to quit IT altogether.

        DNN – The Suckiest piece of Bloatware available today.

      2. In response to BOC… I too am one of the many who have become totally disheartened with the Piece of Junk they call DotNetNuke… After 4 years of working with this CMS i can only conclude that is best left well alone…

        The only main fix i can suggest for DNN is to DELETE THE WHOLE DAMN THING

      3. I honestly can’t think of why ANYONE would like DNN. Ever tried to use a computer while drunk? That’s what it’s like to use DNN sober. It makes me want to punch babies.

      4. I am one of those developers you mentioned that left their job because I had to deal with DNN and a boss who thought that it was the best CMS ever created.

        There are just so many reasons why it should be avoided.

        Presentationally it was a disaster, though this did improve slightly after 7 was released.

        Even on a small scale site, slower than any other CMS I’ve ever used, and our server was enterprise class, multi-core with a ton of RAM.

        Third Party modules were/are for the most part, if not always, absolutely hideous both visually and functionally and generally stupidly expensive for enterprise licences.

        The only module I came across that made DotNetNuke even remotely usable as a CMS without having to resort to building your own modules, was a Codeplex project called 2SexyContent, which ironically was free – not the prettiest as I remember, but it did a _far_ better job than many of the paid modules.

        Fortunately, I’ll never have to build another site with DotNetNuke ever again.

  2. Totally agree! I’m not a developer. I am the end user who works in a communications/PR role for a government agency. Updating our site is doing my head in. Simple edits can take hours. Sad thing is our site has just been redeveloped (just before I moved into this role) and there are 8 other agencies who are ‘patched’ into the same structure (might compound the problem?), so I don’t know how we can fix it! It’s a really large site.

    I built my own sites previously inHTML with DreamWeaver which had some lovely features, so the end product was very professional/slick.

    Because the editing is DNN so SLOW and the editing interface is revolting, I don’t want to touch the site and there’s a lot to be done on it :o(

  3. I am in software business for 15 years or so. Got many successful projects in C/C++/Java. Last couple years I moved to .NET platform. Got 5 projects done. Except one. Client was as he used to say ‘married to dot net nuke’. And we failed. No matter how good developers are and how sharp skills they have development under dot net nuke take ages. And nothing works there, always exceptions somewhere in deep in DNN layers.

    So there are 2 types of developers: that can lead and do something and shadow followers. So if you shadow, choose DNN. If you are bright and free minded choose MVC. Just stay away for idiotic frameworks like Infragistics, DNN etc.

  4. Having had experience of using DotNetNuke for over 4 yrs in a commercial enviroment (Web Support) and aprrox 2 yrs using for hobby sites (Self Install and maintain) I can not agree with most of the negative comments concerning this CMS, It is highly functional / customisable, and very very stable, all for free (Community Edition) I love it,

    Small Ecommerce and also brochure websites can be designed, built and deployed the same day, with just a few tweaks needed to complete.

    If it is running slow for you take a look at your Hosting Provider, If you need to be able to develop skins / designs quickly there are tools available to purchase (Artisteer) and a great community for free support.

    For what it is, and it a very poweful C.M.S. that is for free, I have not found anything that would make me change to another C.M.S.

    Good Luck.

    1. I spent 2 years as a fulltime software engineer working for a fairly large corporate with over 100 portals in DotNetNuke everyday, inhouse servers in dedicated server rooms and environments, experienced administrators to optimize, configure, and manage DotNetNuke based sites, granted they were high profile, high traffic sites. I can build skins and modules from start to finish and understand it very well, thats why I know how bad it is in comparison to the other CMS sites I’ve implemented in the past.

      7 developers, we had annoying issues with it daily. 3 Developers left due to getting sick of having to develop for it. It outputs its own client side code, JS, CSS, mangles HTML. Has a proprietary skinning engine with no tangible benefits over standard .net masterpages which have been out a long time, which simply takes longer to create, poor architecture, code is very poorly done in many areas. The quality of many third party modules is rubbish. And up until v6 they had the most atrocious administration out, looked like something 10 years old. It was well known how sluggish it was, even for small sites (though this has improved)… DNN is playing catch up to others.

      Take a look at any DNN site, dnn js, dnn xml, dnn css, this would have been fine 10 years ago, but its 2012 now. The only js,css,html that should be spit out by any CMS is that what the developer intends. And yes out of the box, modern CMS’s work like that.

      What about DNN is powerful?

      If it suits you, honestly thats great, though thankfully, I’m never going to go near that garbage if I can help it again.

  5. Thanks for that, all fair and valid comments from your experience with DotNetNuke, you obviously have a lot more experience than me, and more bad experiences with DNN than myself.

    Working as a fairly small operation we ran two DNN platforms, one paid and one free, if I remember correctly we had over 30,000 registered members on the unpaid platform, not all completed the process and built their free sites, but a lot did, we had a lot less users on the paid platform.

    With a small team of staff, one excellent coder / developer, one web support and one graphic designer and a marketing person we kept it going well for over 4 years.

    Obviously problems at times, but all seemed to get sorted very quickly, as I say, we were fortunate to have an amazing Coder / Developer of our platforms, who happened to be the M.D. if he couldn’t make it run well I don’t think anybody else could.

    DNN for me is one of the best tools for web deployment with my limited experience, and to be honest I enjoy it for what it is.

    Many thanks.

  6. Amen – I recently inherited DNN site and it is the absolute worst piece of garbage on the planet…

    test to prove point: add an item to a drop down list. then google how to do the same. the responses alone should cause any merchant to shoot the first developer to suggest DNN. Garbage, freaking GRABAGE!

  7. I’m the primary creator of DotNetNuke’s skinning engine. I once was proud of that. At the time, being able to skin ANY CMS was a big deal. I’ve heard rumors that Microsoft modeled Master Pages after DNN’s skinning engine (It IS a very similar concept.) If that’s true, it makes me a major contributor to Master Pages. Something to be proud of, right?

    I can’t say I’m proud of it any more.

    I was a member of the DNN Core Team for several years. When Master Pages appeared,
    I recommended re-factoring to use Master Pages to make skin design easier. Rejected.
    I advocated comprehensive documentation. Rejected, because other team members were making money selling how-to books. (BTW, the Skinning Guide document that comes with DNN is still 90% what I wrote back in 2002. It’s pretty much useless today. Even I have trouble figuring out the changes today. Not a great achievement in documentation.)
    I submitted a fool-proof, 5-line block of code based on ASP.NET best practices, that would keep the massive “Viewstate” in server memory. It was turned into a thousand-line caching class that breaks Ajax calls, so it can’t be used most of the time.
    I wrote a short routine that makes sensitive information (like e-mail addresses) unreadable to spammers’ search robots. It’s still in the core code, but it’s not called by any part of DNN, and it’s not documented.

    I lost interest and finally dropped from the Core Team after nearly 5 years.

    I keep going back to DNN because it’s the most mature. I know it inside-out, so I can make it perform “better,” but not as it should. It does have the largest library of available modules. Too many of them are half-baked.

    DNN still runs on a massive set of stored procedures, using Reflection to populate objects from SQL DataReaders. While handy for developers, it’s a major performance hit. There is no provision for new, faster, easier data access technologies, like the Entity Framework.

    DNN is dated, and the powers that be don’t seem interested in bringing it up to date.

  8. I make my living with DotNetNuke. I can get it to do pretty much anything and I am not a developer, I stick to third party modules. The modules from Ventrian.com make DotNetNuke worthwhile, if it was not for Ventrian, DNN would be a total waste of time. I build websites using DNN and I am pretty efficient at it and when I am done I train the client how to do the day to day content updates. The problem is, no matter what, the clients struggle with this platform doing the most simple things. DNN 6 came out and I thought it was better, then 7 and I thought finally an end to the UI woes but each version only gets worse. I want out!

  9. I couldn’t agree more. As a front end developer who loves their career, working in DNN made me hate developing. It’s by far the most outdated, inflexible and frustrating CMS out there. Perhaps even more frusting is the editing side for the user! In the end I left my job because of DNN. People that choose to use it over and over are really shooting themselves in the foot and need to open their eyes.

  10. Have a wordpress problem? Use Google and get the solution quickly.

    Have a DNN problem? You better have money to hire another company that specializes in DNN, cause that’s the only way your gonna fix it.

  11. First, associate a date with your blog. Yes, I can see it in the URL, but come on, be the pro you think you are. Second, DNN bashing on wordpress.com? No brainer why you’d NOT be in favor of DNN.

    Still, I have to agree that DNN sucks. By the same token, WordPress sucks, too. I’ve worked with both, and both are so full of security issues (ever try to get DNN running on a DoD server?) that it’s not worth working with either when it comes to anything other than casual blogs.

    1. Hi Ted,

      Yes, when I created this blog was several years ago, after spending over 2 years with DNN, this is coming from a background of PHPNuke, Xoops, Modx, Mambo, Umbraco, Sitecore, Sitefinity, among others, and yes WordPress, However the only reason I used wordpress in this instance was to get something simple up and running quickly, therefore wordpress hosted was the best option. However as a CMS I would tend to compare Umbraco or Sitefinity to DNN, both superior options.

  12. I’m trying to decide whether or not to stick with DNN, our company site is over 200 pages in 3 different languages so to start from scratch with a new tech would be a big job. But as I am a front end developer perhaps I am better off trying to learn PHP and use WordPress, however we are a Microsoft partner and convincing the IT guys to run a PHP server is not going to be an easy job….

    1. Why not try out umbraco, than your company can keep hosting with .net, I’ve found WordPress is ok for smaller sites, however more complex requirements would suit umbraco or even orchard.

  13. I have been developing for a solid 10 years with the majority of my experience originating for dealing with CMS’s, DNN, Joomla, Kentico yup all good when you want to put up a nice hello world type basic system and addons comes with an insane amount of poor choices , bad unoptimized code that does not quite do exactly what you want (or sometimes it does until the software owner changes their mind and quickly needs you to adjust something)

    The most solid customizable dynamic software I have ever worked with is Workbrain (yes that very expensive software that runs HR for Walmart “not sure if it does anymore”) and wait wait hold your horses before I get bombarded with a whole bunch of workbrain critique , yes I know it has serious serious gaps in its usability and standards and having worked with some of the code first hand I can say its because deadlines where priority over sound software design descisions and the software became a massive patch job , but what I am trying to say is it was started with an excellent idea (with very little rounding off work being done).

    The point of my post is to lift out that CMS’s are sometimes coded with only certain purposes in mind anything after that becomes a bloated , slowed down, messy code nightmare where developers hope they can switch jobs prior to their jenga tower collapses.

    Until some real tech geniuses come together and build the ultimate CMS it is best to write huge software solutions from scratch

  14. I am a .net developer of 13 years experience who has built 2 .Net CMSs from scratch – these are used on our clients websites. On our main production server we have 34 sites running on these CMSs – on another server we have a DNN (Evoq) site, plus its staging brother – both servers have the same spec. The DNN alone w3wp memory usage is 1gb – thats just the live DNN and staging DNN sites. On the production server – 34 sites remember – most of them larger than the DNN site – the total w3wp memory usage is 700mb – plus the DNN server/site is dead slow – if you hit the web.config and request a page you get a memory exception – DNN is a JOKE and avoid it like the plague!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s