当前位置: 首页 > news >正文

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

相关文章:

  • LOJ104 普通平衡树
  • Airport Simulation (数据结构与算法 – 队列 / Queue 的应用)
  • 掌握 Dojo 工具包
  • js中用变量作为$()内id的值、动态获取id,及获取其下面的class元素
  • 读Google三大论文后感
  • 数据展现DataList控件(26)
  • [转帖] 使用 InstallShield 安装和卸载SQL Server 数据库
  • Spring Cloud微服务如何设计异常处理机制?
  • SpringCloud 之 Bus消息总线
  • 26步打造高访问量网站[经典]
  • Silverlight 4中把DataGrid数据导出Excel—附源码下载
  • 类加载、反射
  • Ubuntu 中的编程语言(上)
  • 17.Merge Two Binary Trees(合并两个二叉树)
  • 03与08组策略区别
  • python3.6+scrapy+mysql 爬虫实战
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 2017届校招提前批面试回顾
  • axios 和 cookie 的那些事
  • egg(89)--egg之redis的发布和订阅
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • MySQL几个简单SQL的优化
  • PHP那些事儿
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • 代理模式
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 一道闭包题引发的思考
  • 转载:[译] 内容加速黑科技趣谈
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • UI设计初学者应该如何入门?
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​queue --- 一个同步的队列类​
  • ​卜东波研究员:高观点下的少儿计算思维
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C语言)逆序输出字符串
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Note)C++中的继承方式
  • (二)fiber的基本认识
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • .NET 中的轻量级线程安全
  • .NET程序员迈向卓越的必由之路
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET开源快速、强大、免费的电子表格组件
  • @RequestMapping处理请求异常
  • @ResponseBody
  • [2544]最短路 (两种算法)(HDU)