需要決定我正在構建的一個Silverlight應用程序的體系結構和設計。 應用程序用於需求/問題跟蹤。
要求:從Silverlight中查詢RavenDb
- SL 4
- ASP.NET(MVC)
- 共享的託管環境以完全信任,IIS7
我想有:
- CQS(CQRS)風格的分離,查詢和命令
- 一個分貝,不需要像'真正的'CQRS那樣的兩個存儲,我沒有競爭條件和縮放問題。如果我可以使用RavenDb
- 作爲命令,我將使用在服務器端處理並在客戶端(SL)上發佈的單向命令DTO對象,靈感來自NDC11會話「CQRS,停止CRUDing,愛域」
- 我想查詢數據,通過DataService的暴露的entites的RIA Services的風格,但它確實有EF和NH(關係模型)的作品只是
- 我如何使用RavenDb查詢數據?我在共享主機上,所以我必須使用嵌入模式,並且無法啓動ravendb.exe進程,它必須在asp.net應用程序內部進行託管。我真的沒有RavenDb的經驗,這就像學習項目。
- 不想公開RPC SOAP端點與WCF,有沒有更好的解決方案,REST?
因此,命令端不是問題,但無法弄清楚如何使用RavenDb,共享主機和一些簡單的REST風格來查詢來自Silverlight應用程序的數據。 RavenDb是否支持那種即開即用的東西?
正如Ayende回答的那樣,RavenDb可以在asp.net中運行,並從Silverlight進行查詢。問題是現在,這是一個好方法,至少對於閱讀方而言? Db暴露給客戶端應用程序,沒有任何服務器端邏輯(服務/應用程序層),所以任何人都可以修改數據(如果它是通過身份驗證的話)。
是否從Silverlight執行命令(寫入),或將Command DTO對象(DelegateToOtherMemberCommand)傳遞給服務器,並在域對象(Ticket.AssignTo(member))上執行它?
然後我查詢到Ravendb端點,如domain.com/ravenVirtualFolder?關於端口,它在80上運行? –
是的,它可以在端口80上運行 –