Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this questionI've spent a few hours already studying some CMS solutions for one of my customers' new business...In the end, I've taken in consideration these two: DotNetNuke and Composite C1.
I know all of these have a lot of features, a lot of capabilities etc.
What I would like to know:
is overhere any .NET guy who have worked with both of these? (if yes, can you please share your opinion - PRO and CONS?)
if for some reason I do need to add some new ASP.NET code (for some custom things), which of these two is better for this?
You should definitely go with Composite C1. I have been using DotNetNuke for many years and been very frustrated due to its limitations.
Below I have summed op what I think is best/worst for both CMS products (note: it's been two years since i set up a DNN site, so I do not know if there has been any improvement):
PROS for DNN
- List item
- VERY simple administration interface.
- It is possible to edit pages directly by simply clicking on content when you are signed in.
- Huge user/developer base - many extension modules available. Many of them for no charge.
CONS for DNN
- The simplicity in DNN is basically the root for all cons;
- Hard to extend - you have to develop packages for DNN with your specialized code or generate user controls in .NET (.ascx) files.
- Difficult to skin
- A lot of overhead related to webforms AJAX files (100+ kb without compression)
- No build-in nice urls (but easy to find extensions enabling nice urls)
- Relies on SQL-database ( = additional costs)
PROS for C1
- Easy installation and setup.
- Can run on file system only (and easily be upgraded to SQL support).
- Build-in package manager with easy to install extensions.
- Support for MVC, XSLT, Webforms and the best: Razor syntax!
- Specialized code can be developed easily due to great API.
- Great templating support. Can be made very simple and very advanced depending on your skills.
- Nice URLs in the 3.0 releases.
- Easy to set up multi-site support.
- Supports Windows Azure out of box.
CONS for C1
Based on XML for data storage (can cause problems if server shuts down unexpectedly etc. - I have not experienced this)- THe many features in the backend can be a little overwhelming.
- Backend takes quite a while to load because it is build like a webapp.
- Not as large user base as DNN
Bottomline; Composite C1 is far better than DotNetNuke. Specially if you want to add custom code/functionality. If you want even more functionality and a more mature CMS than Composite C1 you should take a look a Umbraco. It is open-source just as C1 and of course developed by great Danes ;)
I have quite some years of experience with DotNetNuke.
Avoid it at all costs. I'm serious.
Edit: Since I'm being asked about my reasons for this bold statement, I'll try to provide them.
The company I worked for had around 300 clients on DNN. Many of them were rather large corporations. I have a lot of epxerience with DNN.
First of all, DNN is riddled with bugs. Bugs that are never fixed. Instead, the guys behind DNN seem to be concerned more about introducing new features than providing stability. I've personally submitted a boatload of bug reports to their tracker. How many were fixed? Virtually zero. In most cases I even took the time to provide a patch! To no avail. When they made the switch to C#, they simply closed most of the open issues because their laziness began to bite them in their ass. "In order to better manage and assess issues for fixing, any issue that has not had any activity logged previous to January 1st, 2011, will be auto-closed. " (See here)
I've been bitten by so many bugs in those years. It was a rather frustrating and unsatisfying experience.
Secondly, new features are usually problematic and faulty. DNNCorp also often decides that these new features are not that important and subsequently abandons them for new features. For instance, their taxonomy module has some serious issues when you set up multiple portals and try to use system-wide vocabularies. To my knowledge this hasn't been fixed yet. Their MetaData / ContentItem / ContentType API had some serious problems for a long time and probably still has. It's not even really used for anything, even tho it could alleviate some of the problems that I describe later down (architecture).
Thirdly, their documentation just sucks.
More importantly, I think DNN's architecture is rather outdated. It carries a lot of old baggage. Their tab / module approach makes it very hard to create structured content and make relationships between content items. As soon as you try to create complex web sites, it falls flat on its nose. Not just from a programmer's perspective, but also from the perspective of a content administrator.
The overall impression is that these people are a) not very good programmers and b) don't know what they are doing.
I have worked with both CMS systemes (and many others) and I would recommend you to use Composite C1.
It is in my experience much easier to learn and much faster to be productive in Composite C1. The UI is much better (prettier and eaiser to understand). They have lots of good resources on their website. In my POV the most powerfull feature of Composite is that you don't have to bother about the datalayer - you just create your datatypes as classes or in the GUI and a 'ORM' just make the whole thing happen. That is if you even need datatypes (changes are you don't if it's a simple website).
They're both free and open source. DotNetNuke have a lot more modules that you can buy from third party developers, but Composite C1 still have a lot of what you need.
It's easier to develop new modules in Composite just because of the whole 'ORM' concept.
Only downside I can think of when I compare these to systems is that extranet functionality (logged in users that are not admins) is built into DotNetNuke. This is a module that you have to buy from Composite or develop yourself.
Composite C1 is the best out there for custom functionality and high flexibility. I've been using it for a few weeks and my site will finally be up and running because of it. Short learning curve (speaking for myself) but still very robust and flexible. Love it because you can use Razor with it.
DotNetNuke is still using WebForms and even though it's got a huge user base, but it is somewhat outdated.
精彩评论