锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C#开源英语 / C#3层架构引导中文译文
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850 手机:138-0381-0136 Q Q:396806883 淘宝:店铺

锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。

英文原文

介绍

本文讨论了3层架构的实现,使用C#和一个使用MS Access数据库的虚拟客户系统。在这篇文章中,我想实现一个小型的可重用组件,维护客户的3层架构。它显示了如何添加,更新和寻找客户的详细信息。

背景

首先我想讨论一些关于理论方面的3层架构。我将简要描述3层架构是什么,什么是它的优点。

什么是3层架构?

三层(层)是一个客户端 - 服务器架构,在此架构里用户界面、业务流程(业务规则)和数据存储及数据访问模块作为互相独立的模块,或通常部署在分离的平台上,以独立和分离为目的来开发和维护。基本上,有3层:第1层(表示层,GUI层)、2层(业务对象,业务逻辑层)和第3层(数据访问层)。这些层可以单独开发和测试。 把代码分成3层的需要是把业务逻辑及数据库访问和用户界面分离具有许多优点。如下:

  • 快速开发导致的可重用业务逻辑组件。比方说,我们有一个模块处理添加,更新,删除和查找系统中的客户。该组件进行开发和测试后,我们可以在任何可能涉及到维护客户的其他项目中使用。
  • 改造系统容易。由于业务逻辑从数据访问层是分开的,不断变化的数据访问层不会影响业务逻辑模块了。比方说,如果我们正在从SQL Server数据存储更换到Oracle,这时对于业务层组件和GUI组件,是不应该有任何的变化。
  • 系统管理变更很容易。比方说,如果在业务逻辑层有一个微小的变化,我们不必在用户的电脑上安装整个系统。例如,如果GST(含税)从10%到15%的变化,我们只需要更新业务逻辑组件,不影响用户使用,也没有任何的停机时间。
  • 分离的功能服务许可允许应用专家们对个人管理层次的并行开发。
  • 提供了更灵活的资源分配。在把数据发送到客户端之前,让功能服务器梳理数据为需要的精确结构,可以减少网络流量。

使用代码 这个组件有3层。第1层或GUI层的一种形式被称为FrmGUI,第2层或业务逻辑将被称为短BOCustomer:业务对象客户,最后3层或数据层称为短DACustomer。在同一项目中为便于工作,我已编制3层。我包括所有的源代码,以及MS Access数据库,用来测试这个项目中所包含的zip文件。 用户界面层 这是一个从用户界面的代码块。这里只列出了用于调用中间层或业务逻辑层的功能代码。 我保留了一个业务逻辑层的引用,引用为BOCustomer。

//This function get the details from  the user via GUI 
//tier and calls the Add method of  business logic layer.本函数通过GUI层得到用户具体信息且调用业务逻辑层的Add方法 
private void cmdAdd_Click(object  sender, System.EventArgs e)
{
try
{
cus = new BOCustomer();
cus.cusID=txtID.Text.ToString();
cus.LName =  txtLName.Text.ToString();
cus.FName =  txtFName.Text.ToString();
cus.Tel= txtTel.Text.ToString();
cus.Address = txtAddress.Text.ToString();
cus.Add();
}
catch(Exception err)
{
MessageBox.Show(err.Message.ToString());
}
}

//This function gets the ID from the user and finds the //customer details and return the details in the form of //a dataset via busniss object layer. Then it loops through //the content of the dataset and fills the controls. 本函数得到用户ID,且查找客户细节,且通过业务逻辑层以数据集的形式返回细节。接着它遍历数据集的内容且填充控件 private void cmdFind_Click(object sender, System.EventArgs e) { try { String cusID = txtID.Text.ToString(); BOCustomer thisCus = new BOCustomer(); DataSet ds = thisCus.Find(cusID); DataRow row; row = ds.Tables[0].Rows[0]; //via looping foreach(DataRow rows in ds.Tables[0].Rows ) { txtFName.Text = rows["CUS_F_NAME"].ToString(); txtLName.Text = rows["CUS_L_NAME"].ToString(); txtAddress.Text = rows["CUS_ADDRESS"].ToString(); txtTel.Text = rows["CUS_TEL"].ToString(); } } catch (Exception err) { MessageBox.Show(err.Message.ToString()); } } //this function used to update the customer details. 用于更新 private void cmdUpdate_Click(object sender, System.EventArgs e) { try { cus = new BOCustomer(); cus.cusID=txtID.Text.ToString(); cus.LName = txtLName.Text.ToString(); cus.FName = txtFName.Text.ToString(); cus.Tel= txtTel.Text.ToString(); cus.Address = txtAddress.Text.ToString(); cus.Update(); } catch(Exception err) { MessageBox.Show(err.Message.ToString()); } }

友情链接
版权所有 Copyright(c)2004-2024 锐英源软件
统一社会信用代码:91410105098562502G 豫ICP备08007559号 最佳分辨率 1440*900
地址:郑州市金水区文化路97号郑州大学北区院内南门附近