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

  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年首发产品,我们成功积累了500多家企业、4000多位软件用户,其中包括国内知名软件公司、国企、研发机构及上市集团公司(优秀企业选择了我们的产品-成功案例)。经过十年迭代升级,最新研发的旗舰版V5.1技术更成熟、应用更广泛、性能更稳定、开发效率更高!

    开发框架配套的核心工具 - 三层架构代码生成器能快速生成界面(FORM)、业务层(BLL)、数据层(DAL)、模型(Model)、报表(Report)以及VS工程项目(Project)的源代码,快速提高开发效率,节约开发时间,降低项目成本。根据多个项目进度统计,开发框架能为您减少60%以上的工作量。





扫一扫加微信:
 









版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

Winform架构CS结构图实例讲解
CS系统架构扩展支持WCF策略模式应用(原创)
Winform+DevExpress架构软件快速开发平台-旗舰版V5.1
C# Winform 架构代码生成器 V5.1版正式发布
C#.Net WCF实例详解下载
Winform界面自适应快速开发框架(C#+Dev+架构+多数据库支持)
进销存快速开发框架(Winform架构+DevExpress+SQL2008R2)
Winform+SQL开发CS架构大型ERP系统|C/S框架网
Winform调用WebApi接口实现增删改查CRUD实例
生成的窗体Form集成到VS解决方案 - C/S框架架构代码生成器操作指南
实例讲解基于事件的银行营销系统架构
C#.NET 后端WebApi接口搭建,WebApi接口开发实例
基于Winform架构+WCF+ORM模型的快速开发框架
原创Winform快速开发框架平台Oracle版本(架构+C#.NET+Oracle数据库)
平台建立WCF服务操作指引、+桥接接口实现
基于标准逻辑扩展的C/S架构Winform开发平台(原创)
软件开发与设计 - MIS-管理信息系统-产品管理系统(结构示例项目)
Asp.Net体系结构应用实例(附C#源代码)
[原创] Asp.Net体系结构应用实例(2)源代码
生成的项目模块(Project)添加到VS解决方案 - C/S框架架构代码生成器操作指南