在没有实体框架的情况下使用Breeze.js

时间:2013-08-05 14:22:31

标签: javascript entity-framework signalr breeze single-page-application

我们正在尝试使用与John Papa的Pluralsight课程(例如,Web API,淘汰赛,jquery等)类似的技术和技术来开发SPA。但是,作为一家公司,我们决定不使用Entity Framework。我们希望使用标准ADO.NET编写服务器端数据层。

现在,我们正试图将Breeze整合到我们的解决方案中。然而,即使Breeze网站说它们与微软并没有关系,但如果你不使用EF,那么你将会遇到与Breeze一起漫长而痛苦的旅程。

我们尝试评估NoDB Breeze示例,但是这个问题非常复杂且难以理解(并且弄清楚如何在服务器端的标准分层拱中实现它 - 一切似乎都是紧密耦合的,并且是只需放入MVC / Web API项目的Models文件夹即可。)

所以,我的问题是:

- 如果您不使用EF,Breeze是否是客户端数据库的错误选择?

- 如果Breeze可以很容易地在服务器端使用EF并且只使用直接的ADO.NET,那么是否有更好的示例或文档说明如何执行此操作?

- 鉴于我们的SPA实施非常类似于John Papa的SPA拱门,包括durandal,knockout,Web API等,除了(再次)我们没有使用EF,对我们来说有比Breeze更好的选择吗?

- 然后就是SignalR ......我们计划稍后实施SignalR,Breeze是否可以使用SignalR?

谢谢!

1 个答案:

答案 0 :(得分:7)

SO.com上有很多更具体的例子,但我想解决一些关键问题 -

  

我们尝试过评估NoDB Breeze示例,但事情非常重要   令人费解和难以理解(以及弄清楚如何   在服务器端的标准分层拱中实现它 -   一切似乎紧密耦合,只是放在模型中   MVC / Web API项目的文件夹)。

根据您使用的数据库类型,还有多个其他样本可用,以及在StackOverflow和Breeze上可用的方法。我可以在这里列出它们,但是如果你添加了你打算使用的数据库,那么提供更好的答案可能会更容易一些。

  

如果你是Breeze,那么Breeze是客户端数据库的错误选择   不使用EF?

无论您使用何种后端,Breeze都是绝佳的选择。根据您使用的其他技术,确定设置确实存在不同程度的难度,但是一旦您了解了它,您将回顾并嘲笑它比手动创建您自己的数据库更容易。以下是免费信息的一个很棒的例子,可以指导您了解如何使用各种技术 - Why are my Breeze.js entities not creating ko.observables?

  

如果Breeze可以很容易地使用EF而不是直接使用   服务器端的ADO.NET,有更好的示例或文档   显示如何做到这一点?

我会查看一些其他可用的样本,具体取决于您尝试使用的技术。以下是一些不使用EF的示例 -

Zza - http://www.breezejs.com/samples/zza

  • Angular,MongoDb,Node

Edmunds - http://www.breezejs.com/samples/edmunds

  • Angular with No Database,只是API消耗

很多时候您会发现只需要在查询中使用toType来从查询中创建实体。有时你需要更深入,但它又取决于技术。

  

鉴于我们的SPA实施与John Papa的SPA非常相似   拱形与durandal,淘汰赛,Web API等,除了(再次)我们不是   使用EF,对我们来说有比Breeze更好的选择吗?

还有其他客户端库,JayData可能是最受欢迎的。您可能需要让您的团队聚在一起,并决定哪些技术对您来说更有意义,考虑到很多不同的因素,与我们对StackOverflow的看法无关。

  

然后是SignalR ......我们计划稍后实施SignalR,   Breeze甚至可以使用SignalR吗?

更新了Ward的建议 - SignalR和Breeze似乎为您的应用程序提供不同的用途。我认为明智的做法是看看你的应用程序是否能更好地与SignalR配合使用,而不是Breeze是否会因为它们的不同而引起关注。