DNN 模块开发
完成自定义DNN模块构建的任务有许多种方式,我的方法是利用DNNProjectTemplate 模版和codesmith 代码生成器进行开发。
假定模块设计――它的目的和功能――已经被规划好。
1. 创建数据库表――使用VS.NET或Sql Server企业管理器,创建任何模块功能所需要的表。
2. 创建存储过程。使用CodeSmith,产生基本操作增、删、改、选的存储过程。
然后点击T-SQL选项,选择StoredProcedures.cst 模板
选择一个souceTable
以DOTNETNUKE 数据库为数据源,选择DBO.BLOG表。然后运行可以得到相应的存储过程
但所生成的代码需要有所改动,将所有的过程所属库和角色该为
{databaseOwner}{objectQualifier} 如
create table {databaseOwner}{objectQualifier}Blog
(
[ItemID] [int] IDENTITY (1, 1) PRIMARY KEY NOT NULL ,
[ModuleID] [int] constraint Module_fyk foreign key references Modules(ModuleID) not null,
[Title] [varchar] (100) ,
[Text] [varchar] (8000)
)
GO
3,安装重要的项目――在VS.NET中打开DNN解决方案,创建两个项目:DNN Modul,和DNN SqlDataProvider DAL,在这里只产生通用代码;特定模块(或模块相关)的代码在下一步产生。(注意vs2003需要安装DNNTemplates 3.0.1)
工程名字就是你所需要开发的模块名(如BLOG),这样一个单独的解决方案就已经建立成功
确定工程建立的路径,将模块定义位置设置为DOTNETNUKE\DesktopModules目录下,
DNNSQLDATAPROVIDER项目设置为DOTNETNUKE\DesktopModules\模块名\dataprovider\sqldataprovide目录下。
4,使用CodeSmith产生Data Provider 代码――为基于模块表和存储过程的DNN SqlDataProvider DAL项目产生代码.
5,项目的调试
选择配置属性
将输出路径设置为dotnetnuke\bin目录下!
选 择调试标签
启用asp.net调试为true,
调试模式为 url
启动url为http://localhose/dotnetnuke/default.aspx
到现在为止
项目环境已经搭建好了,现在可以进行模块开发了。
Dnn模块 包括两个重要的文件,一个是.dnn文件 ,另外一个就是在
CompanyName.moduleName.SqlDataProvider 项目中的01.00.00.SqlDataProvider
文件。
现在介绍一下dnn文件的编写,.dnn文件在目录Installation文件夹下。
<!--dotnetnuke节点,说明改文件时模块安装清单,使用与3.0.X版的DNN程序-->
<dotnetnuke version="3.0" type="Module">
<folders>
<folder>
<!--模块名称-->
<name>CLinks</name>
<!--模块名称(模块的友好名称)-->
<friendlyname>CLinks</friendlyname>
<!--模块功能描述-->
<description>分类链接模块</description>
<!--模块版本-->
<version>01.00.00</version>
<!--业务逻辑类-->
<businesscontrollerclass>DNNChina.Modules.CLinks.CLinksController, DNNChina.Modules.CLinks</businesscontrollerclass>
<modules>
<module>
<friendlyname>CLinks</friendlyname>
<!--模块所包含的控件-->
<controls>
<!--显示控件-->
<control>
<src>DesktopModules/CLinks/CLinks.ascx</src>
<type>View</type>
</control>
<!--编辑控件-->
<control>
<key>Edit</key>
<title>Edit CLinks</title>
<src>DesktopModules/CLinks/EditCLinks.ascx</src>
<type>Edit</type>
</control>
<!--设置控件-->
<control>
<key>Settings</key>
<title>Settings CLinks</title>
<src>DesktopModules/CLinks/Settings.ascx</src>
<type>Edit</type>
</control>
</controls>
</module>
</modules>
<!--需要安装的文件清单-->
<files>
<!--程序集文件-->
<file>
<name>DNNChina.Modules.CLinks.dll</name>
</file>
<file>
<name>DNNChina.Modules.CLinks.SqlDataProvider.dll</name>
</file>
<!--用户控件文件-->
<file>
<name>CLinks.ascx</name>
</file>
<file>
<name>EditCLinks.ascx</name>
</file>
<file>
<name>Settings.ascx</name>
</file>
<!--语言包文件-->
<file>
<path>App_LocalResources</path>
<name>CLinks.ascx.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>CLinks.ascx.zh-CN.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>EditCLinks.ascx.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>EditCLinks.ascx.zh-CN.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>Settings.ascx.resx</name>
</file>
<file>
<path>App_LocalResources</path>
<name>Settings.ascx.zh-CN.resx</name>
</file>
<!--数据库安装脚本-->
<file>
<name>01.00.00.SqlDataProvider</name>
</file>
<!--数据库卸载脚本-->
<file>
<name>Uninstall.SqlDataProvider</name>
</file>
</files>
</folder>
</folders>
</dotnetnuke>
然后看看sql文件的格式
见本挡sql文件!!!!
这两个文件都是模块包安装的必要文件!
上面几个步骤中的许多代码都是使用CodeSmith和 VS.NET项目模板自动产生的。但是,创建一个自定义模块仍然包括一些相当多的工作,主要在于原始的设计努力和对模块视图、编辑及选项控件的描述.
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 使用TypeScript开发微信小程序(云开发)-入门篇
· 没几个人需要了解的JDK知识,我却花了3天时间研究
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 管理100个小程序-很难吗
· 在SqlSugar的开发框架中增加对低代码EAV模型(实体-属性-值)的WebAPI实现支持