我已經閱讀了一些關於創建無狀態網站的書籍,我已經閱讀了一些關於有狀態客戶端應用程序的內容,但是當你必須將兩者結合起來時,會出現很多複雜性。我們有一個Flex應用程序需要通過.NET服務將數據保存到數據庫。需要注意的是: - 併發(樂觀/悲觀) - 性能:Flex需要加載大量數據,因此經常需要延遲加載。 - 您是否使用Dto在服務器和客戶端之間傳輸數據?如何解決客戶端 - 服務器應用程序中的狀態無狀態?
我會告訴你我們產品的歷史。我們從一開始就使用SubSonic作爲o/r映射器。 SubSonic對象轉換爲我們寫的dto,這些dto被轉移到客戶端。客戶端的dto被轉換爲域模型。如果客戶端需要保存域模型對象,則將其轉換回dto併發送到服務器。服務器端將dto轉換爲亞音速對象並保存到數據庫。
現在,前段時間,我們需要.NET服務器端的域模型......所以現在我們有三個模型在服務器端,亞音速模型,dto模型和領域模型。 dto模型更簡單,更像數據庫,領域模型有更多的邏輯。它變得複雜......我們現在必須將AS3域模型代碼與C#域模型代碼同步。如果我們可以再做一次(花時間重構),我認爲我們不會再使用dto,而是在客戶端和服務器之間傳輸域模型。問題是如果這是現實的。 Dto是簡單的物體,非常容易轉移。領域模型對象可能非常複雜。
是否有關於如何爲這些類型的應用程序創建架構的書籍?有很多經驗的人寫的書嗎?你有這方面的經驗嗎?
偉大的信息,thx。我們使用延遲加載。對象合併似乎是一個有趣的想法,但要實現它... MarshalByrefObject也很有趣,但這確實是一個性能噩夢。我們經常使用客戶端的保存按鈕。它有優點和缺點......奇怪的是,我無法在這個複雜的問題上找到很多信息。謝謝! – 2009-11-02 22:17:08