我打算使用RavenDB作爲我的數據存儲來構建單頁應用程序(SPA)。我應該在使用RavenDB時應該放置什麼業務邏輯
我想從SPA片的ASP.NET Hot Towel模板開始。
我將刪除EntityFramework/WebApi/Breeze組件並將其替換爲RavenDB的存儲和ServiceStack以構建後端API。
目前大多數的意見似乎在使用任何類型的存儲庫或附加的抽象對RavenDB的頂部皺眉,並呼籲直接使用RavenDB API控制器內(在MVC應用程序)
我假設我應該遵循將Raven與ServiceStack結合使用並直接在我的服務實現中對IDocumentSession進行調用時也是如此。
我的擔憂在於,看起來我的服務實現會變得相當臃腫,因爲遵循此路徑。我似乎還經常需要多次編寫相同的代碼,例如,如果我需要更新多個不同Web服務端點中的用戶文檔。
我似乎也需要從我的應用程序的其他(未來)部分訪問Raven。例如,我可能需要添加一個控制檯應用程序來處理未來隊列中的作業,並且這部分應用程序可能需要訪問Raven中的數據......但是從一開始,我唯一通往Raven的路徑將通過Web服務API。我只是打算從這個理論控制檯應用程序調用web api?如果它們可能運行在相同的硬件上,看起來效率低下。
任何人都可以提供任何建議,如何在我的web服務和其他地方有效利用Raven,同時仍然遵循使用此文檔商店的最佳做法?創建一箇中間業務邏輯層直接處理針對raven的調用似乎很實際...允許我的web服務調用此層中的方法。這有意義嗎?
編輯
誰能提供最近的任何類似架構的樣本?
感謝您的詳細解答!我研究的越多,我越傾向於你所描述的建築。你能提供一個典型的域對象用什麼方法來設置屬性的例子嗎? – stephen776