网站的业务层是否应该访问会话状态?

tsp*_*uld 1 asp.net session

我正在努力维护一个ASP.NET网站,我注意到业务层和其他支持库大量使用HttpContext.Current.Session.这使得很难跟踪会话变量,确定它们的用途以及它们为什么存在.

在业务层中使用会话被认为是不好的做法吗?将所有使用会话的代码移动到代码隐藏中是否明智?

Rya*_*ner 5

这几乎不是一个好主意.有很多原因,但这里有一对:

  • 除了ASP.NET之外,你永远无法使用业务层代码
  • 单元测试变得更加痛苦甚至不可能.

当我们开始构建使用通用业务层代码的服务时,我们遇到了这种完全相同的情况.