序
DNN做为一个优秀的门户网站框架,可以通过安装各种功能模块的方式扩充应用。正是通过这一优秀的功能,DNN框架可以实现:文章管理,图片管理,文档管理,论坛,博客,商店,调查,FAQ等等各种各样满足实际需求的模块。通过这个强大的框架支持,我们可以很容易的实现这些模块。比如:权限控制,多语言支持,多数据库支持,搜索,聚合,皮肤等功能,我都可以很容易的通过框架实现。如果是在平时,光是实现这些基础功能我们就需要花去大量的时间。现在有了DNN框架的支持,我们就可以集中精力投入到模块的业务逻辑和流程上,从而大幅度提高开发效率和质量。
《DNN模块开发系列文章》将通过开发一个简单的文章模块(Article)为例,讲解整个模块的开发流程,和模块相关的一些DNN命名空间功能,如何实现模块搜索、聚合、导入导出等扩展功能,以及后期如何维护和升级DNN模块。
一般来说DNN模块开发有以下6个步骤,我也将安照每个开发环节,讲讲我在DNN模块开发中的心得:
1、分析设计(确定模块功能,确定数据字段表结构,确定数据表名称,确定解决方案名称等几个工作)
2、建立开发环境(确定整个模块的文件结构,讲解DNN模块需要用到的dll和命名空间,以及这些命名空间的功能)
3、程序设计(设计需要几个控件来实现,每个控件的作用名称)
4、程序编码(介绍使用CodeSmith,进行数据访问层、业务逻辑层和存储过程的编码)
5、实现模块的扩展功能(如:搜索,聚合,导入导出)
6、生成安装脚本,打包程序。(讲解如何高效正确的编写安装脚本和生成安装包)
分析设计
首先讲讲这个文章模块将要实现的功能:一个简单的文章模块,提供发布文章(包括作者,标题,内容,发布时间),列表显示(数字分页,需要设置分页大小),需要提供导入导出聚合和DNN中检索功能。
根据上述需求描述,我确立了以下表结构
文章信息表:MyCompany_Article
ArticleID 文章ID int 主键
ModuleID 模块ID int 关联模块信息表(Modules)
Title 标题 nvarchar(225)
Content 内容 ntext
CreatedByUser 作者 int 此处存用户ID
CreatedDate 创建时间 datetime
注:因为DNN可以安装多个功能模块,为了不和其他模块发生冲突,最好以公司名+模块功能描述的方式来命名。如果你的文章信息表其名为Article就很容易和其他文章冲突。
解决方案名称也遵循公司名+模块功能描述的方式来命名,所以我确定模块解决方案名称为MyCompany.Article。
通过上述分析,我们基本清楚了这个模块要实现的功能,下面就可以实际动手开发了。下一篇文章是《DNN模块开发系列文章(2)——建立模块开发项目》,将讲述如何建立一个简单高效的模块开发项目和组织一个清晰的文件结构