4

我对微风很陌生,有几个问题。

我认为微风js有很好的功能,所以我可以替换我自己的数据上下文。但是,我不想让微风直接与 dbcontext 层交互。事实上,在我的应用程序中,Service 层只向 Controller 公开 ViewModel——甚至没有真正的业务模型。所以我不太确定我是否可以使用 Breeze,因为在少数 Breeze 的示例中,我只看到 Breeze 直接与 DBContext 交互。

谢谢。

==========================================

感谢沃德的回答,

关于我喜欢 Breeze 的特性,它有助于减少大量时间来构建我自己的客户端视图模型。而要构建一个 SPA,维护客户端视图模型对我来说真的很痛苦,尤其是我的应用程序有桌面应用程序客户端和其他手持设备的应用程序。此外,为了处理从 JSon 对象到 Knockout 的映射——这意味着对于每个视图模型,我还需要一个映射器。

目前,我的架构是这样的:

服务器端:存储层 <=> 服务层 <=> 控制器(带有暴露给客户端的 Web API)

控制器只能通过 Service 发送请求来获取数据(以 View Model 的格式)。

所以,我的问题是是否可以利用 Breeze 进行查询以及它与淘汰赛的集成。

4

2 回答 2

3

Breeze 从不直接与您的 DbContext 一起工作;它适用于您通过服务上的端点公开的服务模型(例如,Web API 控制器方法)。但是,当客户端可以查询和保存与服务器上的实体结构相同的实体时,您肯定会从 Breeze 中获得最大的价值。

您可以使用 Breeze 检索 ViewModel - 您可以使用 Breeze 调用几乎任何 HTTP 服务方法。我不清楚 Breeze 在您检索到它们后如何帮助您管理客户端上的这些 ViewModel。

Breeze 的哪些功能在您看来“非常好”?您对该问题的回答将帮助您确定 Breeze 是否有助于您首选的建筑风格。

于 2012-12-31T07:34:14.430 回答
1

在没有 API 控制器的情况下直接使用 DBContext 通过 Breeze 查询数据应该没问题,保存可能更难但仍然可以管理。我认为最复杂的部分是向客户端获取元数据。

根据这个 SO answer,用于从其他来源公开元数据的示例 DBContext 应该在一周左右的时间内直接发布。

同时,检查BreezeJS spa-template 示例,因为服务器端涉及存储库模式,这使其类似于您的数据访问设置。

于 2013-03-20T08:23:03.307 回答