具有Web API架构的ASP.NET MVC

ASP.NET MVC with Web API Architecture

大师,
我是MVC的新手。 我正在开发用于订单管理系统的Web应用程序。 我设计的体系结构将以下项目作为解决方案的一部分:

  • 客户端(演示层,MVC)
  • CrossCuttingServices(框架组件,例如日志记录,缓存,数据,类库)
  • 数据(用于DB交互的实体框架层,C#类lib)
  • 服务(Presentation,Web API将使用的服务层)
  • Q1。 我的问题是,应在哪里创建实体类或模型,这些实体类或模型将在"从服务到数据的表示形式"中使用? 在Presentation模型中还是在Web API服务层中还是在单独的项目中(C#库)?

    Q2。 另外,让我知道是否有任何通用实现可从Presentation Controller调用WebAPI服务。


    我们有一个类似的问题,那就是一个非常复杂的域模型。因此,我们选择了

    • 在单独的DomainModel DLL中定义的数据实体模型
    • 从数据模型映射到UI模型的UI映射器类
    • 从数据模型映射到WebAPI模型的WebAPI映射器类

    我们为什么要这样做的一个例子?

    • UI具有分发者目录项的概念,这是目录项的一种特殊化
    • WebAPI使用基本catalogueitem数据模型,但随后根据特定资源返回不同的数据(例如,搜索URL返回项目ID和基本信息;项目查找URL返回目录项目的完整详细信息。

    由于上述原因,我们的DomainModel中的catalogiteitem是完整的完整对象,然后不同的"客户端"将其映射为合适的对象。
    [这与菲利普·斯坦科夫斯基所说的一致]


    我决定去像
    1.启用JS的演示文稿(网络表单或仅HTML + JS)
    2. Web API(控制器调用数据服务(EF + Repo)作为我的数据服务层),它可以支持基于浏览器的前端和设备

    让我知道相同的任何缺点


    问题1:在整个解决方案中,您将使用相同的实体,因此我建议将它们存储在您的Data项目中,因为它将所有与数据库相关的内容与其余逻辑分开捆绑在一起。

    问题2:您总是可以向API发送请求以获取结果数据,这本质上就是它们的用途。