【发布时间】:2013-11-02 02:12:29
【问题描述】:
请坚持我,因为这个问题可能很长!我们目前正在为我工作的基于 Web 的应用程序进行架构和原型设计。这是一个包含大量错综复杂和大量数据的大型应用程序。
在前端技术方面,我们将使用 Durandal、Knockout 和 TypeScript(编写我们所有的 JavaScript 和 jQuery 代码)构建一个 SPA。
后端经过了非常仔细的考虑和架构。简而言之,我们将拥有一套应用程序服务(使用 nHibernate、AutoFac 等),它们将使用精心设计的域模型。然后,WebAPI 将使用应用程序服务中的方法将数据呈现回前端。
在构建具有大量数据库交互的 SPA 时,一个明显的想法是考虑 Breeze。 Breeze 出色的原因有很多。问题是,我们不确定它是否适合我们的架构。除了一些简单的原型之外,我们没有人使用过 Breeze,所以如果有人可以帮助回答以下问题,我们将非常感激!
1 - 我们假设默认使用 Breeze 会绕过我们的业务逻辑并直接进入 nHibernate 或 DB 是否正确?如果这个假设是正确的,有没有办法绕过它?任何建议/链接?我们的想法是,我们必须为 Breeze 编写一个适配器来路由到我们的业务逻辑并将元数据提供回 Breeze。然后这会带来其他问题,例如在系统的不同部分拥有部分和完全水合的模型,投影外键。这对我们来说是一个相当有争议的问题!
2 - 使用 TypeScript 的众多原因之一是通过智能感知为我们提供静态类型对象。我们是否正确假设如果我们使用 Breeze,我们就不会开箱即用?
3 - 我们根本不想要任何缓存。是否可以完全关闭微风的这一部分?
4 - 如果我们不使用查询功能(我们肯定不会,我们有一个搜索计划,这意味着不能同时使用 Breeze 查询功能),我们不会使用缓存功能并且我们可以放置一些东西(例如 T4 模板以从 DTO 自动生成 TypeScript 对象)以帮助 Breeze 允许的开发速度和减少代码,我们是否否定了使用 Breeze 的意义?
我做了很多搜索,但我只能找到为什么应该使用 Breeze。虽然我承认它很棒,但根据我目前的理解,我只是不确定它是否适合我们的应用程序。任何建议或推荐阅读将不胜感激。由于 Breeze 在现场相当新,我很难找到很多信息!
【问题讨论】:
标签: c# architecture breeze single-page-application