【问题标题】:Business logic and deserialization业务逻辑和反序列化
【发布时间】:2020-10-09 23:11:07
【问题描述】:

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

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

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

欢迎提供正确解释逻辑类型之间差异的链接。

【问题讨论】:

  • 可以说它是位于逻辑层之间的传输层的一部分。

标签: asp.net-core appdomain business-objects business-logic


【解决方案1】:

商业逻辑:)

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

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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2015-11-10
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多