当前位置:主页   - 电脑 - 网站开发 - ASP.Net
DotNetNuke(DNN)从入门到进阶-怎样写自己的模块
来源:网络   作者:   更新时间:2012-03-13
收藏此页】    【字号    】    【打印】    【关闭

  好久没有写DNN的技术文章了,这是DotNetNuke(DNN)从入门到进阶之怎样写自己的模块(Modules)。关于DNN的相关说明,可以参看我的DNN系列随笔。

  从一个熟练的DNN开发者来说,写一个DNN模块没有任何难度,对一个新手来说,只需要依样画葫芦便可。在DNN2.x中,有不少内置的模块,大家只需要参考着做就可以了,需要注意的地方只有几个:

  1、DNN是基于模块的,这意味着你开发的模块都必须使用Web Control(.ascx)并继承PortalModuleControl(DNN3.0更名为PortalModuleBase),这样你便可以直接得最常用的PortalID、ModuleID和PortalSettings等公用属性;

  2、DNN是基于N-Tier的,分UI、BLL、DAL、DSL等四层,UI就是具体的Web Controls(*.ascx),BLL就是业务逻辑,DAL就是基于Provider模式的数据存取,DSL就是数据存储,根据实际情况可能是ACCESS、MS SQL、Oracle、MySQL等;

  3、与其它多层引用不一样,DNN采用子引用父亲,也就是具体的功能模块引用DNN,而不是DNN引用具体的功能模块,这样的好处是:不管多少模块,内核仍然保持干净;坏处是:如果打包,会莫名其妙地很膨大,因为内心的所有程序集文件都编译到具体模块的bin目录下面了。

  4、DNN推荐模块目录结构是:

  Module Root

  |--Components

  |--Controls

  |--功能A(包括UI和BLL,BLL中包括业务逻辑属性和数据存储实例类)

  |--功能B

  |--功能X

  |--ProvidersDataProviderSqlDataProvider

  其中ProvidersDataProvider存放数据存取基类,ProvidersDataProviderSqlDataProvider存放MS SQL的数据存取继承类,而这个类是独立工程。

  5、特别需要注意的是ModuleID,这是每个实例化模块的唯一标示,而通过ModuleID则可以获取TabID(我喜欢称之为栏目ID,而不是标签ID,感觉标签忒别扭)。

  说了这么多,最容易的就是用现成的工具:DNNTemplate,安装之后就在VS.NET中添加了DNN Module、DNN SQLDataProvider DAL、DNN ACCESSDataProvider DAL、DNN SkinObject等4个项目模块,然后大家填写业务代码便可,实在方便,如图1。

  DotNetNuke(DNN)从入门到进阶-怎样写自己的模块

  (图1)

  以下是我过去3个多月苦干的基于DNN开发EIP(企业信息门户)的核心系统CMS(内容管理系统)VS.NET解决方案,如图2:

  DotNetNuke(DNN)从入门到进阶-怎样写自己的模块

   (图2)

  请到这里下载:DNNTemplate,这个工具支持VS.NET 2002/2003

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明