C#.Net快速开发框架 - ORM ,BLL,DAL三者关系
C#.Net快速开发框架 - ORM ,BLL,DAL三者关系
ORM (Object/Relation Mapping) 对象关系映射
BLL (Business Logic Layer) 业务逻辑层
DAL (Data Access Layer) 数据存取层(数据访问层/数据层)
ORM在开发框架中的作用:
CSFramework.ORM主要目的是给SQL命令生成器自动生成SQL命令(DbCommand),用于自动提交数据。将数据表结构映射为C#类,每个字段在类中定义为字符类型常量,在DAL层,以数据表+字段名称组合SQL语句,使用类的常量来规范代码的严谨性。
比如:
C# Code:
/// <summary>
/// 获取所有用户列表
/// </summary>
/// <returns></returns>
public DataTable GetUsers()
{
string sql = "SELECT * FROM [" + TUser.TableName + "]"; //引用用户表的表名
return DataProvider.Instance.GetTable(sql, TUser.TableName);
}
为什么不使用以下写法?
这种写法的目的是一致的,若系统中多个单元使用这张数据表时,如果把这些字段或表名“写死”,当某天更改了字段或表名,是不是要搜索整个解决方案然后替换?
string sql = "select * from [tb_MyUser]";
return DataProvider.Instance.GetTable(sql, "tb_MyUser");
这种写法的目的是一致的,若系统中多个单元使用这张数据表时,如果把这些字段或表名“写死”,当某天更改了字段或表名,是不是要搜索整个解决方案然后替换?
关于UI, BLL,DAL逻辑分层
BLL和DAL,这是系统分层后的必然结果,分层有若干好处,特别是易于维护和扩展。CSFramework框架分离了DAL层,若要更换不同类型的数据库,如Oracle,修改DAL层即可。
若不分层,按钮Click事件直接SQL硬编码的话,您想重构吗?
BLL层能有效分离窗体中冗余的代码和业务逻辑,把窗体(UI层)的代码“搬”进BLL。
BLL层能有效分离窗体中冗余的代码和业务逻辑,把窗体(UI层)的代码“搬”进BLL。
参考按钮事件写法:
C# Code:
private void OnGetData_ButtonClick(object sender, ButtonPressedEventArgs e)
{
DataTable data= _MyBLL.GetBusinessByKey("PONO00001");
//do something...
}
ORM,BLL,DAL三者关系图
上面介绍了ORM,BLL以及业务逻辑分层在开发框架中起到的作用,ORM,BLL,DAL三者关系图:
ClassGenerator自动生成的ORM代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using CSFramework.ORM;
namespace CSFramework3.Models
{
/*==========================================
* 程序说明: tb_PayType的ORM模型
* 作者姓名: C/S框架网 www.csframework.com
* 创建日期: 2011-04-05 12:45:33
* 最后修改: 2011-04-05 12:45:33
*
* 注: 本代码由ClassGenerator自动生成
* 版权所有 C/S框架网 www.csframework.com
*==========================================*/
///<summary>
/// ORM模型, 数据表:tb_PayType,由ClassGenerator自动生成
/// </summary>
[ORM_ObjectClassAttribute("tb_PayType", "PayType", true)]
public sealed class tb_PayType
{
public static string __TableName ="tb_PayType";
public static string __KeyName = "PayType";
[ORM_FieldAttribute(SqlDbType.Int,4,false,false,false,false,false)]
public static string isid = "isid";
[ORM_FieldAttribute(SqlDbType.VarChar,10,false,true,true,false,false)]
public static string PayType = "PayType";
[ORM_FieldAttribute(SqlDbType.NVarChar,40,false,true,false,false,false)]
public static string TypeName = "TypeName";
}
}
// 来源:www.CSFramework.com, C/S框架网
using System.Collections.Generic;
using System.Text;
using System.Data;
using CSFramework.ORM;
namespace CSFramework3.Models
{
/*==========================================
* 程序说明: tb_PayType的ORM模型
* 作者姓名: C/S框架网 www.csframework.com
* 创建日期: 2011-04-05 12:45:33
* 最后修改: 2011-04-05 12:45:33
*
* 注: 本代码由ClassGenerator自动生成
* 版权所有 C/S框架网 www.csframework.com
*==========================================*/
///<summary>
/// ORM模型, 数据表:tb_PayType,由ClassGenerator自动生成
/// </summary>
[ORM_ObjectClassAttribute("tb_PayType", "PayType", true)]
public sealed class tb_PayType
{
public static string __TableName ="tb_PayType";
public static string __KeyName = "PayType";
[ORM_FieldAttribute(SqlDbType.Int,4,false,false,false,false,false)]
public static string isid = "isid";
[ORM_FieldAttribute(SqlDbType.VarChar,10,false,true,true,false,false)]
public static string PayType = "PayType";
[ORM_FieldAttribute(SqlDbType.NVarChar,40,false,true,false,false,false)]
public static string TypeName = "TypeName";
}
}
// 来源:www.CSFramework.com, C/S框架网

参考文档:
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
数据库信息管理开发平台 - C/S结构+Winform+ADO.NET快速开发框架
基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库)
原创C/S架构开源软件 - C#.NET+Winform+Dev+SQL快速开发框架
主流前端开发框架都有哪些?Winform .NET快速开发框架
原创Winform快速开发框架平台Oracle版本(三层架构+C#.NET+Oracle数据库)
表单上实现增删改查,除了生成的BLL,DAL和ORM表,还需要处理什么?
CS系统快速开发框架 - 生成BLL和DAL
PLC,上位机软件快速开发框架(VS2022+C#+Winform)
C#三层架构系统 C#.NET三层架构快速开发框架
Winform三层架构软件开发平台(C#.NET开发)
C#.NET开发软件Winform三层架构代码生成器软件
信息系统开源框架 - 企业内信息系统应用架构(C#.NET+Winform)
Winform UI框架 | Winform界面快速开发框架
Winform软件快速开发框架(使用DevExpress正版授权皮肤组件)
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
数据库信息管理开发平台 - C/S结构+Winform+ADO.NET快速开发框架
基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库)
原创C/S架构开源软件 - C#.NET+Winform+Dev+SQL快速开发框架
主流前端开发框架都有哪些?Winform .NET快速开发框架
原创Winform快速开发框架平台Oracle版本(三层架构+C#.NET+Oracle数据库)
表单上实现增删改查,除了生成的BLL,DAL和ORM表,还需要处理什么?
CS系统快速开发框架 - 生成BLL和DAL
PLC,上位机软件快速开发框架(VS2022+C#+Winform)
C#三层架构系统 C#.NET三层架构快速开发框架
Winform三层架构软件开发平台(C#.NET开发)
C#.NET开发软件Winform三层架构代码生成器软件
信息系统开源框架 - 企业内信息系统应用架构(C#.NET+Winform)
Winform UI框架 | Winform界面快速开发框架
Winform软件快速开发框架(使用DevExpress正版授权皮肤组件)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
