Kilone.com





The CMS Report: DotNetNuke

by Omar AlBadri on 10/1/2008 2:49:00 PM

Read the latest The CMS Report where I review DotNetNuke(DNN)....

The CMS Report: DotNetNuke Review

The goal of the CMS report is to help/inform developers on what CMS platform they should use for their projects. I started these article to help, warn and direct a user to chose the correct CMS for their respective projects. This week I review and rate DotNetNuke. Again the rating system is simple: 1 meaning this feature or item is poorly designed, implemented or overall useless and 10 meaning this feature/ item is about as perfect as you could want it. 

DotNetNuke 4.8.3

Overview: DotNetNuke(DNN) was one of the first CMS systems available for .NET.  It core language is in VB.net (shudder!!) but modules can be written in C#. DNN "is the ideal platform for building professional websites with dynamic content  and interactive features" according to DNN's website. After using DNN for a large scale project, I can say it is neither ideal, dynamic or interactive. DNN is quite simply a portal pretending its a CMS.  

When I select a CMS I look for something that does 80% of what I want, and where I have to code/implement the other 20%. DNN works on the opposite premise. It gives you the 20% and forces you to code/implement other 80%. I am not saying its the worst cms that I have ever come across, for it has its strengths. What I am saying is that its weaknesses far out weight its strengths. 

Installation: Above Average (6)

Overall: DNN installation is what pretty straight forward. Run a installation file, choose a database and select a directory where the website will be located.

Drawbacks: Where most websites inform you that you have to create a admin user. DNN actually gives you two users:admin and host. Host is a user with a lot of permission and admin is I guess an admin user. The main difference is one has admin setting and the other has host settings. Confused yet? Why not consolidate both users in to an admin user? Why the confusion and overall uselessness of the admin user. I still cannot see why there needs to be two users.

Learning Curve: Very Hard(2)

Overall: The first think you have to learn in DNN is how to create a module. This is a long 4 step process that includes: 1) Creating the database tables 2) Writing stored procedures that can access those tables to preform inserts, selects, deletes and data analysis. 3) Creating the Data Access Layer that calls the stored procedures that includes the customs classes and access types. 4) Finally getting around to code the logic and design the actually module!! Of course I forgot that you have to Skin everything and still do your CSS.

Drawbacks: Did I forget to mention that this is only the View portion of the Module? You still have to write and code an Edit control for, you know, editing data of your module. Plus you still have to deal with leaning how everything ties together in DNN as well as understand how to place modules on the page and understand why and where you would use portals. Learning DNN can be extremely frustrating at times and you will come to a point where you say " TO HELL WITH IT" and break DNN framework to implement you own

Extensibility: Extremely Poor(1)

Overall: DNN modules that can be plugged into the framework that can extend your CMS. The modules range from cheap $9.99 to outrageously expensive ( I think the most expensive was $249). Ah guys the whole idea of open source was NOT to charge for your modules(see Drupal). Installation is usually fairly easy and some of the modules nicely done but there is one HUGE drawback(see below)

Drawbacks: Beside the fact that you are promoting a open source framework and charge for modules there is one HUGE HUGE!!! drawback to module implementation: they are all not written in the same language!!! Some are written in VB and others in C#. This is a huge drawback. You might find the perfect modules that does exactly what you need it to do only to find it is written in a Language that you do know that well or don't want to know. This is incredibly frustrating and annoying. Imaging if any other CMS tried and pulled this off and had some of the pages written in PHP and others in PERL.

Versatility: Good (7) given you have lots of time

Overall: DNN as for the most part is a pretty poor CMS, but since little is defined in terms of design structure you are pretty free to implement any functionality you want. The thing is that most CMS provide a road map that while some what restrictive, it does curb development time. DNN philosophy provides very little in terms of a road map, and while that increases development time, it also provides you with the freedom to really create anything your little mind can think of

Drawbacks: Time, lots and lots of development time. Quote out double the time if you are using DNN.
 

Documentation: Above Average(6)

Overall: Documentation is pretty standard affair. Some PDF and white paper mixed in with a community driven forums for searching and asking for help. There are some forum moderators and sometimes there are administrators of particular functionality that will chime in from time to time.

Drawbacks: Wasting time digging thru the thousand and thousand of submissions to find that one post that is truly useful.
 

Overall: Poor(3)

For those whom are thinking of using DNN for their next project here is essentially what you get: A portal that does your account management, manages your modules, cache and preforms some high level administration and functionality. You can design a state of the art community web site with DNN but it will in general take you double the time to do so. I would only use DNN if I had a highly custom application where the users needed some sort of Authentication (such as Active Directory) and I had lots and lots of development time to spend.

 

DotNetNuke can be downloaded from here

 

Comments

  1. If you only look at DNN from a developer's perspective, then you are not far off-base. I would argue, though, that development of any extension for any CMS should be undertaken from a methodical layered approach. And in the case of DNN, best practices lead you there. So you do spend more time up front designing - but hey - you get what you design for ;)

    However I think you miss the point of the modules for money - they are almost always delivered as binaries - so you really don't worry about what language they are written in - from the user's/implementers perspective - what you do concern yourself with is the feature set and usability of the module. The power of DNN is that there is a wide variety of modules/plug-ins provided by solid developers/companies. Once you buy them, you use them. Also you might want your readers to know that there is a long list of stock modules that are included with DNN and are open-source and are all written in the same language - vb.net.

    Finally, I would agree that the learning curve for the developer is moderate to high. But the learning curve for the user is not.

    • Comment by: Omar

    Alen thank you for the great comment, a couple of things though: While I understand programming is a money making venture, I just a problem with users selling modules on DNN when other CMS i.e Drupal does it all for free. The idea of open source is to help the programmer deliver a product to his customer at the lowest cost possible. Google Drupal Module Finder and see the wealth of free modules you can get for Drupal. Second you are correct some modules are delived as binaries but most include full source code. But how many times are you going to find a module that is exaclty like your business requirement? What happens if the customer doesnt like the way the module works? There are times when you need a module that is almost what you want but needs some tweaking. It is a huge disadvantage when the module, much less the CMS, are in different languages then one you are familiar with.

    Thank you Allen for you comments.

    • Comment by: Alex

    "Why the confusion and overall uselessness of the admin user. I still cannot see why there needs to be two users."

    There are plenty of books and documenation that tell you why. Do you realise DNN is a multi portal application, you can hold multiple websites from one DNN application. Administrator A can administrate a website portal A, Administrator B can administrate a website portal B, host administrate all portals.

    "Some are written in VB and others in C#."

    "Imaging if any other CMS tried and pulled this off and had some of the pages written in PHP and others in PERL."

    Please study and understand the Common Language Runtime (CLR). You can write in any language as part of the .NET framework, this is to encourage developers who have different skill sets, and allow existing code to be used. The languages are all assembled into CLR and thus are interoperable, unlike you example with PERL etc. People can even write their own languages (i.e. COBOL.NET). Are you saying MS should not have included this useful feature? in which case you are critisizing ASP.NET not DNN! NB I suspect you are using all sorts of application on your desktop right now that are programmed in different languages.

    "Ah guys the whole idea of open source was NOT to charge for your modules(see Drupal)."

    Core modules are supplied free of charge, third parties modules often supplied free modules as well, but what is wrong with third parties wanting to charge for their time? Are all Linux applications free for instance?

    I would do a little more research....

  2. Alex thank you for your comments a couple of my own: The Admin and the Host user still confuse me. Why not have a single admin use and assign Portal Admins instead of a host account? This obsfucation method that DNN takes is confusing to me and I am sure to others. While I am understand how the .NET CLR works my point is the design flaws that DNN has. When DNN was first written it was written in VB. As people complained they finally allowed a method to write modules in C#. My complaint is why not convert all the code to a standard language? Have you ever seen a commercial application written in two languages? I am c# developer, while VB.NET is similar I do not have the time to learn it while I am in deadline to finish a site for a customer. Finally yes I understand develepment is a business I just belive in the whole open source momement as a way where coders do not have to pay for code (see koders.com). Thank you for the comments Alex it is much apperciated.

    • Comment by: Alex

    The point is that modules are treated are separate applications that are plugged into a framework. Would you stop developers writing on Windows XP platform just because they don't use the language it was written in? Or should everybody have to program and learn a new language because we say so? And do users really care what language their application is written in (or do we just write software for developers?).

    Pretty much all core (free) modules use VB.NET. Third party developers are free to develop in any .NET language they choose. (and anyway we can't stop them even if we wanted to, they are are using ASP.NET). So please research this further. You can easily develop a module in C#, VB or even Dephi should you so wish. And why not?

    Please study the Common Language runtime, I say again this is a ASP.NET feature: en.wikipedia.org/.../Common_Language

    I guess if you were an ASP.NET programmer this would be all be far to obvious, in exactly the way that if I wasn't a particular good C# programmer I would question the use of pointers.

    As far as Admin/Host. Host is the SuperUser or God account that has permission to pretty much do everything. A portal Admin has only permissions to do things on their website portal. When a website portal is created, so is a new portal admin. They only have permisions to change content etc in their portal. NB portal = website. You can host multiple websites with one DNN application. For reasons of security you do NOT want admins to creating website portals (i.e. new websites), hence the host user. There are other reasons as well which become obvious the more you use the application (or see documentation).

    As far as not paying for code, there are PLENTY of free modules available. But if people wish to sell modules then why not? Simply don't buy the module if you don't wish to pay for it. Understand core modules supplied with DNN are FREE which fits most common scenarios. Regardless of what your viewpoint is, I shouldn't think that should be taken a negative point just because you think everything should be free. Isn’t this is an article on CMS application, not on the applicable uses of open source. Or am I mistaken?

    With greatest respect it doesn't seem that you've spend much time researching or even using the application here. If you don't understand the difference between host and an admin users you clearly haven't looked even into the very basics of DNN, and why things work the way that they do. I guess you are used to one technology, and you are comparing everything else to that. Please re-review and research the article in a more balanced manner .

    Many thanks and hope this helps! Good luck!

    • Comment by: Alex

    One thing I forgot to say, all the core code (DotNetNuke Framework) is written in VB.NET. All supplied modules are written in VB.NET I believe.

    You can plug in any application (or module) as long as it is written in a .NET language which in turn will translate to CLR. You don't have to use VB.

  3. Alex,

    You missing the point; you are correct in saying that this article is about a review on CMS Products but it is also a review to help a programmer make a informed choice on what CMS he will choose for a particular product. I just finished a three month project using DNN. My reason for giving it a negative review was not because its a bad product but in comparison with other CMS products (Drupal for instance) it is severely lacking. The fact that .NET supports multiple languages is not the point here. I find it, and I am sure other developers will, increasingly frustrating to research for the perfect module to plugin to the framework, only to find it written in VB when I am coding modules in C#. Sure its "cool" to be able to do both, but the bottom line is I can code 10 times faster in C# then in VB and my productivity takes a hit. This article was created to point that out to other developers thinking about implementing a DNN site and would like to read a review that goes pass the bells and whistles and informs about the bottom line of "What hurdles and problems will I have to overcome if I implement this CMS? "

  4. Tank you for your great review. Your points (beside the diff. language thing, that I don't dislike that mutch) its plus minus what I found in an own evaluation I did. The OpenSource or free CMS market in .NET is pretty poor. I prefer AxCms if it doesn't have to be OSS (it's just free).

  5. Was this really DotNetNuke you were looking at? I find it hard to imagine we've been looking at the same product. Your review is completely alien to me. O, BTW, it is not a very good idea to start a review with a sneer toward vb.net. Putting programming language preferences before a review in fact invalidates your findings. If you feel this way, please confine yourself to evaluating C# products. It is frankly also offensive to viewers that program in vb.net.

    • Comment by: Alex

    So really this is more of a programming language political statement. Applications must be programmed in C and be free. Otherwise nobody should bother :). Clearly when MS were thinking of CLR they were off their rockers, as there is clearly no market for any other language ;)....

  6. Peter,

    Thank you for your comment, your are right stating that I should keep my own personal programming choices to myself, but I was trying to illustrate the difficulty of DNN in conjunction with its design choice to "allow" multiple languages in the same framework. In an ideal world DNN would have a C# version and a VB version (similar to what Aspdotnetstorefront does). Let me illustrate a point to you. For example your boss wants to implement a publishing module for your website were authors can publish articles. Since your boss wants it fast you research and find a perfect module that does exactly what you want like this one: www.ventrian.com/.../NewsArticles.aspx only to find it is written in C#, a language, you can code, but would rather not. So with a deadline looming ahead and your research for another module in VB came up empty so you are forced to implement this module and as a result your productivity takes a hit. My review informs the user/programmer that this scenario is possible with DNN so be advised.

    • Comment by: Alex

    Are you saying now that Ventrian News Articles (a third party module) is now rubbish because it is coded in C# and DNN is OK because it is in VB? You see how circular your argument is becoming? Anyway there are PLENTY of rival news applications other than Ventrian written in VB.NET and/or C#. Oh and Storefront can be plugged into DNN it seems in two different language it seems. So what exactly are you reviewing here? DNN, Ventrian news articles or Storefront? What exactly is your point? I am lost!! Did you read my comments that actually you are critiquing CLR not ASP.NET?

    NB I just can't believe you just finished a three month project using DNN and you don't understand the difference between host and user!! You must be some sort of genius, what is your secret! :)

    • Comment by: Lance

    Omar, I have to concur with Alex here. It appears you didn't gain the requisite knowledge to post this review. It truly undermines your opinion and authority when you don't understand the function of host vs admin users (which have been reworked in 5.0 BTW). Perhaps you were not aware that a single code base can host many separate and discrete websites. (Both a strength and Achilles Heal of DNN). Any review that misses this point is off the mark.

    Further, the *freedom* of being able to write modules in VB or C# or other .net languages is liberating, not limiting. If you need to modify the core then yes, you should look at different projects but that isn't advised for any clients or CMS. For articles, you would be able to write in whatever language you are most comfortable in and still inherit all the functions of the core.

    I have used open source CMS's before as well and I can confidently say the quality of those free plug ins are a waste of time in many cases compared to the support and code control of a purchased module. If you are looking to do typical things, then the free ones will be well vetted. Others are not.

  7. Lance,

    Thank you for your comments. My review of DNN is based on using it for a project that took us 3 months to develop. Prior to that I had little to no DNN experience. My problem with the host and the admin account was that it was not properly documented, and I felt it was unnessesary feature to include. No CMS these days creates dual admin users by default. Most create a super admin and leave it to the developer to create other accounts with limited permisions. Second the problem that I have with the ability to code in different languages is that its dishearting as a project leader in to have code in two different languages is not liberating but restricting. For example I have two coders, one who can code VB and one who can code C# and both work on a DNN project and write modules for the project. Now the VB programmer leaves and the C# programmer now has to update his code. I am sure that the C# will be able to figuer out the VB code, but its going to be frustrating for him and the project is going to be even more delayed as there is an added learning curve on top of a already complex CMS. Sure it might seem liberating at the start, but in actual use it because less so.

    • Comment by: Lance

    No other CMSes allows you to host multiple websites on a single instance and database so they have no need for the multiple roles. You are really missing this point. Imagine what that trouble it would be for a shared hosting company to allow full access to a server for all domains. Now do you understand the need for the host user?

    DNN 5.0 fundamentally changes the Admin function access making most of the discussion moot anyway. Now, all administration tasks are treated as separate modules so any user can be given access to any function. However, the host user still controls what websites are hosted.

    If you have programmers within your organization writing in multiple languages then I say you have a management problem. The same could be said of virtually any system. For instance, you could have a CGI CMS that uses a LAMP frontend (Movable Type anyone???). That is an internal discipline issue and nothing to do with DNN or even .net. It is far more likely that a module would be developed entirely in one language – at the developers’ prerogative. They are not constrained by the VB core unless they open it to fiddle with stuff (not wise).

  8. Lance,

    A lot of CMS's allow you to host multiple sites on a singe instance (Drupal, Kentico, etc..) but they only have a single super-admin user and simply allow the super admin to create site admins. This method is more intuitive, secure and controllable. Put it this way if the host user was such a great idea why are they changing it in 5.0 ?

    Second when have you known management to make great decisions? They see DNN and they see the ability to be able to put two different types of programmers on the same project (one VB one C#) because as you said they feel it is "Liberating". When in fact multiple problems can occur by executing this sort of thinking. My complaint is not that .NET allows you to compile different languages in the same project, but that DNN allows it to be done so easily. Combine that with the fact that half the modules are writing in C# and the other half are written in VB makes things more frustrating.

    • Comment by: Tony Kenny

    When I first read this review I was about to reverse my suggestion to a client that using DNN would be of great benefit. But, when I read the section where the author did not understand the host/admin functions, I became a little worried. These different users were made perfectly clear to me in the product overview video on the DNN website. I'm not sure how much simpler they could be.

    Then came the argument regaring vb/c# comparing the differences to that of PHP/perl. With the CLR, this comparision is totally illogical, like comparing a bicycle with a Boeing 747!

    Sounds to me like the Author is one of those over-proud C# programmers who thinks programmers who work in the 'lesser' VB are somehow inferior. Re the 'shudder' at VB for the core, why does this matter? Surely if you're 'using' DNN, you're not going to touch the core? For developing, you'll just code in any other language that fits the CLR. If you're buying modules, again, who cares unless you want to modify them?

    Finally, Omar, it might be an idea to proof-read your reviews, some of the English mistakes were a little obvious. Combined with the writing style of giving a compliment just to take it back in the next sentence; this gave me a feeling that this review was written late at night after you'd had a particularly frustrating day trying to work out those different users. Forgive me if I'm wrong, but it sounds like you had a bad time with DNN and this seriously affected your objectivity and neutrality. I'll go read some more reports and see if I can get some balance.

  9. Tony,

    In regards to my complaint of the use of VB, I was not referring to the core DNN functionality, I was referring to the fact that some modules are written in VB and others are written in c#. To me this is a huge turn off. Sure I can program in VB, but at about half as fast as I could in C#. What I am criticizing is the design choice made by DNN to include C# modules when they would have been better off splitting the market into two and creating a C# version( which according to you and Alex is super easy) That's my main complaint with DNN. Also sure in most instances you will not need to touch the core, but I was under the impression that DNN was an open source project and isnt the fundamental idea of open source changing the core of an application to make it better?

    Having a bad time with DNN did not effect my objectivity and neutrality it confirmed it. There are so many better CMS(if you could call DNN that, imho its a framework masking as a CMS) out there that do so much of a better job(Drupal, Kentico, Joomla, Umbraco, etc) that perhaps you need to research a little more and move away from you comfort zone. DNN is archaic in design, poorly implemented and a crap CMS, in my opinion of course ;)

  10. I think you should review Umbraco 4.0.1. It would rate higher than DNN on all of the points you've raised.

    Think of it as a less mature, .NET version of Drupal (in a spiritual sense, not in a directly-ported sense)

  11. Daniel,

    I will review Umbraco 4.0.1 next week.

    Omar

Post your comment

Thanks for your comments

Be nice ;)

  • Comment