1

我有以下情况:

我们为我们的客户开发了一款 silverlight 4 应用程序,将用作浏览器外的应用程序。该应用程序正在离线工作,即应用程序和数据库位于用户本地计算机上。该应用程序使用 WCF-RIA-services 连接到本地数据库。数据库将是 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 服务来实现这一点。

好的,这就是场景,这是问题:

在这种情况下我们需要本地网络服务器吗?该应用程序以编程方式安装为浏览器外,数据库是本地的并通过 WCF-RIA 连接。

如果是,哪个网络服务器就足够了?它应该通过客户执行的初始设置进行安装和配置。客户不必对配置网络服务器做任何事情。

对这种情况有任何其他想法或评论吗?对此还有其他可能的解决方案吗?

感谢您的帮助
德克

4

2 回答 2

0

我认为 silverlight 不应该以这种方式使用。因此,就像您在 Visual Studio 中开发应用程序并使用 Cassini 来查看结果一样——一切都在本地运行——但你仍然需要一个 Web 服务器。也许更多信息在这里 - http://www.infoq.com/news/2010/06/WPF-vs-Silverlight

于 2011-01-14T22:41:21.303 回答
0

我无法为您的问题提供完整的答案,因为我们目前面临同样的问题。(WPF 不是跨平台的,某些客户端上的硬件非常特殊)

但我可能会分享我们对我们的厚银光客户端类型的一些想法:

  1. 为了保持部署等简单,我们使用自托管进程(作为后台进程安装)
  2. 我们可能不会使用 RIA,因为后台进程必须使用 Mono VM 运行(但对于仅限 MS 的解决方案,请参阅Can WCF RIA Services be self hosting?

关于独立“客户”的架构思想:

根据您的要求,为每个通过消息(NServiceBus)与“主”服务器通信的客户端实现服务器可能是矫枉过正。但是,如果您想使用离线客户端数据库和用于 ui 的 silverlight,您应该考虑使用事件驱动架构。

有一个幻灯片显示将“事件驱动架构”和“CQRS”与 Silverlight 相结合。但我不会将它用作更像是灵感的蓝图。 http://www.slideshare.net/dennisdoomen/cqrs-and-event-sourcing-an-alternative-architecture-for-ddd

于 2011-02-07T20:38:20.433 回答