YESWin winform开发框架 新建一个业务模块项目
目录
一、新建项目
1) 解决方案 添加新建项目
2) 选择类库
3) 输入项目名称
点击创建按钮,创建项目
创建后得到一个空项目
二、添加项目引用
WinFramework.Common:常用工具类库
WinFramework.DBClient:框架DB核心库 注意:专业版不提供源码,需要使用dll引用
WinFramework.Library:
WinFramework.UI.Core:框架UI层核心库 注意:专业版不提供源码,需要使用dll引用
WinFramework.UI.Dev:
WinFramework.UI.Dev.Controls:自定义控件库
WinFrameworkDemo.Business:业务层
WinFrameworkDemo.Models:数据库 Model层
三、新增 Management.cs
新建一个类 Management ,模块注册类,继承自:WinFramework.Library.Module
Management.cs 内容如下:
namespace _Winframework.Template.Module
{
public class Management : WinFramework.Library.Module
{
public Management() : base("业务模块", "Module_Dictionary")
{
//WinFramework.Library.FunctionCollection.AddFunction(typeof(frmDemo), "功能名称", "Function_imageName");
}
}
}
WinFramework.Library.Module:模块信息类,系统会自动根据模块信息来加载模块
参数说明:
moduleName:模块名称(描述)
moduleImg:模块图片,对应图片为:images\[moduleImg]_16x16.png,参考:图片尺寸规范
在构造函数中进行功能注册
四、添加winform引用
现在类库中还缺少winform和devexpress相关的引用,我们还需要再添加这些引用才算完整
1) 右键 添加一个windows窗体
2) 然后我们从工具箱中拖拽Devexpress控件
拖拽一个 Devexpress的GridControl控件到窗体,就会自动添加Devexpress引用了
添加的引用如下:
五、设置生成 输出路径
因为系统是插件化开发,模块和启动项目之间直接并没有关联关系
所以需要设置模块的 生成 输出路径 和主项目保持一致,这里的做法是所有项目都统一 设置输出路径为:解决方案目录中 Debug目录,主项目也在这个目录
对应目录
六、在Winformwork.Library中注册模块
这里是为了加快模块加载速度,采用指定模块dll名字的方式
配置位置:WinFramework.Library.DevelopmentEnvironment.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WinFramework.Library
{
public class DevelopmentEnvironment
{
public static List<string> lstDLL = new List<string>();
public const string SystemModel = "WinFramework.SystemManagement";
static DevelopmentEnvironment()
{
// 模块列表
lstDLL.AddRange(new string[]{
"_Winframework.Template.Module",
"WinFrameworkDemo.Dictionary",
"WinFramework.SystemManagement",
"WinFrameworkDemo.Demo",
"WinFrameworkDemo.PSIModule"
});
}
}
}
也可以把模块dll放到一个特定目录中,然后修改模块加载的代码,来达到免配置
模块加载代码位置:
Winframework.Library.LoadModuleHelper.cs
稍后会给定相应具体教程
七、模块添加一个功能
1) 生成添加功能窗体到项目
用代码生成器随便生成一个窗体,添加到模块中
###2) Management.cs 中注册功能
注册功能代码:
namespace _Winframework.Template.Module
{
public class Management : WinFramework.Library.Module
{
public Management() : base("业务模块", "Module_Dictionary")
{
// 注册功能
FunctionCollection.AddFunction(typeof(frmSales), "功能名称", "Function_Employee");
}
}
}
八、测试
功能路径:系统管理 → 模块维护
打开功能后,会自动重新加载模块
确保模块被正确加载后,点击保存按钮
重新登录后就能看到新的模块了
非管理员需要配置权限