本文主要是介绍ABP VNext学习日记1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.安装和更新ABP CLI
解析:
dotnet tool install -g Volo.Abp.Cli
dotnet tool update -g Volo.Abp.Cli
2.模块拆分原则
解析:
[1]独立性:拆分复杂系统
[2]提高维护性:软件更容易升级
[3]提供扩展性:按需装配,灵活
[4]随机组合:提高复用性
3.安装Volo.Abp.AspNetCore.Mvc包
解析:Install-Package Volo.Abp.AspNetCore.Mvc
4.ABP模块
解析:
[1]提供application来接替整个应用程序的生命周期,包括启动、初始化和卸载等。
[2]提供模块化封装模块本身的行为与依赖。
[3]通过模块将模块内的行为与依赖注入到全局application的DI容器。
5.ABP应用程序模块
解析:
[1]Account:提供账户管理UI,并允许用户登录/注册应用程序。
[2]Audit Logging:用于将审计日志持久化到数据库。
[3]Background Jobs:用于在使用默认后台作业管理器时保存后台作业。
[4]Blogging:用于创建精美的博客,ABP的博客就使用了此模块。
[5]Docs:用于创建技术文档页面,ABP的文档就使用了此模块。
[6]Feature Management:用于保存和管理功能。
[7]Identity:基于Microsoft Identity管理角色,用户和它们的权限。
[8]Identity Server:集成了IdentityServer4。
[9]Permission Management:用于保存权限。
[10]Setting Management:用于保存设置。
[11]Tenant Management:管理多租户应用程序的租户。
[12]Users:抽象用户,因此其它模块可以依赖此模块而不是Identity模块。
[13]Virtual File Explorer:提供简单的UI查看虚拟文件系统中的文件。
说明:https://github.com/abpframework/abp/tree/dev/modules;
https://commercial.abp.io/modules。
6.审计日志对象
解析:一个审计日志对象通常是针对每个Web请求创建和保存的:
[1]请求和响应的细节[如URL、HTTP方法、浏览器信息、HTTP状态代码等]
[2]执行的动作[控制器操作和应用服务方法调用及其参数]
[3]实体的变化[在Web请求中]
[4]异常信息[如果在执行请求发生操作]
[5]请求时长[测量应用程序的性能]
7.对象到对象映射
解析:AutoMapper是最流行的对象到对象映射库之一,Volo.Abp.AutoMapper程序包使用AutoMapper实现了IObjectMapper。
8.ABP多租户
解析:ABP的多租户模块提供了创建多租户应用程序的基本功能:
Install-Package Volo.Abp.MultiTenancy
9.客户端代理生成
解析:Install-Package Volo.Abp.Http.Client
10.在做初始迁移/使用初始迁移来更新数据库时提示ScriptHalted
解析:Windows Management Framework 5.1:https://www.microsoft.com/en-us/download/details.aspx?id=54616
11.ABP领域层
解析:
[1]Acme.BookStore.Domain:包含实体、领域服务和其它核心域对象
[2]Acme.BookStore.Domain.Shared:包含可与客户共享的常量、枚举或其它域相关对象
12.应用服务
解析:
[1]Acme.BookStore.Application.Contracts:主要包含DTO和应用程序服务接口
[2]Acme.BookStore.Application:包含应用程序服务的实现
13.使用DbMigrator应用程序应用迁移
解析:
[1]Acme.BookStore.DbMigrator是一个控制台应用程序,可以创建数据库,应用迁移和初始化数据。数据库信息在appsettings.json中配置。
[2]右键单击.DbMigrator项目并选择设置为启动项目,然后按F5(或Ctrl+F5)运行应用程序完成数据库迁移。
14.使用EF Core Update-Database命令
解析:
[1]右键单击.HttpApi.Host项目[.Web项目]并选择设置为启动项目。
[2]打开包管理器控制台,选择.EntityFrameworkCore.DbMigrations项目作为默认项目并运行Update-Database命令。
[3]执行update-database命令基于配置的连接字符串创建新数据库。
15.运行HTTP API Host应用程序
解析:
[1]执行命令Ctrl+F5或者F5打开Swagger界面
[2]https://localhost:44379/swagger/index.html
[3]Swagger UI授权:如果要测试授权API,请手动进入/Account/Login页面,输入用户名admin和密码1q2w3E*,登录到应用程序,然后可以访问授权API。
16.Serilog类库
解析:Serilog是一个用于.NET应用程序的日志记录开源库,它是以功能强大的结构化事件数据为基础构建的,支持将日志输出到控制台、文件、数据库和其它更多的方式,支持参数化日志模板,非常灵活。
17.HostBuilder通用主机
解析:通用主机库位于Microsoft.Extensions.Hosting命名空间中,而web主机库位于Microsoft.AspNetCore.Hosting命令空间中。
18.IServiceCollection
解析:整个ASP.NET Core默认带有依赖注入,IServiceCollection是依赖注入的容器。
19.IApplicationBuilder
解析:用于构建应用请求管道。通过IApplicationBuilder下的run方法传入管道处理方法。这是最常用方法,对于一个真实环境的应用基本上都需要比如权限验证、跨域、异常处理等。
20..NET Core常用中间件
解析:
[1]Authentication:提供权限支持
[2]CORS:跨域的配置
[3]Routing:配置http请求路由
[4]Session:管理用户会话
[5]Static Files:提供对静态文件的浏览
21.AbpApplicationFactory
解析:AbpApplicationFactory用于创建应用程序并加载所有以AppModule作为启动模块的模块,Initialize()方法启动应用程序。
22.ConfigureServices方法
解析:将服务添加到依赖注入系统并配置其它模块的主要方法。
23.配置服务前和后
解析:AbpModule类还定义了PreConfigureServices和PostConfigureServices方法用来在ConfigureServices之前或之后覆盖和编写代码。在这些方法中编写的代码将在所有其它模块的ConfigureServices方法之前/之后执行。
24.应用程序初始化前和后
解析:AbpModule类还定义了OnPreApplicationInitialization和OnPostApplicationInitialization方法用来在OnApplicationInitialization之前或之后覆盖和编写代码。在这些方法中编写的代码将在所有其它模块的OnApplicationInitialization方法之前/之后执行。
25.[DependsOn]属性
解析:在模块化应用程序中,一个模块依赖于另一个模块并不罕见。如果一个Abp模块依赖于另一个模块,它必须声明[DependsOn]属性。如下所示:
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
[DependsOn(typeof(AbpAutofacModule))]
public class BlogModule
{//...
}
这篇关于ABP VNext学习日记1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!