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