总体上说dotnetnuke是个相当不错的,甚至是最好的使用dotnet开发的开源portal,如果看看丛多使用dnn开发的网站,我想这样的评价毫不过分。
优点:
1、用一个页面处理所有请求,后台只有一个default.aspx在处理用户请求。
2、之前从未有过的、功能强大的皮肤管理功能。以前的换肤功能一般局限于css的运用,但dnn打破了这一局限,页面的布局及其内容均可随着皮肤而变化。而皮肤开发是如此简单,使用一个notepad就可以完成所有工作。
3、一个应用程序可以驻留多个portal. 如:crm.microsoft.com 与 finance.microsoft.com 使用同一个应用程序,而表现给用户的好像是也确实是两个完全不同功能的站点。所需做的工作仅仅是在超级用户管理中设置多个portal,并为每个portal配置相应的页面。
毫无疑问,在带来如上巨大好处的同时,dotnetnuke也暴露出来许多需要改进的缺陷(也许dotnetnuke开发组已经在进行了)。
缺陷:
1、糟糕的用户管理机制,据说为了兼容新的dotnet framework,dotnetnuke开发过程中采用dotnet 2.0 beta版中的membership管理功能。如我在另一篇文档《dnn中令人困惑的用户管理机制》中所述的,这是个糟糕的决定。不知是否可以实现类似于passport的认证机制,若能实现,我想应该会使dnn更强大。
2、无法支持多个数据库,如上面所见,若crm.microsoft.com与 finance.microsoft.com想采用不同的数据库(大前提:想用同一个应用程序),在目前的状况下无法剥离。
3、大量采用存储过程,每个module有一个dataprovider这样造成数据库平台的移植性很差。(关于这一点也许是个仁者见仁,智者见智的问题)