我正在寻找创建一个电子商务网站,但是我对应用程序的结构有两个可能的想法。
第一个想法是利用MVC 4并拥有一个EntityFramework层来与数据库进行通信。这是相当直接的,但我不喜欢在网站的前端进行所有处理的想法。
我的第二个想法是拥有一个位于MVC应用程序和EntityFramework之间的Web服务。这将负责大部分网站处理,并且仅向网站的前端公开必要的信息,以最小化网站前端的处理量。
这会是一个更好的解决方案,还是会有更好的解决方案呢?
答案 0 :(得分:2)
您应该在逻辑层和物理层之间做出改变。
为了避免过早优化,您可以在Web应用程序本身内拥有所需的所有逻辑层(传统的表示/业务/数据方法或其他模式,例如洋葱架构)。
稍后,如果需要,您可以始终优化并将部件移动到他们自己的物理层中,在这种情况下,您可以在其间使用Web服务或Web API。但这一切都取决于您的要求(服务的多个消费者?)和环境。例如,您可以轻松扩展网站本身。
因此,在您的情况下,请考虑这种额外抽象会带来什么附加值,以及它是否值得额外的复杂性。
答案 1 :(得分:1)
通过Web服务层内部运行EF访问所有流量具有以下好处:
没有理由通过Web服务接口在内部运行任何内容。这是建筑癌症 - 失控的复杂性增长。 Web服务是用户界面层和信任boudary,应该是应用程序的结束。如果你创建一个网络商务网站(而且很可能与亚马逊相比,这个网站非常简单和小巧),就没有必要参与那些让事情变得更加强大而没有任何收获的元素。
答案 2 :(得分:0)
DEPENDS!
从头开始构建电子商务网站我会使用一个客户端mvc网站,其中包含响应模式,因此它适合所有设备,并使用EF WebApi作为数据层来生成XML / JSON。