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脚本。

目录
相关文章
|
存储 运维 Oracle
国产数据库:目前最火的五款国产数据介绍
随着互联网的高速发展,目前数据的存储越来越多,传统的数据库逐渐不能满足人们对海量数据、高效查询的需求,国产的数据库如雨后春笋一样,一个个冒了出来来解决我们高速科技发展的数据库瓶颈,今天就给大家聊一聊目前最火的五款国产数据库,大家一起来交流一下。
国产数据库:目前最火的五款国产数据介绍
|
8月前
|
人工智能 IDE 开发工具
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
Trae是字节跳动推出的一款免费的AI集成的开发环境,集成了Claude3.5与GPT-4o等主流AI模型,提供AI问答、智能代码生成、智能代码补全,多模态输入等功能。支持界面全中文化,为中文开发者提供了高效的开发体验
5014 11
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
|
缓存 监控 前端开发
java简历2年经验编写教程+面试题
是花了我很多天的心思,用心打造出来的Java简历分析模板,适合新手包装成有一点工作年限(1-2年),但又不会太老手的简历;让你的简历做得跟别人不一样;
4339 0
|
人工智能 IDE 前端开发
首款 AI Native IDE Framework,OpenSumi 3.0 正式发布!
展望未来,开发者只需定义明确的目标,例如添加新的接口功能,而 AI Agent 则有能力在一个具备运行环境的Workspace 中,自主操控编辑器、终端和浏览器等工具,自动化完成一系列标准的软件开发任务。
2009 1
|
数据采集 运维 供应链
大型集团物料主数据实践分享
工业企业中物料主数据的数量最大,也最关键。
大型集团物料主数据实践分享
|
Java Maven Spring
4. 成功解决:Spring Boot Configuration Annotation Processor not configured
在 Spring Boot 项目中,添加一个配置文件时,会提示“Spring Boot Configuration Annotation Processor not configured”
3838 1
|
IDE 前端开发 小程序
阿里 & 蚂蚁自研 IDE 研发框架 OpenSumi 正式开源
经历近 3 年时间,在阿里集团及蚂蚁集团共建小组的努力下,OpenSumi 作为国内首个强定制性、高性能,兼容 VS Code 插件体系的 IDE 研发框架,今天正式对外开源。
1144 5
阿里 & 蚂蚁自研 IDE 研发框架 OpenSumi 正式开源
|
IDE API 开发工具
阿里 & 蚂蚁自研 IDE 研发框架 OpenSumi 正式开源
经历近 3 年时间,在阿里集团及蚂蚁集团共建小组的努力下,OpenSumi 作为国内首个强定制性、高性能,兼容 VS Code 插件体系的 IDE 研发框架,今天正式对外开源。
阿里 & 蚂蚁自研 IDE 研发框架 OpenSumi 正式开源
|
Java 应用服务中间件
Servlet从了解到放弃(04)
Servlet从了解到放弃(04)
165 0
|
SQL 机器学习/深度学习 Unix