DotNetNuke模块开发(一)

简介:

参考文章:DotNetNuke高级编程4Chapter 12

开发环境:VS2008,DotNetNuke5.4.2_source,SqlServer express 2005

安装工具:DotNetNuke_Community_05.04.02_StarterKit.vsi

今天开始我的DotNetNuke模块开学的学习首先从HelloWorld模块开始,之前从john的视频教程中练习过HelloWorld模块的开发,今天使用StarterKit进行操作。打开DotNetNuke5.4.2_source的解决方案,如下图所示

clip_image001

我们在http://localhost/DotNetNuke_Community/->右键->添加新项,然后在“我的模板”中选择DotNetNuke Dynamic Module。如下图所示。

clip_image003

这时候,Web浏览器汇总会加载一个文档,详细解释所需执行的各个步骤,将ModuleName文件夹重命名与模块名称HelloWorld一致。这样就可以确保在位门户网站开发额外的模块时候不会出现命名冲突。该修改的包括以下三处。

1. /App_Code/ModuleName to /App_Code/HelloWorld

clip_image004

2. /DesktopModules/ModuleName to /DesktopModules/HelloWorld.

clip_image005

3. 以及web.config文件中做如下修改,这是为了对应app_code中添加的HelloWorld

<system.web>

    <compilation>

        <codeSubDirectories>

             <add directoryName="HelloWorld" />

        </codeSubDirectories>

    </compilation>

</system.web>

创建模块部分已经完成,下面的工作是在DotNetNuke系统中注册HelloWorld模块。操作过程为:Host->ModuleDefinition,如下图所示。

clip_image006

创建模块有Crete Module From: New,control ,manifest。三种形式。

New:是创建一个全新的模块,即在DotNetNuke系统中创建,而不是在VS2008中创建。

Control:是创建指定的web control。

Manifest:是手动方式添加DNN模块的定义,这是在VS2008下已经创建了DNN模块的情况下。我们这里使用manifest,如下图所示。

clip_image007

但是添加模块的时候出现如下错误。

clip_image008

然后我在app_code下复制了HelloWorld文件夹并且重命名为YourCompany.HelloWorld。我们在StarterKit创建模块的时候将ModuleName重命名为HelloWorld,但是在HelloWorld.dnn文件中,我们会发现模块名都带有YourCompany。

去模块定义中查看HelloWorld模块,如下图所示:

clip_image010

我们会发现模块名带有YourCompany。模块的控件加载如下图所示。都是自动加载的。不需要手动加载。

clip_image011

我们在Home页面添加HelloWorld模块实例,结果如下错误

clip_image013

感觉是跟前面出现的那个YourCompany错误有关,所以做如下添加模块的测试。

添加Hello模块,并且直接将app_code文件夹和DesktopModule文件夹下的Hello改名为YourCompany.Hello。在web.config中也做了相应的修改,错误如下:

clip_image015

意思是找不到控件,我觉得是因为desktopmodule目录下Hello改名为YourCompany.Hello的缘故。所以将DesktopModule目录下的YourCompany.Hello改成Hello。出现如下错误:

clip_image017

这个错误表示dbo.YourCompany_Gethellos这个存储过程不存在。模块依然没有创建成功。

现在只修改web.config和app_code下加yourcompany,而desktopmodule下不加yourcompany测试一下。操作过程如下图所示。

clip_image018

但是加载模块出现如下错误。

clip_image020

和Hello模块出现的问题一样。都是找不到存储过程,因此我想到可能是没有执行sql脚本的缘故。然后我在host->sql下执行了01.00.00.SqlDataProvider脚本。

clip_image021

但是执行脚本出现如下错误。

clip_image023

不过这个错误只需要参照:DNN中手动插入01.00.00.SqlDataProvider脚本错误的问题就可以解决。解决错误以后再在Home页中添加模块,这会添加模块成功。

总结:

DNN模块的创建分为三个步骤:

1. 在vs2008下创建模块,在创建过程中,App_Code目录和web.config中都需要对模块名加上YourCompany,而DeskTopModule目录下的模块所在文件在不需要加YourCompany。

2. 在DotNetNuke系统中manifest方式注册模块

3. 执行01.00.00.SqlDataProvider脚本。

目录
相关文章
|
5月前
|
前端开发 PHP 数据库
PHP框架详解之Symfony框架
在现代Web开发中,PHP作为一种灵活且功能强大的编程语言,广泛应用于各种Web应用程序的开发中。为了提高开发效率、代码的可维护性和可扩展性,开发者通常会选择使用框架来构建应用程序。在众多PHP框架中,Symfony以其强大的功能和灵活性脱颖而出,成为开发者们的首选之一。本文将详细介绍Symfony框架,包括其历史、核心功能、组件、安装和使用方法,以及在实际开发中的应用案例。
48 2
|
4月前
|
存储 缓存 安全
PHP框架详解 - symfony框架
PHP框架详解 - symfony框架
|
应用服务中间件 nginx
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(1)
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》
197 0
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(1)
|
容器
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(2)
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》
173 0
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(2)
|
PHP 网络架构 前端开发
|
数据库 前端开发 定位技术