我已經繼承了一個大的asp.net網站,它依賴於會話信息上的嚴重。將基於asp.net應用程序的會話移動到n層架構
有一個後端系統,根據需要通過Web服務提供必要的信息,但應用程序本身沒有數據庫,並且所有內容都通過一堆數據對象保存在會話中,這些對象在整個應用程序中直接訪問。
我最終希望嘗試將應用程序遷移到真正的N層架構,並開始使用數據庫而不是基於會話的數據對象。
我的問題是,什麼是推薦的路徑到達期望的體系結構?
我在想,最初的一步是創建一個訪問數據對象的數據訪問層。一旦到位,我就可以用數據庫替換數據對象。
問題是會話數據對象是從應用程序中的任何地方直接訪問的。由於這些對象存儲在會話中,因此您可以直接設置其任何屬性,而無需控制數據。這貫穿整個應用程序。
例如,假設您有一個存儲在會話中的客戶數據對象。如果你想修改這個客戶,你所要做的就是設置一個局部變量給會話中存儲的對象。然後,您可以通過設置mylocalvar.LastName =「blah」;來更新對象中的任何內容。您的會話對象現在已更新,無需執行其他任何操作。
有沒有人做過這樣的事情,並有任何想法我可以用它來完成它?
*注意:我不打算卸載會話數據,而是重新構建數據的保存和訪問方式。
+1我的想法確切 - 抽象出來;當你這樣做時,記住界面隔離原則。 – 2010-07-21 01:51:55
是的,這肯定會很棘手。你提出的是我正在考慮的基本方向。最大的問題是沒有任何標準的數據操作機制,例如顯式保存數據,事務等。應用程序只是將一個本地(通常是全局)變量設置爲來自會話的已經存在的對象,然後直接根據需要更新它的屬性。你知道有哪些技巧可以幫助從一種設計轉移到另一種設計嗎? – AaronS 2010-07-21 03:36:33
那麼本地/全局變量在被操縱後會被存儲回會話狀態的哪一點?那時候,我猜測,你會在新的抽象層中「保存」數據。 – 2010-07-21 04:41:54