当前位置: 代码迷 >> ASP.NET >> 业务层是否应该出现System.Web.HttpContext.Current的引用呢?迷茫中,该如何处理
  详细解决方案

业务层是否应该出现System.Web.HttpContext.Current的引用呢?迷茫中,该如何处理

热度:4091   发布时间:2013-02-25 00:00:00.0
业务层是否应该出现System.Web.HttpContext.Current的引用呢?迷茫中
System.Web.HttpContext.Current.Server.Session,Mappath,ResoveUrl等等,在asp.net项目中很常用。

但是,在三层或多层结构中,System.Web.HttpContext.Current是否应该出现在业务层呢??这些到底是UI层还是业务层的东西呢?看上去这些似乎是和业务密切相关的,是业务层吗?但其namespace叫“system.web”,事实上如果要把程序改为winform,那他们用不了,这样看来应该是属于UI层吧?

迷茫中。

------解决方案--------------------------------------------------------
不用纠结这些东西,框架什么的都是浮云,不用太在意。真正需要在意框架的时候,你会知道的。
------解决方案--------------------------------------------------------
回答楼主:
System.Web.HttpContext.Current不应出现在业务逻辑层,
可以出现在基于asp.net的ViewModel和ViewController中,
通过ViewController来更新业务逻辑层的BusinessModel
(注意:不是DataModel,比如User.IsLogin或者Customer.Name这样的东西)

在构建分层体系之前,应该明确每层的职责,价值取向是:
1.保持尽量短的驱动链;
2.细化分层,分出尽量多的层;
3.MVC设计模式具备以上2种特征,可以分出N层,却保持恒定2级驱动
也就是说,MVC不仅仅是三层的,可以是N多层,却始终保持最短的驱动链
  相关解决方案