您的位置:首页 > 运维架构 > 网站架构

走向.NET架构设计—第三章—分层设计,初涉架构(后篇)

2010-10-29 06:36 253 查看
走向.NET架构设计—第三章—分层设计,初涉架构(后篇)

  前言:本篇主要是接着前两篇文章继续讲述!

  


本篇的议题如下:

4. 数据访问层设计
5. 显示层设计

6. UI层设计


[b][b][b][b][b][b][b]

[/b][/b][/b][/b][/b][/b][/b]

  4. 数据访问层设计

  数据访问层,这块要说的不多。但是要澄清一点:数据访问不一定就是访问数据库,虽然多数的情况下,我们确实把数据存储在数据库中。

这里我们用数据库存储数据,并且用Linq To Sql来进行数据访问操作。

[align=center][/align]

代码

public partial class _Default : System.Web.UI.Page, IProductListView
{
private ProductListPresenter _presenter;

protected void Page_Init(object sender, EventArgs e)
{
_presenter = new ProductListPresenter(this, ObjectFactory.GetInstance<Service.ProductService>());
this.ddlCustomerType.SelectedIndexChanged += delegate { _presenter.Display();};
}

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack != true)
_presenter.Display();
}

public void Display(IList<ProductViewModel> Products)
{
rptProducts.DataSource = Products;
rptProducts.DataBind();
}

public CustomerType CustomerType
{
get { return (CustomerType)Enum.ToObject(typeof(CustomerType), int.Parse(this.ddlCustomerType.SelectedValue) ); }
}

public string ErrorMessage
{
set { lblErrorMessage.Text = String.Format("<p><strong>Error</strong><br/>{0}<p/>", value); }
}

}

  希望大家看到上面一堆代码不要晕,下面就通过一个图来讲述一下整个流程:  


Default

Page在页面的初始化的时候创建一个ProductListPresenter的实例,并且我们通过StructureMap的ObjectFactory.GetInstance方法得到了一个门户的ProductService。Default页面把任何对他的事件的调用委托给了Presenter,也就是说,我们基本上不在Default的页面代码后面做什么逻辑处理,这一切都放在Presenter里面。

最后我们设计的结构就很利于测试和维护,也有很强的扩展性。

  本篇(前。中,后篇)就到这里了,还是那句话:把三篇连在一起看,多琢磨下,有什么问题大家可以留言!多谢支持! :)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐