我正在制作一个基于.Net的应用程序结构。目前,我正在使用MVC 5。以下是系统不同组件的详细信息。
1. 数据库 - 这是底层数据库,将包含数据。
2. OData API - 此API将与数据库交互,并仅执行与数据库相关的操作(CRUD)。我希望此API成为访问和操作数据的唯一平台。它将提供通过不同方式(IQueryable、SQL查询、存储过程)检索数据的功能。
3. 业务服务 - 它将由两部分组成。引擎和API。引擎将具有其中的业务逻辑,其中可能包括业务规则,例如WorkflowEngine将处理所有工作流动作。Resident Workflow Action(CRUD Ops)和Non-Resident Workflow Actions(Submit、Approve、Send Back)。API将在UI和引擎之间通信。然后,引擎将运行业务逻辑并与OData通信。BusinessAPI将是专有API,对这些API的访问将是订阅式的(付费访问)。
4. 用户界面 - 用户界面将基于MVC,并且只与Business APIs交互,并且只负责显示数据并将数据发送回Business APIs。
看起来像是N-Layed架构。如果我引入接口,是否可以与ONION架构相比较。如何将其转换为ONION架构,而不会影响安全性、可扩展性和性能?
1. 数据库 - 这是底层数据库,将包含数据。
2. OData API - 此API将与数据库交互,并仅执行与数据库相关的操作(CRUD)。我希望此API成为访问和操作数据的唯一平台。它将提供通过不同方式(IQueryable、SQL查询、存储过程)检索数据的功能。
3. 业务服务 - 它将由两部分组成。引擎和API。引擎将具有其中的业务逻辑,其中可能包括业务规则,例如WorkflowEngine将处理所有工作流动作。Resident Workflow Action(CRUD Ops)和Non-Resident Workflow Actions(Submit、Approve、Send Back)。API将在UI和引擎之间通信。然后,引擎将运行业务逻辑并与OData通信。BusinessAPI将是专有API,对这些API的访问将是订阅式的(付费访问)。
4. 用户界面 - 用户界面将基于MVC,并且只与Business APIs交互,并且只负责显示数据并将数据发送回Business APIs。
看起来像是N-Layed架构。如果我引入接口,是否可以与ONION架构相比较。如何将其转换为ONION架构,而不会影响安全性、可扩展性和性能?