2011-07-04 46 views
2

需要決定我正在構建的一個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))上執行它?

回答

2

Hrvoje, 您可以使用RavenDB共享主機。你通常設置RavenDB爲你的應用程序中的虛擬目錄,你安裝它在IIS如下所示: http://ravendb.net/documentation/docs-deployment-iis

然後,您可以公開RavenDB你的SL客戶端,只是使用Raven.Client.Silverlight裝配

+0

然後我查詢到Ravendb端點,如domain.com/ravenVirtualFolder?關於端口,它在80上運行? –

+0

是的,它可以在端口80上運行 –