2011-01-14 15 views
1

瀏覽器Silverlight應用程序中我有以下情形:出與本地離線數據庫和WCF的RIA

我們爲客戶開發一個Silverlight 4的應用程序,將被用作外的瀏覽器的應用程序。該應用程序正在脫機工作,即應用程序和數據庫位於用戶本地機器上。該應用程序使用WCF-RIA服務連接到本地數據庫。數據庫將是SQL Server Express,SQL Server CE或MySQL。我們正在使用MVVMLight和MEF。

外部網絡服務器僅用於不時更新應用程序或嚮應用程序添加新模塊。爲了達到這個目的,我們做了類似於Jeremy Likness博客(http://www.wintellect.com/CS/blogs/jlikness/archive/2010/05/25/silverlight-out-of-browser-dynamic-modules- in-offline-mode.aspx)

我們這樣做的原因很複雜。但要長話短說,主要是爲了兼容性的原因,以後的在線版本,我們不想使用WPF。所以我們需要使用Silverlight和WCF-RIA服務。

好吧,這就是場景,這裏的問題:

我們需要在這種情況下本地Web服務器?該應用程序以編程方式安裝爲瀏覽器外,數據庫是本地的並通過WCF-RIA連接。

如果是,哪個網絡服務器就足夠了?它應該通過客戶執行的初始設置進行安裝和配置。客戶不需要爲配置網絡服務器做任何事情。

有關此場景的其他想法或意見?任何其他可能的解決方案?使用

感謝您的幫助
德克

回答

0

的Silverlight是不是意味着這種方式,我認爲。所以這就好比在Visual Studio中開發應用程序並使用Cassini查看結果 - 所有內容都在本地運行 - 但您仍需要Web服務器。也許更多的信息在這裏 - http://www.infoq.com/news/2010/06/WPF-vs-Silverlight

+0

感謝您的回答。 – Dirk 2011-01-19 16:25:50

0

我不能提供一個完整的答案給你的問題,因爲我們目前面臨同樣的問題。 (WPF不是跨平臺的,對有些客戶非常具體的硬件)

但我可以分享一些我們的想法在我們的類型厚的Silverlight客戶端的:

  1. 爲了保持部署等簡單的我們使用自託管進程(安裝爲後臺進程)
  2. 我們可以不使用RIA作爲後臺進程具有使用單聲道虛擬機上運行(但是對於MS-唯一的解決辦法見Can WCF RIA Services be self hosted?)在獨立

建築思想「客戶」:

根據您的要求,爲通過消息(NServiceBus)與「主」服務器通信的每個客戶端實施服務器可能是矯枉過正的。但是如果你想使用一個客戶端數據庫,如果離線和Silverlight的UI你應該考慮使用事件驅動架構。

將「CQRS」與Silverlight相結合的「Event-Driven-Architecture」&有幻燈片。但我不會把它作爲更靈感的藍圖。 http://www.slideshare.net/dennisdoomen/cqrs-and-event-sourcing-an-alternative-architecture-for-ddd