关于Abp Vnext框架基础知识,官方文档已有很详细的阐述。此系列文章皆以实例为主,关键地方会包含博主个人的见解,所有的文章皆为原创,并且附带源码。

顺便说一下,我的所有示例均使用angular作为前端,数据库采用Mysql,如有其他方向的可参考官方文档进行迁移;abp具有一定的入门门槛,angular又被认为三大前端框架最难入门的,对于初学者来说可能不大友好。我们以前项目前端用的vue,奈何abp没有提供vue的模板,考虑到自己搭建abp的vue前端也需要对其angular的代码有一定了解,先硬着头皮熟悉下angular吧。所谓皇天不负有心人,等真正熟悉了angular后,发现用angular做前端一样很香,配合abp框架后,开发效率并不会比其他框架慢。

下面开始正题

由于abp vnext 5.0版本较之4.x版本做了较大的更改,为了能提前踩坑,且方便日后自己项目能顺利迁移,示例中使用版本的是5.0.0-rc.1版本

一、准备工作

1、5.0版本使用的是.net6.0,需要安装vs2022

2、安装vscode

npm版本不要太高,6.x版本就可以,有些旧的包不支持npm7,会导致install不成功

3、安装abp cli

dotnet tool install -g Volo.Abp.Cli

二、搭建环境

1、生成项目代码

打开任意目录,输入以下命令,注意添加--preview参数创建预览版本代码

abp new MyTest.First -u angular --mobile none -d ef -csf -cs "server=192.168.100.175;port=3306;database=abp_test1;uid=test;pwd=Test123$;SslMode=none" --preview

2、修改ef项目引用以支持Mysql

最新的Abp cli已支持指定生成Mysql数据库代码,在命令中添加 -dbml MySQL既可,可跳过此节

默认模板引用的是Sqlserver版本的ef模块,需要手动改为Mysql的ef模块,方法如下:

打开aspnet-core目录下解决方案,双击MyTest.First.EntityFrameworkCore项目

将图中Sqlserver引用修改为Mysql引用:

 <PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" Version="5.0.0-rc.1" />

修改DbContextFactory文件:

将错误处修改为如下代码:

    var builder = new DbContextOptionsBuilder<FirstDbContext>().UseMySql(configuration.GetConnectionString("Default"),MySqlServerVersion.LatestSupportedServerVersion);

修改EntityFrameworkCoreModule文件:

将错误处分别替换为以下代码:

using Volo.Abp.EntityFrameworkCore.MySQL;// ...typeof(AbpEntityFrameworkCoreMySQLModule),// ...options.UseMySQL();

如果每次创建新项目都要这样更改是不是很麻烦,有办法解决吗?当然有,这就需要使用自定义项目模板了,此处就不具体介绍了,以后会单独开章节说明

3、生成数据库迁移

打开cmd,安装全局dotnet tool

# 安装
dotnet tool install --global dotnet-ef
# 更新版本
dotnet tool update --global dotnet-ef

右键MyTest.First.EntityFrameworkCore项目,从弹出菜单选择在终端打开

在shell命令行输入命令生成新的迁移

dotnet ef migrations add  -o Migrations InitDb

执行结果如下:

常用的迁移命令如下:

# 移除当前迁移版本,如果已更新到数据库,需要先回退到上一版本
dotnet ef migrations remove
# 创建新的迁移版本
dotnet ef migrations add  -o Migrations InitDb
# 将数据库更新到最新版本
dotnet ef  database update
# 将数据库更新到指定版本
dotnet ef  database update InitDb

注意abp项目中可以不使用 dotnet ef  database update 来更新数据库,而是通过执行DbMigrator项目来进行数据库迁移,因为dotnet ef命令仅仅是创建库和表结构,而不会进行种子数据的插入,要想项目顺利启动,先运行DbMigrator项目是必须的

调试或运行MyTest.First.DbMigrator项目,成功后如图:

4、启动HttpApi.Host项目

我们不使用IIS Express来启动,将MyTest.First.HttpApi.Host项目设置为启动项目,修改启动方式如下:

启动成功后弹出api界面如下:

5、angular前端

使用vscode 打开angular目录

点击菜单 终端->新建终端,输入npm install命令回车, 安装过程可能有点漫长,完成后执行命令npm start,完成后在浏览器输入http://localhost:4200/,如图

6、修改身份认证流程为password方式

如果不需要code方式进行认证登录,可以修改angular配置进行本地密码登录,方式如下:

打开environment.ts文件,修改oAuthConfig配置节内容如下:

  oAuthConfig: {issuer: 'https://localhost:44398',skipIssuerCheck: true,// redirectUri: baseUrl,clientId: 'First_App',// responseType: 'code',dummyClientSecret: 'MyTest!@#456',scope: 'offline_access First',requireHttps: false,},

执行npm start 启动,浏览器打开http://localhost:4200/,然后点击登录,可以看到已经不是跳转到认证服务登录了:

这样,开发环境就搭建完毕了,管理员登录:admin/1q2w3E*

是不是感觉UI有点low了,下一节我们将介绍如何更改默认的UI框架

源码地址:快速搭建AbpVnext开发环境

一、快速搭建ABP Vnext开发环境相关推荐

  1. docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

    [Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...

  2. Laragon 在Windows中快速搭建Laravel本地开发环境

    1.应用场景 主要用于快速搭建开发环境,帮助快速开发或者验证一些代码执行等. 优点: 功能更加强大, 更加简便好用 2.学习/操作 简介 对于那些使用 Windows 操作系统的同学来说,Homest ...

  3. 快速搭建离线地图开发环境(局域网地图开发工具)离线地图二次开发

         相关下载:For Linux版本下载   快速搭建离线地图开发环境     局域网地图服务   离线地图数据服务  二次开发 一.软件介绍     BIGEMAP离线地图服务器,提供一站式搭 ...

  4. java curator_[java,zk]在 linux 上快速搭建 zookeeper curator 开发环境

    在这篇博客中简单介绍一下,如何快速的在 linux 操作系统上搭建使用 zookeeper 客户端 curator 编程的单机环境. 在前几篇博客中,介绍的是使用 zookeeper 原生提供的 AP ...

  5. ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!

    文章目录 1.前言 2. SDK概述 2.1 SDK使用流程 2.2 ESP8266 HDK -- 硬件开发工具 2.3 ESP8266 SDK -- 软件开发工具包 2.3.1 Non-OS SDK ...

  6. 使用 Laragon 在 Windows 中快速搭建 Laravel 本地开发环境 (转)

    laravel学院 简介 对于那些使用 Windows 操作系统的同学来说,Homestead 和 LaraDock 虽说支持 Windows 系统,但是对初学者来说,安装配置起来还是有一定复杂度的, ...

  7. windows 和 mac 快速搭建本地CSE开发环境docker cse

    windows 直接下载执行文件运行 https://support.huaweicloud.com/devg-cse/cse_devg_0036.html Mac或者其他系统,使用cse docke ...

  8. Vue快速上手笔记2 - 开发环境的搭建

    Vue快速上手笔记2 - 开发环境的搭建 CSDN:JcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.net/qq_28550263/articl ...

  9. 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

最新文章

  1. 正则表达式之python3版
  2. centos7安装sftp服务器
  3. Python_文件_日记管理系统
  4. 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)
  5. matlab调用ANSYS--------2
  6. 6-3Table API SQL简介
  7. pycharm的terminal无法识别到命令 pytest 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  8. HDOJ水题集合8:DBFS
  9. 1196971406
  10. NeatUpload IIS6.0注册问题
  11. centos journalctl日志查看
  12. 字符串连接-Guava-Joiner
  13. mac word 2016中文输入问题解决
  14. 2011年09月04日
  15. mysql hacing_manjaro 折腾日记
  16. 湖南省第八届大学生计算机程序设计竞赛获奖名单
  17. HTML5 中的 input 元素的输入类型(type 属性的取值)
  18. html 自动 浏览器窗口,一种html文件实现显示浏览器窗口内容的方法
  19. 算法入门四:函数与函数体:
  20. ui设计培训完可以从事的哪些岗位?

热门文章

  1. 潘石屹40亿获外滩地王50 股权 证大完全退出
  2. 单体架构迁移到微服务,8个关键的思考、实践和经验
  3. 广州地铁3号线-我见过的最差的地铁
  4. Jmeter性能测试之资源监控
  5. [Javascript]:BOM对象详解和BOM与DOM的层次关系
  6. 7-11 哈利·波特的考试 (25 point(s))
  7. Paddleocr 去除无关信息打印
  8. python自动玩游戏_超牛!用Python自动玩转2048游戏
  9. Windows无法连接到打印机,拒绝访问。
  10. codeforces - 1315C - 思维题