【发布时间】:2013-07-10 01:00:21
【问题描述】:
我正计划使用 RavenDB 作为我的数据存储构建单页应用程序 (SPA)。
我想从 SPA 作品的 ASP.NET 热毛巾模板开始。
我将删除 EntityFramework/WebApi/Breeze 组件并替换为 RavenDB 用于存储和 ServiceStack 用于构建后端 API。
目前大多数观点似乎不赞成在 RavenDB 之上使用任何类型的存储库或额外的抽象,并呼吁直接在控制器内部(在 MVC 应用程序中)使用 RavenDB API
我假设在将 Raven 与 ServiceStack 一起使用并直接在我的服务实现内部调用 IDocumentSession 时,我应该遵循同样的原则。
我担心的是,我的服务实现似乎会因为遵循这条路径而变得相当臃肿。似乎我经常需要多次编写相同的代码,例如,如果我需要在几个不同的 Web 服务端点中更新用户文档。
我似乎还需要从我的应用程序的其他(未来)部分访问 Raven。例如,我将来可能需要添加一个控制台应用程序来处理队列中的作业,而这部分应用程序可能需要访问 Raven 中的数据……但从一开始,我通往 Raven 的唯一途径就是通过网络服务 API。我只是打算从这个理论上的控制台应用程序调用 web api 吗?如果它们可能在相同的硬件上运行,似乎效率低下。
谁能就如何在我的网络服务和其他地方有效利用 Raven 提供任何建议,同时在使用此文档存储时仍遵循最佳实践?创建一个中间业务逻辑层来直接处理对 raven 的调用似乎很实用……允许我的 web 服务调用该层内的方法。这有意义吗?
编辑
谁能提供最近类似架构的样本?
【问题讨论】:
标签: c# .net nosql servicestack ravendb