打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Module_建立单独的解决方案

  在整个DotNetNuke(以下简称DNN)解决方案之下建立和调试DNN模块项目都比较容易并且还可以随时“转到定义”看看DNN框架中类的内容,惟一的缺点就是慢!打开和编译一次DNN就要花去几分钟的时间,调试一次更是需要七、八分钟,偶然的来上一两次,就要耗去十几分钟的时间。晕,时间就这样在等待中流逝了。
  为DNN模块建立单独的解决方案就可节省大量的时间了。建立单独的解决方案进行模块开发需要解决三个问题:
1、在什么地方建立解决方案有助于边开发边测试?
2、如何对原有dll进行引用,生成的dll又到那个目录中?
3、怎样进行调试?

我建立DNN模块开发环境的顺序如下:
一、建立模块项目
1、在DNN程序的DesktopModules目录下建立DNN模块项目,项目名称为模块名称。
2、重名命名项目名称为“公司名.模块名称”。如果您的项目名称为“公司名.模块名称”就可以省略这一步。不过我不喜欢模块所在文件夹的名字为“公司名.模块名称”。
3、引用“DNN程序的bin目录”中DotNetNuke.dll组件。
4、配置项目属性:
1)、修改程序集名称为“公司名.Modules.模块名称”



2)、导入一些默认命名空间,如果不做这一步就需在单个源代码文件中用Imports语句导入所使用命名空间(我喜欢单独导入)。


3)、设置项目输出路径为“DNN程序的bin目录”,这样可以将编译所得的dll文件直接复制到运行目录中,以免每次都要手动复制。


5、创建模块控件文件ascx,一般都有三个ascx文件:模块名称.ascx、Edit模块名称.ascx和Settings.ascx。在类库类型的项目中不能直接添加“用户控件”,我是从别的地方复制过来后在修改,希望知道更好的方法。
6、在模块目录下建立App_GlobalResources目录,用来放语言资源文件。
二、建立模块相关的SqlDataProvider项目(有些模块不需要访问数据库,那么这一步也可以省了)
1、在模块目录下的Providers\DataProviders目录下建立DNN模块SqlDataProvider项目,项目名称为“SqlDataProvider”。
2、重名命名项目名称为“公司名.模块名称.SqlDataProvider”。
3、引用“DNN程序的bin目录”中DotNetNuke.dll组件和Microsoft.ApplicationBlocks.Data.dll组件。
4、引用“DNN程序的bin目录”中对应模块组件“公司名.Modules.模块名称.dll”。注意:在这里不能直接引用模块项目而需要引用模块组件,主要是因为引用模块项目会引起生成时的一个错误。大家可以试试直接引用模块项目,看看会不会有问题。
5、配置项目属性:
1)、修改程序集名称为“公司名.Modules.模块名称.SqlDataProvider”
2)、导入一些默认命名空间。
3)、设置项目输出路径为“DNN程序的bin目录”。
仍然存在的问题:因为该项目是引用的模块组件,所当模块项目重新编译后需要重新再次引用。
三、在DNN中设置运行环境
1、利用host身份登录,在“主机管理-->模块定义”中“增加新定义”。
2、保存后在添加相关的控件,比如查看、编辑和设置控件。具体每个控件都用什么样的key和类型,可以参照其它模块中的设置。
四、调试程序
有一篇文章有详细介绍:http://www.cnblogs.com/leeichang/archive/2004/11/16/64418.html
默认情况下,ASP.NET 进程(对于 Windows 2000 和 Windows XP 上的 IIS 5.0 和 IIS 5.1 为 aspnet_wp.exe,对于 Windows Server 2003 上的 IIS 6 为 w3wp.exe)作为 ASPNET 进程运行。因此,要调试它,您必须具有运行 ASP.NET 的计算机的管理员特权。

  其实我们还可以利用dnnjungle的模板来建立DNN模块项目,我试用了一下,它默认生成的代码和DNN自带模块的代码风格不太一致,我需要改好多地方所以没有采用,大家有兴趣可以试试。欢迎交流试用心得!

dnnjungle的模板相关网址:http://dnnjungle.vmasanas.net/Development/Templates/tabid/28/Default.aspx

更多相关内容>>

Feedback

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2005-10-10 12:53 by mill2002
ding

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2005-10-12 17:49 by summer
在添加模块定义的时候出现了不管输入什么字符都提示
“A critical error has occurred.
Input string was not in a correct format.”
这样的错误怎么解决呢???
谢谢,新手,希望能赐教

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2005-10-13 18:09 by cathymay
你好,想问一个模块开发中的问题,我是新手,要开发一个 photo album这样的模块。
我从网上下到了一个相关的源码,只需在 原来的视图上加一个button 控件,而不用加任何其他操作, 我在 view.ascx中 用 toolbox加上了这个button,其他什么地方都没动,当上载这个模块时,提示我 :a critical error has occured.

我想问一下在application layer 中只要加什么东西,都要在 database layer 中加上相应的 table 吗?如果需要的话,怎么把它俩联系起来呢?

谢谢了。

还是加上我的msn: jianmei_rong@hotmail.com 吧,我迫切需要当面请教。多谢。

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2005-11-28 20:31 by 二十四画生
5、创建模块控件文件ascx,一般都有三个ascx文件:模块名称.ascx、Edit模块名称.ascx和Settings.ascx。在类库类型的项目中不能直接添加“用户控件”,我是从别的地方复制过来后在修改,希望知道更好的方法。

关于这一点我已经找到好方法了,还是用dnnjungle的模板。安装该模板后,在添加新项时多了一个DNN项的选择,这里面就有相应控件文件ascx。而且一些类似八股文的代码都已经写好,dnnjungle的模板的确是个好东西。

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2005-11-28 20:32 by 二十四画生
@cathymay
加了button后你重新编译过代码了吗?

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-03-21 16:18 by 鹅鹅鹅鹅鹅鹅鹅鹅鹅eee
请问在2005中还能使用建立单独的解决方案来开发DNN模块吗?

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-03-21 20:43 by 二十四画生
@鹅鹅鹅鹅鹅鹅鹅鹅鹅eee
还没有试过,一直没有时间去尝试用VS2005和asp.net 2.0,我都有点落伍了:)

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-03-24 16:49 by 竹篮打水
好象不行了,我试了下不只持在非
web项目中使用web用户控件
dnn4提供了另一种方法但dnnweb站点编译方式太慢,不好用
听说微软又要提供类似2003的web项目编译方法,但未见过

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-03-29 14:35 by 程序员
好像关心的人不多阿,解决方法见http://iliuyong.cnblogs.com/archive/2006/03/29/361756.html

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-05-31 10:28 by GDLMO
调试文章的链接有问题;打开后出现错误如下:

抱歉!发生了错误
Details
所访问的资源不存在, 请确认输入的地址是否正确, 如果仍然存在问题, 请发邮件至cnblogs@126.com与管理员联系。

返回网站首页

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-05-31 23:28 by 二十四画生
@GDLMO

文章中的连接有些问题,直接在地址栏输入www.cnblogs.com/leeichang/archive/2004/11/16/64418.html访问。

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-06-13 13:13 by sdpjeff
你说要在DesktopModules下建立模块项目,怎么建?
我感觉应该是在整个解决方案下新建类库,然后在类库中建.ascx之类的文件来开发模块吧,请赐教

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-06-13 14:16 by sdpjeff
再请教你一个问题,我在DNN下新建了一个类库,我是选择C#类库的。但是我要在这个类库下建。ASPX页面时无法找到这个选项。我从DNN复制了页面,但是把复制的页面放到类库时却出现了“在WEB窗体设计器中未找到该文件”的错误。请赐教,多谢了

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-06-18 17:38 by 二十四画生
@sdpjeff
你安装DNNTemplates 3.0.1,通过添加DNN项目就可以了。

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-06-19 15:17 by sdpjeff
我打开了 DNN3.2版本中的Survey模块,发现解决方案下有一个“解决方案项”,下面放了数据库和存储过程安装和卸载的文件。请问这个“解决方案项”是如何添加的?我找不到,多谢了。

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-06-21 08:52 by sdpjeff
二十四画生,你好,我现在在用DNN来开发OA系统。我看了大概两个星期的源代码,只能看懂它的三层结构和数据库访问的的程序。其他都没看懂,所以项目进展很缓慢。能不能帮我提点意见如何更好的去理解这个程序。
现在有个问题想请教,DNN的SolpartMenu控件是如何去读取数据库里的数据,然后生成菜单的。我想添加另外一个父接点,然后在父接点下添加一些子接点,应该怎么做?请赐教,多谢了。

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-08-04 14:52 by 落英缤纷
二十四画生,你好,我的调试还是有问题,你直接加我msn:chenjinjuan_jenny@hotmail.com吧,我现在有点急用!

# re: 建立单独的解决方案来开发DNN模块   回复  引用  查看    

2006-08-04 21:10 by 二十四画生
@落英缤纷
那篇关于如何调试的文章讲的实在是太仔细了,还有解图。你是如何不行呢?如果还有问题,那不是就可能不是后台代码的问题,检查一下你前台代码,看有无语法错误。

# 吧吧啦   回复  引用  查看    

2007-04-01 14:37 by 侯家其‘
我想他了,真的想他了

# [导入]建立单独的解决方案来开发DNN模块[TrackBack]   回复  引用  查看    

2007-04-06 22:28 by 三月三
[引用提示]三月三引用了该文章, 地址: http://www.cnblogs.com/march3/archive/2005/10/10/703324.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
DNN模块开发系列文章(2)——建立模块开发项目
用户控件和自定义控件的定义的区别
ASP.NET FORUMS换肤流程
用户权限设计(一)——ASP.NET系统用户权限设计与实现【转】
皮肤控件 IrisSkin4.dll / IrisSkin2.dll的下载及调用样例
WinForm创建自定义控件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服