将基于会话的asp.net应用程序移动到n层架构

时间:2010-07-20 21:41:51

标签: c# asp.net architecture n-tier-architecture

我继承了一个大型的asp.net网站,该网站在会话信息上依赖

有一个后端系统可以根据需要通过Web服务提供必要的信息,但是应用程序本身没有数据库,所有内容都通过一堆数据对象保存在会话中,这些数据对象可以在整个应用程序中直接访问。

我最终想尝试将应用程序迁移到真正的N层架构,并开始使用数据库而不是基于会话的数据对象。

我的问题是,到达所需架构的推荐路径是什么?

我认为最初的步骤是创建一个用于访问数据对象的数据访问层。一旦到位,我就可以用数据库替换数据对象。

问题是会话数据对象可以从应用程序的任何位置直接访问。由于这些对象存储在会话中,因此您可以直接设置其任何属性,而无需控制数据。这是在整个应用程序中完成的。

例如,假设您在会话中存储了客户数据对象。如果要修改此客户,您所要做的就是将局部变量设置为会话中存储的对象。然后,您可以通过设置 mylocalvar.LastName =“blah”来更新对象中的任何内容; 您的会话对象现在已更新,而无需执行任何其他操作。

之前有没有人做过这样的事情,并且对我可以用来完成它的步骤有什么想法?

*注意:我不打算卸载会话数据,而是重新设计数据的保存和访问方式。

1 个答案:

答案 0 :(得分:1)

听起来像个大工作!

我想第一步是为你的会话信息构建一个抽象层,并重构你的代码,使其依赖于而不是会话。一旦你完成了这个,你的gui代码现在只依赖于抽象层,你将能够从抽象层中取出会话代码并用数据访问代码替换它,你的gui应该不是更明智的