DNN模块开发(1)

      在搭建完dnn的开发环境以后,就可以开始模块的开发了.以visual studio2005为例,模块开发主要有以下几步:

1.创建模块

      基本上我们是通过在dnn解决方案中“E:/webroot/dnndemo(http://localhost/dnn)->添加新项->我的模板-> DotNetNuke Dynamic Module”,输入模块名称“DnnTestModule”并选择开发语言后点击确定,dnn会自动生成模块文件。虽然dnn的核心代码是使用VB编写,但在进行模块开发时我们可以自由选择.net开发语言(即可以使用C#开发)。

      Dnn自动生成的模块文件包括两部分,即DesktopModules及App_Code两个目录下的ModuleName文件夹(即使刚才模块命名为DnnTestModule,DesktopModules和App_Code两个文件夹下新添加的模块初始文件名都是ModuleName),我们根据给出的提示:

 

Due to limitations in the templating capabilities of Visual Studio, you will need to manually rename a couple of folders before you continue.

Rename /App_Code/ModuleName to /App_Code/ DnnTestModule

Rename /DesktopModules/ModuleName to /DesktopModules/DnnTestModule

This can be accomplished in your development environment by right-clicking the folder name in the Solutions Explorer and selecting Rename from the menu.

In addition, as the main project uses Visual Basic you need to add a <codeSubDirectories> node to your web.config as shown below:

<codeSubDirectories>

    <add directoryName="DnnTestModule" />

</codeSubDirectories>

This node is in the <system.web><compilation> node, and there is a commented out example in release.config.

 

(如果选择使用C#进行模块开发,需要在Web.config中的<codesubDirectories>字节中添加<add directoryName=”模块名”>字段进行注册,否则编译时会出错.)

修改模块文件夹名后生成的文件结构如下:

App_Code目录:

http://hi.csdn.net/space.php?uid=1923263&do=album&picid=494994

DesktopModules目录:

http://hi.csdn.net/space-1923263-do-album-picid-494995.html

      说明:虽然部分资料建议手动创建以上文件目录结构,但由于模块本身在系统中的交互问题,仍然建议通过添加项的方式创建模块,再根据需要手动添加文件。

 

2.执行数据库脚本

      我们将01.00.00.SqlDataProvider的脚本拷贝到“HOST->SQL”执行。

      具体方法参考前一篇博客:DNN中手动插入01.00.00.SqlDataProvider脚本错误的问题

3.模块的注册于开发

 
在书写代码之前,为了方便调试,我们需要先在dnn中对模块进行注册。
在"模块定义"页面中选择"增加新定义"一项,然后开始创建模块定义,即Host->Module Definition->Create New Module
如图:
http://hi.csdn.net/space-1923263-do-album-picid-494998-goto-down.html
首先需要填写模块相关的信息,名称等可以自由填写,但目录名(Folder Name)一栏必须与定义的模块目录名(DnnTestModule)一致。点击创建后增加一个新的定义(Add Definition-> Create Definition);最后在增加控制中添加控件即可。
如图:
http://hi.csdn.net/space-1923263-do-album-picid-491299-goto-down.html
添加控件时需要注意的是view控件的key一栏中必须置空,类型必须为view;edit控件的key为edit,类型必须为edit;settings控件的key必须为settings,类型必须为admin;一个模块中可以有多个edit控件,但在注册时必须注册为不同的key。
如图:
http://hi.csdn.net/space-1923263-do-album-picid-491588-goto-up.html
    控件添加完成后就可以在页面上添加模块了。在vs2008环境下对模块代码进行修改保存后,不用重新调试,只需要刷新页面就可以看到模块的变化.
  至于模块的开发,由于是使用ascx文件,所以开发方式和普通的用户自定义控件开发流程没有太大区别.但需要注意,由于dnn的布局方式与普通的aspx文件有所不同,因此在ascx文件中添加控件时不能以网格布局方式放置控件,必须以流布局的方式放置,否则页面显示会混乱;此外由于dnn是通过tabid来进行页面的跳转控制,因此在页面跳转时不能以普通的方式跳转;以下列出几个跳转语句:
从view页面跳转到edit页面:Respons.Redirect(EditUrl());
多Edit页面的情况下:Respons.Redirect(EditUrl(“edit的key值”));
从edit页面跳转到view页面:Respons.Redirect(Globals.NavigateURL(),true);
向edit页面传值:Response.Redirect(EditUrl("", "", "", "ID="+值));
edit页面获取值:Request.Params["ID"];
可参考:
http://www.adefwebserver.com/DotNetNukeHELP/DNN4_ModuleDevelopersGuide/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值