`
cloudtech
  • 浏览: 4610250 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

基于微软企业库的分层代码框架

 
阅读更多

一般我们都采用分层架构,

先思考业务,要解决什么样的业务问题,再去思考技术实现。

l 正向思维:

界面(UI)—>业务逻辑(BLL—>数据逻辑(DAL—>数据实体(Model—>数据存储(Db

l 反向思维:

数据存储(Db)—>数据实体(Model)—>数据逻辑(DAL)—>业务逻辑(BLL)—>界面(UI)

从数据库推导到界面,从界面推导到数据库。搞清楚类之间的关系。数据之间传递关系。

界面(UI):由控件组成。系统与用户交互的窗口。

业务逻辑(BLL):封装业务处理功能。对象的组合,应用。

数据逻辑(DAL):对数据的操作(算法)。(增删改查的多样性),对象函数,方法。

数据实体(Model):操作的数据结构。对象属性

数据存储(Db):数据的存储持久化。(表)。

体会:程序=数据结构+算法,程序=类对象+类对象之间的关系。

我们的很多项目都是基于微软企业库5.0搭建的。具体说一下我们在企业级项目中是怎么应用的。下面是架构图:

1.基于微软企业库的工具类

封装了微软企业库访问数据库常用的最基本的操作。


2.Model层(数据库表映射)

封装了很多属性。对应数据库表c_hbbb_code

代码:


3.Dal层(封装数据库操作增,删,改,查)


4.Bll层(跟具体业务有关的逻辑)


5.UI层(用户界面)

常用界面功能代码

界面模式:单选(新建,删除,修改,查看)

功能名称

查询 新建 删除 修改 查看

数据列表

加载数据

分页

自动加入序号

添加

删除

修改

查看

导出

加载数据

private void LoadData(string SJJG)

{

SFS.Bll.c_hbbb_code objC_SUBCOMPANY=new SFS.Bll.c_hbbb_code();

this.GridView1.DataSource = objC_SUBCOMPANY.GetList(“”);

this.GridView1.DataBind();

}

分页

protected voidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgs e)

{

this.GridView1.PageIndex = e.NewPageIndex;

LoadData(“”);

}

绑定时自动加入序号

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)

{

RadioButton rb = (RadioButton)e.Row.FindControl("rbSelect");

rb.Attributes.Add("onclick", "CheckOne(this);");

e.Row.Cells[1].Text = Convert.ToString(e.Row.RowIndex + 1);

}

}

添加

protected void btnAdd_Click(object sender, EventArgs e)

{

Response.Redirect("Add.aspx?JGDM=" + SJJG);

}

删除

protected void btnUpdate_Click(object sender, EventArgs e)

{

foreach (GridViewRow row in GridView1.Rows)

{

RadioButton radio = row.FindControl("rbSelect") as RadioButton;

if (radio != null && radio.Checked)

{

Label lblID = (Label)row.FindControl("lblJGDM");

Response.Redirect("Delete.aspx?JGDM=" + SJJG);

break;

}

}

}

修改

protected void btnUpdate_Click(object sender, EventArgs e)

{

foreach (GridViewRow row in GridView1.Rows)

{

RadioButton radio = row.FindControl("rbSelect") as RadioButton;

if (radio != null && radio.Checked)

{

Label lblID = (Label)row.FindControl("lblJGDM");

Response.Redirect("Update.aspx?JGDM=" + SJJG);

break;

}

}

}

一般写界面代码逻辑顺序

步骤

1

Page_Load

中判断Session是否超时。

获取页面参数。

加载初始化控件(DropDownListTextBox等控件)。

调用BBL层。

执行初始化查询绑定GridView控件。

调用BBL层。

2

Button_Click

判断界面参数设置数据有效性

脚本判断,或页面上后台代码判断。

处理数据一般包括。

增加:跳转到增加页面。

删除:删除前要提示。

修改:先判断是否选中,跳转到修改页面,需要传递参数。

查询:先检查查询条件的有效性,再执行查询。

调用BLL

判断是否刷新页面。

3

GridView

一般性代码(分页,加单选,多选处理,绑定超连接,特殊列处理)

获得选种行,传递相关参数。

4

其他特殊处理

分享到:
评论

相关推荐

    ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG 4.2】 2011迎新版

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序员开发量身定做的(ORM框架)代码生成工具,所生成的代码基于面向对象、分层架构设计、ORM并参考微软Petshop中的经典思想,...

    ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG 4.2】 2010岁末最新版

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序员开发量身定做的(ORM框架)代码生成工具,所生成的代码基于面向对象、分层架构设计、ORM并参考微软Petshop中的经典思想,...

    容易理解的多层构架框架(ASP.Net)示例

    微软号称以27倍的速度和1/4的代码量遥遥领先于基于J2EE的PetStore宠物商店, 可是好多朋友看不懂,呵呵, 想学构架分层,看PetShop可能还是有点难度滴哦。。。。 本示例不是要求大家明白其中的优化,旨在让大家明白...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG 4.1】2010年11月最新版

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序员开发量身定做的代码生成工具,所生成的代码基于面向对象、分层架构设计、ORM并参考微软Petshop中的经典思想,使用改进的...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate) 4.2

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序员开发量身定做的(ORM框架)代码生成工具,所生成的代码基于面向对象、分层架构设计、ORM并参考微软Petshop中的经典思想,...

    asp.net知识库

    Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web页面的提示保存功能 在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位...

    软件测试系列最佳实践

    7.3.2 基于STAF框架的Python脚本97 7.4 后台大规模性能测试102 7.4.1 测试工具的管理103 7.4.2 同步及异步控制模式103 7.4.3 测试逻辑的同步执行问题104 7.4.4 测试结果的收集106 7.5 小结107 第8章 ...

    HMNet:“具有跨域预训练的抽象会议摘要的分层网络”的正式实施

    这是微软在EMNLP 2020的HMNet模型论文的官方代码,在PyTorch框架下实现。 要引用的相关是: @Article{zhu2020a, author = {Zhu, Chenguang and Xu, Ruochen and Zeng, Michael and Huang, Xuedong}, title = {A ...

    GoodProject Maven Webapp.zip

    jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情。它封装JavaScript常用...

Global site tag (gtag.js) - Google Analytics