我们有一个Web应用程序,可以在不同的项目中访问业务逻辑和数据访问。
设计方式,密钥值永远不会传递给数据访问层或业务逻辑。相反,业务层有一个类,它包含公共只读属性,DAL层通过该属性访问值。
业务逻辑层位于不同的项目中。 Web项目获得参考。
业务逻辑层具有以下类:Public NotInheritable Class clsUserProfile
哪个有这个属性:
Public ReadOnly Property AgencyCode() As Integer
Get
If clsAppInfo.IsWebApplication Then
If (HttpContext.Current.Session(_AgencyCodeKey) Is Nothing) Then
Return 0
Else
Return HttpContext.Current.Session(_AgencyCodeKey)
End If
Else
Return AgencyCodeWIN
End If
End Get
End Property
/ ** 对于Windows代理商代码声明为共享
Public Shared Property AgencyCodeWIN() As Integer
Get
Return _AgencyCodeWIN
End Get
Set(ByVal value As Integer)
_AgencyCodeWIN = value
End Set
End Property
/ * ** * 确定它是否是一个Web应用程序.......
Public Shared ReadOnly Property IsWebApplication() As Boolean
Get
If AppCodeWIN IsNot String.Empty Then
'Desk top App is required to pass AppInfo
Return False
Else
'Web App is default
Return True
End If
End Get
End Property
多个用户登录时是否会覆盖数据。 许多人说这是不可取的,但找不到任何可证明的理由,为什么不推荐它?
如果有人能说出明确的理由那么好。
谢谢, 沙地。
答案 0 :(得分:0)
当多个用户登录时,数据是否会被覆盖
没有
很多人说这是不可取的,但找不到任何可证明的理由,为什么不推荐它?
在这种情况下,添加第三种运行模式将是一种痛苦。
实际上,您的类clsUserProfile不应该知道您的应用程序运行模式(webapp或桌面)。它甚至不应该知道HttpContext和Session或者在两种运行模式之间进行选择,只是为了得到一个AgencyCode。
clsUserProfile应该是一个普通的C#对象。运行模式应该在应用程序的更高级别处理。