业务逻辑和反序列化

Business logic and deserialization

我正在 ASP.NET Core 中开发一个软件,我遵循服务和存储库模式。我有一个用例,其中包括创建生产订单。为此,用户提供了一些参数(数量、产品等),其中一个参数是另一个软件系统(我也有一个存储库)中文件的路径

创建订单的逻辑基本上是访问文件(XML),在非持久对象中反序列化它并在我的数据库中创建一个寄存器(table Order).此订单的数据部分填充了 XML 数据。

我不清楚这个逻辑应该在哪一层,因为这里我需要将XML反序列化为一个对象,然后处理它来创建订单。 此流程是业务逻辑、服务逻辑或存储库逻辑的一部分吗?

一个 link 正确解释了逻辑类型之间的差异是惠康。

业务逻辑:)

我拆分了我的应用程序,因此所有业务逻辑都位于一个 class 中,该 class 被注入到我的控制器中,而数据存储库也被注入到其中。我让控制器只处理 HTTP 位,而将逻辑留在另一个 class 中,以便为它编写测试更容易。 例如:

Project: Api + Web Models.

Versioned Controllers.

Web Only Helpers.

项目:服务。

Business Layer.

Logging.

项目:数据层存储库

Database + Cache

项目:非 Web 模型/域 ORM 模型

项目:公用事业

Extra methods/common helpers.

Miscellaneous features such as serializers/compressors.

Enums.

Factories.

项目:可选测试。

UnitTests.

在这里阅读: https://diatomenterprises.com/asp-net-mvc-business-logic-as-a-separate-layer/