Winform三层架构教程,CS三层结构图及源码实例讲解
作者:C/S框架网|www.cscode.ne  发布日期:2020-03-06 14:29:46
  Winform三层架构教程,CS三层结构图及源码实例讲解

Winform三层架构教程,CS三层结构图及源码实例讲解

1)三层体系结构是哪三层?

三层逻辑架构 (3-Tier Logic Architecture)

C/S系统快速开发平台采用三层逻辑架构(3-Tier Architecture),由界面层(UI-User Interface Layer)、业务逻辑层(BLL-Business Logic Layer),数据访问层(DAL-Data Access Layer)三层组成。在软件体系架构设计中,分层次是最常见也是最重要的一种设计思路,目的是实现“高内聚,低耦合”设计思想。 

所谓三层逻辑架构,是在客户端与数据库之间加入一个“中间层”,介于界面层与数据层中间部分的逻辑处理。通常用于处理界面的数据,如数据采集、数据合法性检验、基本数据运算,或界面组件生成、组件状态管理等。基于处理过程封装而成的中间层称为业务逻辑层(BLL - Business Logic Layer),业务逻辑层没有严格定义和规范,采用三层结构设计符合高内聚,低耦合设计理念,也是研发软件产品最常见的设计方式一。 

三层逻辑架构不是指物理上的三层,比如三台联网的机器不是三层逻辑结构或三层体系架构,或者支持B/S应用的才是三层体系结构,所以定义和概念要区分清楚。三层是指逻辑上的三层,即把这三个逻辑层封装在一个软件项目内,是一个整体,缺一不可。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层处理,通常情况下,客户端不直接与数据库进行交互,而是通过中间层与数据库进行交互。 


2)C/S三层结构图/三层架构图


C/S框架三层逻辑架构



3)Winform简介及Winform三层架构

WinForm是.Net开发平台中对Windows Form的一种称谓,Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序。

Winform三层架构是指基于Winform桌面应用程序采用逻辑分层设计的软件架构。


4)Winform三层架构教程之界面层设计(UI层)


开发人员务必根据用户需求以及系统整体风格对界面排版,坚持以用户体验优秀至上原则,界面不能太花俏,功能不能太复杂,特别是功能按钮不能太多!C/S系统快速开发框架采用DevExpress皮肤组件,拥有强大界面功能、顶级的外观表现以及专业的用户体验。


界面层与BLL层逻辑架构:

贴图图片-Winform三层架构教程CS三层结构图1


本文以【产品管理】界面作为例子讲解,产品管理窗体名称(类名):frmProduct,

下图是【产品管理】界面。

贴图图片-Winform三层架构教程CS三层结构图


在frmProduct窗体的私有域定义BLL层变量: 

C# Code:

/// <summary>
/// 产品资料管理
/// </summary>
public partial class frmProduct : frmBaseDataDictionary
{
  
private bllProduct _BllInstance; //业务逻辑层对象引用
  

  
public frmProduct()
  {
    InitializeComponent();
  }
  
//省略代码....
  
}
  


【查询】按钮事件调用业务逻辑层的方法:


C# Code:

//查询按钮Click事件
private void btnQuery_Click(object sender, EventArgs e)
{
  
//调用BLL层的Search方法搜索数据
  
DataTable dt = _BllInstance.Search(
  txt_ProductCode.Text,
  txt_ProductName.Text,
  ConvertEx.ToString(txt_CategoryCode.EditValue),
  txt_Barcode.Text);
  
  
this.DoBindingSummaryGrid(dt); //绑定主表的Grid
  
this.ShowSummaryPage(true); //显示Summary页面.
  
}
  
  
//来源:C/S框架网(www.csframework.com) QQ:23404761



5)Winform三层架构教程之业务逻辑层设计(BLL层)


C# Code:

/// <summary>
/// 业务层查询方法
/// </summary>
/// <param name="productCode"></param>
/// <param name="productName"></param>
/// <param name="category"></param>
/// <param name="barcode"></param>
/// <returns></returns>
public DataTable Search(string productCode, string productName, string category, string barcode)
{
  
//策略模式(ADO直连,或WCF)
  
//return _MyBridge.Search(productCode, productName, category, barcode);
  
  
//ADO直连:调用数据访问层的Search方法
  
return new dalProduct(Loginer.CurrentUser).Search(productCode, productName, category, barcode);
}


//来源:C/S框架网(www.csframework.com) QQ:23404761



6)Winform三层架构教程之数据访问层(DAL层)


C# Code:


/// <summary>
/// 数据访问层查询方法
/// </summary>
/// <param name="productCode"></param>
/// <param name="productName"></param>
/// <param name="category"></param>
/// <param name="barcode"></param>
/// <returns></returns>
public System.Data.DataTable Search(string productCode, string productName, string category, string barcode)
{
  
//
  
//SQL拼接查询
  
//
  
//string sql = "SELECT isid,ProductCodeAuto,ProductCode,ProductName,Barcode,UnitID,CategoryId,SellPrice,UnitID,Spec,Model,Remark,Supplier,dbo.fn_GetCustomerName(Supplier) AS SupplierName,MinQtyWarning FROM tb_Product WHERE 1=1 ";
  
//if (productCode != "") sql += " AND ProductCode LIKE '%" + productCode + "' ";
  
//if (productName != "") sql += " AND ProductName LIKE '%" + productName + "' ";
  
//if (barcode != "") sql += " AND Barcode LIKE '%" + barcode + "%' ";
  
//if (category != "") sql += " AND CategoryId IN (SELECT CategoryCode FROM dbo.ufn_GetProductCategory('" + category + "'))";
  
//return _Database.GetTable(sql, tb_Product.__TableName);
  
  
//
  
//调用存储过程
  
//
  
CommandHelper sp = _Database.CreateCommand("usp_SearchProduct");
  sp.AddParam(
"@ProductCode", productCode);
  sp.AddParam(
"@ProductName", productName);
  sp.AddParam(
"@Category", category);
  sp.AddParam(
"@Barcode", barcode);
  
return _Database.GetTable(sp.Command, tb_Product.__TableName);
}

//来源:C/S框架网(www.csframework.com) QQ:23404761


<本文完>



C/S系统快速开发框架旗舰版V5.0(Ultimate Edition)

适用开发 适用开发:制造、服务、零售、商贸等行业的ERP、MRP、MES、CRM、MIS、HIS、POS数据管理应用系统
运行平台 运行平台:Windows + .NET Framework 4.5
开发工具 开发工具:Visual Studio 2015+,C#语言
数据库 数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)

C/S系统开发框架旗舰版V5.0


 产品介绍 

    C/S系统开发框架旗舰版为软件团队提供强大的技术支撑以及快速开发能力,开发框架集成大量的通用开发包与工具实用类,提供丰富的例子,借助技术文档、网站资源、演示源码以及在线技术指导,用户能快速投入研发自己的项目。自2007年首发开发框架以来,我们成功积累了2000多位用户,其中包括数百家软件公司或大型集团企业。经过十年的产品迭代升级,最新旗舰版技术更成熟,性能更稳定,产出效率更高!

    配套的代码生成器工具能自动生成界面(FORM)、业务层(BLL)、数据层(DAL)、模型(Model)、报表(Report)以及业务模块(Class Library DLL)的源代码,极大地提高开发效率、节约开发时间、降低项目成本。据多年项目实践统计,开发框架基本能完成项目大概60%以上的工作量。





扫一扫加微信:
 









上一篇 下一篇