结合CodeSmith开发和调试DNN3模块

                                                        DNN 模块开发

完成自定义DNN模块构建的任务有许多种方式,我的方法是利用DNNProjectTemplate 模版和codesmith 代码生成器进行开发。

假定模块设计――它的目的和功能――已经被规划好。

1.  创建数据库表――使用VS.NETSql 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

启动urlhttp://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项目模板自动产生的。但是,创建一个自定义模块仍然包括一些相当多的工作,主要在于原始的设计努力和对模块视图、编辑及选项控件的描述.

 

 

 

 

 

 

posted on 2006-03-28 19:05  黑龙  阅读(...)  评论(...编辑  收藏

导航