2

需要决定我正在构建的一个 Silverlight 应用程序的架构和设计。应用程序用于需求/问题跟踪。
要求:

  • SL 4
  • ASP.NET (MVC)
  • 完全信任的共享主机环境,IIS7

我想拥有:

  • CQS (CQRS) 风格的分离、查询和命令
  • 一个 db,不需要像“真正的”CQRS 中那样的两个存储,我没有竞争条件,也没有缩放问题。如果我可以使用 RavenDb 那就太好了
  • 对于命令,我将使用在服务器端处理并在客户端 (SL) 上发布的单向命令 DTO 对象,灵感来自“CQRS,停止 CRUDing,爱域”的 NDC11 会话
  • 我喜欢查询数据的 RIA 服务风格,通过 DataService 公开实体,但它确实只适用于 EF 和 NH(关系模型)
  • 如何使用 RavenDb 查询数据?我在共享主机上,所以我必须使用嵌入式模式,并且无法启动 ravendb.exe 进程,它必须托管在 asp.net 应用程序中。我真的没有任何使用 RavenDb 的经验,这就像学习项目。
  • 不想使用 WCF 公开 RPC SOAP 端点,有没有更好的解决方案,REST?

因此,命令端不是问题,但无法弄清楚如何使用 RavenDb、共享托管和一些简单的 REST 样式从 Silverlight 应用程序查询数据。RavenDb 是否支持开箱即用之类的东西?

正如 Ayende 所回答的,RavenDb 可以在 asp.net 中运行,并可以从 Silverlight 进行查询。现在的问题是,至少对于阅读方面来说,这是一种好方法吗?Db 向客户端应用程序公开,没有任何服务器端逻辑(服务/应用程序层),因此任何人都可以修改数据(如果已通过身份验证)。

我是从 Silverlight 执行命令(写入),还是将命令 DTO 对象 (DelegateToOtherMemberCommand) 传输到服务器,然后在域对象 (Ticket.AssignTo(member)) 上执行它?

4

1 回答 1

2

Hrvoje,您可以将 RavenDB 与共享主机一起使用。您通常将 RavenDB 设置为应用程序中的虚拟目录,然后在 IIS 中进行设置,如下所示: http ://ravendb.net/documentation/docs-deployment-iis

然后,您可以将 RavenDB 公开给您的 SL 客户端,并且只需使用 Raven.Client.Silverlight 程序集

于 2011-07-04T13:03:29.917 回答