【问题标题】:Would a web service layer be beneficial?Web 服务层会有用吗?
【发布时间】:2014-06-11 09:13:38
【问题描述】:

我正在寻找创建一个电子商务网站,但是对于应用程序的结构我有两个可能的想法。

第一个想法是利用 MVC 4 并使用 EntityFramework 层与数据库进行通信。这是相当直接的,但我不喜欢在网站前端进行所有处理的想法。

我的第二个想法是在 MVC 应用程序和 EntityFramework 之间建立一个 Web 服务。这将负责大部分网站处理,并将仅向网站前端公开必要的信息,以最大限度地减少网站前端的处理量。

这是一个更好的解决方案,还是有其他更好的解决方案?

【问题讨论】:

    标签: entity-framework model-view-controller


    【解决方案1】:

    您应该区分逻辑分层和物理分层。

    为避免过早的优化,您可以在 Web 应用程序本身内部拥有所需的所有逻辑层(传统的表示/业务/数据方法或其他模式,例如洋葱架构)。

    以后,如果需要,您可以随时优化并将部件移动到它们自己的物理层中,在这种情况下,您可以在两者之间使用 Web 服务或 Web API。但这一切都取决于您的要求(服务的多个消费者?)和环境。例如,您可以轻松扩展网站本身。

    所以在你的情况下,想想这个额外的抽象会有什么附加价值,以及它是否值得额外的复杂性。

    【讨论】:

      【解决方案2】:

      通过内部网络服务层运行 EF 访问的所有流量具有以下好处:

      • 它会超出您的预算,因为您确实在高吞吐量低级接口中添加了许多缓慢的处理超载(字符串解析)。
      • 由于延迟增加,它绝对可以确保您的性能较低。
      • 这完全可以确保您花费更多的工作时间来获得解决方案,因为您需要为任何小型数据库访问实施和测试 Web 服务。

      没有理由通过 Web 服务接口在内部运行任何东西。它是建筑癌症——失控的复杂性增长。 Web 服务是用户界面层和信任边界,应该是应用程序的末端。如果您创建一个电子商务网站(与亚马逊之类的网站相比,这很可能是微不足道的小网站),则无需参与那些让事情变得更加复杂而没有任何收获的元素。

      【讨论】:

        【解决方案3】:

        取决于!

        从头开始构建电子商务网站我会使用考虑到响应模式的客户端 mvc 网站,因此它适用于所有设备,并使用 EF WebApi 作为数据层来生成 XML/JSON。

        【讨论】:

        • 你能具体说明原因吗?
        • 因为他喜欢我在帖子中列出的优势。或者不了解这项技术,可悲的是。 EF WebAPI 接口意味着后端服务器和前端客户端之间的应用程序边界(如 WPF 应用程序,即信任边界),并且在单一系统中使用它是不关心性能的人的常见滥用。可悲的是发生得太频繁了。
        • TomTom ,我认为您是“不了解技术”的人,因为我指出的是当今构建新现代网站的新时代。为什么我建议它?我不确定,我喜欢使用新事物并保持最新状态。
        猜你喜欢
        • 2014-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多