二十四画生的Blog


        ——开始学习Orchard框架
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[DNN模块开发]模块的文件结构及命名方法

Posted on 2005-07-21 10:45  二十四画生  阅读(6582)  评论(1编辑  收藏  举报

注:本文全是自己对开发模块的理解,如有错误请指出,以免误导大家。

  DNN模块开发的第一步就是要弄清一个DNN模块都要有哪些文件,这些文件该如何命名,每一个文件又各起到什么作用。

以大家最熟悉Link(链接模块)为例:
从文件结构来看:(省了一些文件夹或文件,如bin文件夹)
DotNetNuke_3.0.13..............DNN根目录
  DesktopModules...............DNN模块所在目录
    Links......................一般以模块名称命名该模块所在文件夹
      App_LocalResources.......该模块所用到的语言包文件
      (命名遵循语言包文件命名规范:对应UI控件文件名.ascx.[语言文化区域名称,en-US不要该项].resx) 
      Providers
        DataProviders..........具体数据访问Provider,所在文件夹
          SqlDataProvider......SQLServer数据库访问的Provider,当然还可以有OracleDataProvider等
            SqlDataProvider.vb.数据访问的具体实现
      DataProvider.vb..........数据访问工厂抽象类
      EditLinks.ascx...........编辑该模块内容或条目的UI控件(以“Edit+模块名称”命名)
      Links.ascx...............呈现在查看页面的UI控件
      LinksController.vb.......该模块的业务逻辑访问对象(以“模块名称+Controller”命名)
      LinksInfo.vb.............该模块的自定义业务逻辑对象CBO(以“模块名称+Info”命名)
      Settings.ascx............该模块特定设置UI控件,一个模块没有特定设置可不要该项
      module.css...............该模块特定的样式文件

从项目命名上来看,一个模块一般有两个项目:
1、模块UI层、业务逻辑层及数据访问工厂
项目名称:公司名称.模块名称
项目所在位置:该模块所在文件的根目录
程序集名称:公司名称.Modules.模块名称
需要引用:DotNetNuke.dll
2、数据访问具体实现层(以SQLServer数据库为例,如果是Oracle数据,则将SqlDataProvider换成OracleDataProvider即可)
项目名称:公司名称.模块名称.SqlDataProvider
项目所在位置:该模块所在文件的根目录\Providers\DataProviders\SqlDataProvider
程序集名称:公司名称.Modules.模块名称.SqlDataProvider
需要引用:DotNetNuke.dll;对应模块的程序集;Microsoft.ApplicationBlocks.Data.dll

从安装文件包来看:
除包含模块生成的程序集文件、UI控件文件及语言包文件外,还有:
数据库安装文件:版本号.SqlDataProvider(这是对应SQLServer的安装文件,如:01.00.00.SqlDataProvider)
DNN文件:模块所用文件清单,及安装信息等,是一个XML文件,命名:模块名称.dnn
数据库卸载文件:Uninstall.SqlDataProvider(这是对应SQLServer的卸载文件)

模块开发可用资源:
模块开发视频(英文的,但看也能看出个大概):
http://www.dotnetnuke.com/Default.aspx?tabid=810
介绍用模版来开发模块的方法(可少写好多代码):
http://dnnjungle.vmasanas.net/Development/Templates/tabid/28/Default.aspx
模块开发指南(官方文档):DNN程序目录\Documentation\Public\DotNetNuke Module Developers Guide.doc
只可惜以上资源全是英文的,要是有哪位高手翻译一下或写一个教程就好了!

大家有空也开发一下DNN模块,可从简单的开始或是照已有的模块修改。在实践中体验一下开发的乐趣!

更多相关内容>>