ABP入门教程(一)启动模版项目

ABP为一个脚手架项目,源码启动起来就是一个项目,已经内置了用户,角色,权限等基础服务,让我们可以直接进入业务开发。
最新的ABP基于.Net6建议使用VS2022进行开发

ABP项目的分层

.Application 为应用层:构建服务
.Core 为领域层:定义实体,实现实体功能,定义仓储接口
.EntityFrameworkCore (EF层)为数据库处理:实体与数据表的对应与配置,实现仓储接口
.Web.Core 为控制层:负责把应用服务自动解析为Controller
.Web.Host 为程序入口:系统配置(数据库连接,系统端口,日志框架等)

启动ABP只需要简单的3步:

1,到官网下载模版项目: https://aspnetboilerplate.com/
2,用VS2022打开解决方案,将Web.Host设置为启动项
3,在程序包管理器控制台(Nuget控制台)里设定默认项目为EntityFrameworkCore,执行命令建库:Update-Database
如果建库成功就可以启动项目了

下面是详细步骤

1,下载ABP模版:基于.NetCore的Vue或者Anjular单页面应用(前后端分离)
https://aspnetboilerplate.com/
2,用VS2022打开解决方案
3,如果你在本机安装了SqlServer,这一步可以跳过;非本地数据库需要修改数据库连接;

"ConnectionStrings": {
  "Default": "Server=localhost; Database=AbpDemoDb; Uid=root; Pwd=123456;"
}

如果使用MySQL,请看步骤4,步骤5
如果使用默认的SQL Server,跳过步骤4,步骤5
4,修改为使用MySQL:在XXX.EntityFrameworkCore层用Nuget安装添加Pomelo.EntityFrameworkCore.MySql
5,修改 XXXDbContextConfigurer类的数据库连接配置

namespace AbpDemo.EntityFrameworkCore
{
    public static class AbpDemoDbContextConfigurer
    {
        public static void Configure(DbContextOptionsBuilder<AbpDemoDbContext> builder, string connectionString)
        {
            //builder.UseSqlServer(connectionString);
            builder.UseMySql(connectionString);
        }

        public static void Configure(DbContextOptionsBuilder<AbpDemoDbContext> builder, DbConnection connection)
        {
            //builder.UseSqlServer(connection);
            builder.UseMySql(connection);
        }
    }
}

6,数据迁移:
将Web.Host设置为启动项,在程序包管理器控制台(Nuget控制台)里设定默认项目为EntityFrameworkCore,执行命令更新数据库即可:Update-Database
ABP会自动建库;

下面是常用数据库迁移命令,供你参考

产生迁移文件  (可以先删除EntityFrameworkCore项目中的Migrations文件夹,产生的迁移文件更好看)
Add-Migration init  
  
更新数据库  
Update-Database  
  
产生数据库脚本 (不执行第2步,用这个命令产生的脚本建库也可以,适用于生产环境)
Script-Migration [from] [to]

7,将Web.Host设置为启动项,运行项目,如果没有问题会自动在浏览器里面打开Swagger页面

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ABPFrameWork开发指南 入门文档 目 录 1 ABP总体介绍 1 1.1 入门介绍 1 1.1.1 ABP采用了以下技术 2 1.1.2 ABP框架已实现了以下特性 2 1.1.3 ABP适用的场景 4 1.2 多层架构体系 4 1.2.1 前言 4 1.2.2 ABP的体系结构 5 1.2.3 领域层 5 1.2.4 应用层 6 1.2.5 基础设施层 6 1.2.6 WEB与展现层 6 1.2.7 其它 7 1.3 模块系统 7 1.3.1 ABP模块系统简介 7 1.3.2 生命期事件 8 1.3.3 模块依赖 9 1.3.4 自定义的模块方法 10 1.4 启动配置 11 1.4.1 配置ABP 11 1.4.2 配置模块 13 1.4.3 为一个模块创建配置 13 2 ABP公共结构 16 2.1 ABP依赖注入 16 2.1.1 传统方式的问题 16 2.1.2 解决方案 18 2.1.3 依赖注入框架 20 2.1.4 ABP依赖注入的基础结构 21 2.1.5 附件 25 2.2 ABP会话管理 26 2.2.1 简介 26 2.2.2 注入会话 27 2.2.3 使用会话属性 27 2.3 ABP日志管理 28 2.3.1 服务器端 28 2.3.2 客户端 32 2.4 ABP设置管理 32 2.4.1 介绍 32 2.4.2 定义设置 33 2.4.3 设置范围 34 2.4.4 获取设置值 35 2.4.5 更改设置 36 2.4.6 关于缓存 36 3 ABP领域层 37 3.1 ABP领域层—实体 37 3.1.1 实体类 37 3.1.2 接口约定 38 3.1.3 IEntity接口 41 3.2 ABP领域层—仓储 42 3.2.1 IRepository接口 42 3.2.2 仓储的实现 47 3.2.3 管理数据库连接 48 3.2.4 仓储的生命周期 48 3.2.5 仓储的最佳实践 48 3.3 ABP领域层—工作单元 49 3.3.1 通用连接和事务管理方法 49 3.3.2 ABP的连接和事务管理 50 3.3.3 工作单元 53 3.3.4 选项 56 3.3.5 方法 57 3.3.6 事件 57 3.4 ABP领域层—数据过滤器 58 3.4.1 介绍 58 3.4.2 预定义过滤器 58 3.4.3 禁用过滤器 60 3.4.4 启用过滤器 61 3.4.5 设定过滤器参数 62 3.4.6 自定义过滤器 62 3.4.7 其它对象关系映射工具 64 3.5 ABP领域层—领域事件 64 3.5.1 事件总线 64 3.5.2 定义事件 65 3.5.3 触发事件 65 3.5.4 事件处理 66 3.5.5 注册处理器 68 3.5.6 取消注册事件 69 4 ABP应用层 71 4.1 ABP应用层—应用服务 71 4.1.1 IApplicationService接口 71 4.1.2 应用服务类型 73 4.1.3 工作单元 74 4.1.4 应用服务的生命周期 76 4.2 ABP应用层—数据传输对象 76 4.2.1 数据传输对象的作用 76 4.2.2 DTO 约定 & 验证 78 4.2.3 DTO和实体间的自动映射 80 4.2.4 辅助接口和类型 82 4.3 ABP应用层—DTO有效性验证 82 4.3.1 使用数据注解 83 4.3.2 自定义检验 84 4.3.3 设置缺省值 85 4.4 ABP应用层—权限认证 86 4.4.1 定义权限 86 4.4.2 检查权限 87 4.5 ABP应用层—审计日志 90 4.5.1 配置 91 4.5.2 通过属性来启用和禁用审计日志 92 4.5.3 说明 93 5 ABP表现层 94 5.1 ABP展现层—动态WebApi层 94 5.1.1 建立动态web api 控制器 94 5.1.2 使用动态js代理 95 5.2 ABP展现层—本地化 97 5.2.1 程序语言 97 5.2.2 本地化源文件 98 5.2.3 获得一个本地化配置文件 100 5.2.4 总结 103 5.3 ABP展现层—Javascript函数库 103 5.3.1 AJAX 103 5.3.2 通知 107 5.3.3 消息 107 5.3.4 用户界面的繁忙提示 109 5.3.5 Js日志接口 110 5.3.6 Javascript公共方法 111 5.4 ABP展现层—导航栏 112 5.4.1 创建菜单 112 5.4.2 显示菜单 114 5.5 ABP展现层—异常处理 114 5.5.1 开启错误处理 115 5.5.2 非Ajax请求 115 5.5.3 AJAX请求 117 5.5.4 异

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值