如何在Cuyahoga中新增一个简单的功能模块
Cuyahoga是一个国外著名开源的网站框架,能够方便的添加新的功能模块,而不需要改动框架本身 .下面介绍为其添加一个简单模块的步骤.
建议为每个模块创建一个独立的项目,以便能生成单一的程序集. 不要在Cuyahoga.Core项目中加入任何新的模块,不然在升级新版本时会遇到麻烦.
1.创建一个名为CuyahogaSampleModule的Asp.net Web Application 默认名字空间设为:Cuyahoga.Modules.Sample, 程序集名称设为:Cuyahoga.Modules.Sample .
目录结构如下:
还需在post-build event中添加以下命令:
xcopy /s /y "$(ProjectDir)"Web\*.gif "$(SolutionDir)"Web\Modules\Sample\
xcopy /s /y "$(TargetDir)"Cuyahoga.Modules.Sample.dll "$(SolutionDir)"Web\bin\
在编译后将模块的页面,图片,程序集等文件copy到Web目录下.
2.在根目录下新增一个名为SampleModule.cs的类,作为模块的配置管理类.
这是模块的核心类 .用来存放一些不被.ascx或aspx包含的通用函数.这个类要派生自Cuyahoga.Core.Domain.ModuleBase.
代码如下 由于这是最基本的例子 所以不需要添加代码
using Cuyahoga.Core.Domain;//需要引用Cuyahoga.Core程序集
namespace Cuyahoga.Modules.Sample
{
public class SampleModule : ModuleBase
{
}
}
3.在Web目录中新增一个.ascx用户控件 用来显示模块内容.
Cuyahoga是将用户控件嵌入到模板中来显示内容.我们在控件中写入"hello world".ascx.cs中的类需要继承Cuyahoga.Web.UI.BaseModuleControl.
namespace Cuyahoga.Modules.Sample
{
//需要引用Cuyahoga.Web程序集
public partial class Sample : Cuyahoga.Web.UI.BaseModuleControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
3.在cuyahoga_moduletype表中添加一条记录,以便cuyahoga知道如何创建模块的实例
所有安装的模块都在这个表中注册.在表中添加该模块信息 分别是模块名称, 程序集名称 ,模块控制器类名,路径(web目录下的),添加日期.
'Cuyahoga.Modules.Sample','Cuyahoga.Modules.Sample.SampleModule','modules/Sample/Sample.ascx',getDate())
这样就添加上了一个新模块 , 编译以后 在后台管理页面为一个section添加该模块 ,可以看到效果了.
本文的大部分内容来自官方帮助文档 http://www.cuyahoga-project.org/. Created by jecray