ASP.NET MVC 与 Web API 架构

ASP.NET MVC with Web API Architecture

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

  1. 客户端(表现层,MVC)
  2. CrossCuttingServices(框架组件,如日志记录、缓存、数据、Class 库)
  3. 数据(Entity framework 数据库交互层,C# class lib)
  4. 服务(将由 Presentation、Web API 使用的服务层)

Q1。我的问题是,我应该在哪里创建我的实体 classes 或模型,它们将用于从 Presentation 到 Services 再到 Data?在 Presentation 模型或 Web API 服务层或作为单独的项目(C# 库)?

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

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

Q2:您始终可以向 API 发送请求以获取结果数据,这基本上就是它们的用途。

我决定选择建筑,比如 1. JS Enabled Presentation (webform or only HTML + JS) 2. Web API(控制器调用数据服务(EF+Repo)作为我的数据服务层,它可以支持我基于浏览器的前端和设备

让我知道任何缺点

我们有一个类似的问题,域模型非常复杂。结果我们选择了

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

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

  • UI 有分销商目录项的概念,它是目录项的特化
  • WebAPI 使用基本的 catalogueitem 数据模型,但是 returns 基于特定资源的不同数据 [例如搜索 URL returns 项目 ID 和基本信息;项目查找 URL returns 目录项目的完整详细信息。

作为上述结果,我们的 DomainModel 中的 catalogueitem 是完整的完整对象,不同的 "clients" 然后按照他们认为合适的方式进行映射。
[这符合Filip Stankovski上面说的]