CMS新秀N2CMS和老牌DotNetNuke的终极PK
colindoug 2011-09-30
一篇名叫《N2 CMS vs. DotNetNuke》的文章发表在:http://www.novasoftware.com/knowledge_library/article.aspx?url=n2-cms-vs-dotnetnuke
这篇文章对N2cms和dotnetnuke作了一番比较,得出的结论是:
N2适合于数据量少的网站,而dotnetnuke适合数据量大的网站。
得出这个结论的原因无非是N2cms在数据库只有4张表,数据都存在这4张表中,所以被认为在大数据量时会存在性能瓶颈。[这显然是片面的]
这个草率的结论引发了N2cms社区的一场口水战:
N2cms社区的主场:http://n2cms.codeplex.com/discussions/80004
dotnetnuke社区的主场:http://www.dotnetnuke.com/Resources/Forums/forumid/118/threadid/413233/scope/posts.aspx
口水战的帖子总括起来有几个要点:
应用了cache后,不会频繁访问数据库,性能主要取决于内存访问速度,数据量对二者构造的网站性能都会造成影响。
尽管dotnetnuke功能比较齐全,发展比较成熟,但设计不大好,版本升级后,网站升级难,运行速度也比较慢。
dotnetnuke的学习曲线比较陡峭,数据库结构复杂,开发成本也比较高。而N2总共只有4张表,框架设计非常优秀,扩展性和灵活性极好,容易掌握,二次开发容易而且快速。N2的一个缺点是,文档少,还没有出专门的书籍介绍相关技术。而有关dotnetnuke的书籍已经有好几本。而有人提出,N2不需要花很多的时间学习,只要掌握了asp.net MVC开发技术,很容易融会贯通。 ……
dotnetnuke社区澄清了dotnetnuke支持asp.net MVC,但不管怎么说,dotnetnuke的开发难度和灵活性显然要比N2cms是有差距的。
附原文:
At present, both N2 CMS and DotNetNuke are popular CMS frameworks based on ASP.NET technology.
N2 is authorized to manage up to page level, while DNN can manage up to page module level. N2 doesn’t support definition of new role/user group, while DNN does.
DNN allows custom skin and container management, while N2 can implement Master Page switch only by modifying configuration or page since its Skin and Container management is based on standard ASP.NET 2.0 technology.
DNN can develop based on Web Form technology only; while N2, thanks to its flexible framework design, can develop based on either Web Form technology or ASP.NET MVC framework technology.
From standard SQL Provider manner to various ORM tools and Web Service technology, DNN needs you to consider which is the specific method to implement with and what are the specific details to be implemented; N2, on the other hand, doesn’t need you to think about these, the methods of how to operate data specifically are encapsulated by framework.
The framework design of N2 enables developers to concentrate on design of data model and data presentation interface, and there is no need to think of data editing, checking and saving; while those should be thought over in DNN.
DNN allows installing the same module on different Hosts with its perfect module management function, while N2 has no such concept.
There are totally 4 tables in the database of N2 system:
All kinds of page objects are saved in these 4 tables as data, N2 can access these data using N-Hibernate technology and do the conversion between data and objects.
The framework design of N2 system guarantee a relative low coupling rate between interface and the data, that makes N2 has powerful UI expression force. Basically, N2 system can completely implement the corresponding details as long as you have the HTML template designed.
Meanwhile, DNN is not as powerful as N2 regarding UI expression force because its interface is limited by the interface specification of itself. For instance, DNN’s ability to customize Menu appearance is relatively weak; generally it can only be achieved by adjusting CSS, there is no way to control more details.
The development cycle of N2 site is much shorter than that of DotNetNuke technology based site since there’s no need to think of data editing interface during N2 development.
Because of the above characteristics, N2 is regarded as a lightweight CMS system.
N2 system is more suitable for website with small data volume, especially those with strict demand on interface appearance.
DotNetNuke is more suitable for Web application with large volume of data applied.