Web服务层是否有益?

时间:2014-06-11 09:13:39

标签: entity-framework model-view-controller

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

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

我的第二个想法是拥有一个位于MVC应用程序和EntityFramework之间的Web服务。这将负责大部分网站处理,并且仅向网站的前端公开必要的信息,以最小化网站前端的处理量。

这会是一个更好的解决方案,还是会有更好的解决方案呢?

3 个答案:

答案 0 :(得分:2)

您应该在逻辑层和物理层之间做出改变。

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

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

因此,在您的情况下,请考虑这种额外抽象会带来什么附加值,以及它是否值得额外的复杂性。

答案 1 :(得分:1)

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

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

没有理由通过Web服务接口在内部运行任何内容。这是建筑癌症 - 失控的复杂性增长。 Web服务是用户界面层和信任boudary,应该是应用程序的结束。如果你创建一个网络商务网站(而且很可能与亚马逊相比,这个网站非常简单和小巧),就没有必要参与那些让事情变得更加强大而没有任何收获的元素。

答案 2 :(得分:0)

DEPENDS!

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