ABP-Book Store Application中文讲解 - 前期准备 - Part 3:Acme.BookStore项目模块详解之二

 1. 汇总

ABP-Book Store Application中文讲解-汇总-CSDN博客

2. 前一章 

ABP-Book Store Application中文讲解 - 前期准备 - Part 3:Acme.BookStore项目模块详解

项目之间的引用关系。

目录

1. .Domain.Shared

 2. .Domain

3. .Application.Contracts

4. .Application

5. .EntityFrameworkCore

6. .DbMigrator--有自己的appsettings.json

7. .HttpApi

8. .HttpApi.Client

9. .HttpApi.Host--有自己的appsettings.json

10. .AuthServer--有自己的appsettings.json

11. Test Projects


1. .Domain.Shared

该项目包含常量、枚举和其他对象,这些对象实际上是域层的一部分,但需要在解决方案中的所有层/项目中使用。

BookType enum和BookConsts类(其中可能有一些Book实体的常量字段,如MaxNameLength)是本项目的理想选择。

此项目不依赖于解决方案中的其他项目, 所有其他项目都直接或间接地依赖于它。

 2. .Domain

这是解决方案的领域层。它主要包含实体(entities)、聚合根(aggregate roots)、领域服务(domain service)、值对象( value objects)、存储库接口(repository interfaces)和其他领域对象。

Book实体、BookManager域服务和IBookRepository接口都是这个项目的理想选择。

取决于.Domain.Shared是因为它使用项目中定义的常量、枚举和其他对象。

3. .Application.Contracts

本项目主要包括应用层的应用服务接口和DTO (Data Transfer Objects)。它的存在是为了分离应用层的接口和实现。通过这种方式,接口项目可以作为合同包共享给客户端。

IBookAppService接口和BookCreationDto类是这个项目很好的候选对象。

取决于Domain.Shared因为它可能在应用程序服务接口和DTOs中使用常量、枚举和这个项目的其他共享对象。

4. .Application

该项目是对定义在.Application.Contracts中接口的实现。

BookAppService 类

依赖于 .Application.Contracts ,实现.Application.Contracts定义的接口并医用DTOs.
依赖于.Domain ,可以使用domain objects (entities, repository interfaces... etc.) 去实现应用逻辑。

    5. .EntityFrameworkCore

    使用EF Core,定义DbContext,实现.Domain项目中定义的IRepository。

    如果使用mongodb,此项目不可用。

    6. .DbMigrator--有自己的appsettings.json

    执行DB的创建、DB的Update和初始化。有自己的配置文件。

    依赖项目为.EntityFrameworkCore和.Application.Contracts。

    1. 创建数据库

    2. 更新数据库表结构, DB migrations

    3. 初始化数据。 Seeds initial data

    7. .HttpApi

    此项目用于定义自己的API Controller,它依赖于.Application.Contracts。

    大多数情况我们不需要自定义Controller,因为ABP的API Controllers 会自动帮我们生成对应的APIs。除非你需要定义自己的APIs

    8. .HttpApi.Client

    这是一个定义c#客户端代理以使用解决方案的HTTP api的项目。您可以将此库共享给第三方客户端,这样他们就可以在其Dotnet应用程序中轻松地使用您的HTTP api(对于其他类型的应用程序,他们仍然可以使用您的api,无论是手动还是使用自己平台中的工具)。

    多数情况下我们不需要手动更改次项目,因为ABP的Dynamic C# API Clients 帮我们处理了此任务。

    可以删除此项目如果你不用定义客户端代理。

    9. .HttpApi.Host--有自己的appsettings.json

    项目API的主启动页面,引用了.Application, .EntityFrameworkCore,.HttpApi。有自己的配置文件。

    里面定义了数据库连接池,跨域设置,Redis, OpenIdDict Connection设置等。

    10. .AuthServer--有自己的appsettings.json

    OpenidDict connection,用于授权和鉴权的验证,缓存数据库是Redis。有自己的配置文件。

    11. Test Projects

    单元测试和集成测试项目,里面集成了一下项目的测试:

    • .Domain.Tests 测试.Domain.
    • .Application.Tests is 测试.Application.
    • .EntityFrameworkCore.Tests 测试EF Core configuration 和自定义的Repositories.
    • .TestBase is a base (shared) project for all tests.

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值