【发布时间】:2019-04-27 06:35:24
【问题描述】:
我正在构建基于 .Net 的应用程序的结构。目前,我使用的是 MVC 5。以下是系统不同组件的详细信息。
1。 数据库 – 这是底层数据库,将包含数据
2。 OData API – 此 API 将与数据库交互并仅执行与数据库相关的操作 (CRUD)。我希望这个 API 成为访问和操作数据的唯一平台。它将提供通过不同方式(IQueryable、SQL 查询、存储过程)检索数据的功能。
3。 商业服务——它包括两件事。引擎和 API。引擎中将包含业务逻辑,其中可能包含业务规则,例如 WorkflowEngine 将处理所有工作流操作。驻留工作流操作 (CRUD Ops) 和非驻留工作流操作(提交、批准、发回)。 API 将在 UI 和 Engine 之间进行通信。然后引擎将运行业务逻辑并与 OData 通信。 BusinessAPI 将是专有 API,对这些 API 的访问将基于订阅(付费访问)。
4。 UI – 用户界面将基于 MVC,仅与业务 API 交互,并且只负责显示数据并将数据发送回 BusinessAPI。
看起来像N层架构。如果我引入接口,它是否可以与 ONION 架构相媲美。
如何在不影响安全性、可扩展性和性能的情况下将其转换为 ONION 架构。
【问题讨论】:
-
一些顽固的老前辈可能会发现很难将 ONION 与尊重 SOLID 原则的经典 3 层架构区分开 :)
标签: .net architecture software-design onion-architecture n-layer