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

 

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

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

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

其他特殊处理

 

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

管理大亨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值