ASP.NET MVC 与 Web API 架构
ASP.NET MVC with Web API Architecture
大师们,
我是 MVC 的新手。我正在为订单管理系统开发一个 Web 应用程序。我设计的架构将以下项目作为我的解决方案的一部分:
- 客户端(表现层,MVC)
- CrossCuttingServices(框架组件,如日志记录、缓存、数据、Class 库)
- 数据(Entity framework 数据库交互层,C# class lib)
- 服务(将由 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上面说的]
大师们, 我是 MVC 的新手。我正在为订单管理系统开发一个 Web 应用程序。我设计的架构将以下项目作为我的解决方案的一部分:
- 客户端(表现层,MVC)
- CrossCuttingServices(框架组件,如日志记录、缓存、数据、Class 库)
- 数据(Entity framework 数据库交互层,C# class lib)
- 服务(将由 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上面说的]