以前我的ASP.NET Web应用程序使用ADO.NET直接连接到数据库.现在我想将其更改为3层,ASP.NET层,中间Web服务层和后端数据库层.我认为我可以将数据源抽象到ASP.NET前端,松散耦合并降低潜在的安全风险,让外部暴露的ASP.Net Web应用程序能够直接访问数据库等等.
与具有3层架构的2层架构相比,我遇到了2个主要问题.
另外一个中间Web服务层将产生更多流量,例如ASP.NET不直接与数据库通信,但是与Web服务的对话以及与数据库的Web服务对话将产生更多流量.它会成为瓶颈吗?如果是瓶颈,解决这个问题的一般建议是什么?
由于ASP.NET无法连接到数据库但连接到Web服务,因此无法轻松获取DataSet/DataTable对象.将表格数据呈现给数据绑定控件变得很困难.任何使ASP.NET中的表示层更容易编码的想法?
问候,
乔治
如果你只认为有一个好处,你就不应该这样做.您正在谈论增加大量复杂性并为自己工作,代价是性能,代码简单性和架构简单性......对于什么?你有什么收获值这些费用?
你呢:
有紧急的安全相关需求,需要断开网络前端与数据库服务器的连接(不,不是假设"我打赌这会更安全"但可以证明,具体的安全问题无法通过聪明的数据库权利来解决授予您的ASP.NET应用程序)
期望在未来的某个时刻完全交换您的数据层(可能反复),因此需要将您的Web代码库与激进的DB更改隔离开来?
在几乎每种情况下,这些答案都是否定的.这样做只会给自己和其他可能触摸此应用的人带来痛苦.