之前公司一直使用的是ASP.NET Boilerplate (ABP),但是当解决方案变得很大时,项目启动就变得非常慢,虽然也想了一些办法,将一些基础模块做成Nuget包的形式,让整个解决方案去引用。但是整个项目还是很臃肿,各个项目之间的耦合性太强,很难将其拆开;无法进行微服务的部署,扩展性差。之后,选择,Abp的vnext版本,优点:

1. 其新的ABP框架可方便的开发微服务并使它们相互通信。亦可作为微服务单独部署,或者可以嵌入到单个应用程序中;
2. 模块化。最明显的就是更加模块化,使项目更加清晰明了,设计更合理;
3. 更多可扩展性。新的ABP框架为内置服务提供了更多的扩展点和覆盖的能力;
4. 支持关系型和非关系型数据库,Redis作为分布式缓存,使用RabbitMQ作为事件总线的消息处理方式,使用Quartz/HangFire作为定时任务的处理,引入可了IdentityServer4服务;

接下来呢,会从 https://abp.io/上下载 官网构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的ABP应用程序

1、首先进入界面 https://docs.abp.io/zh-Hans/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF,然后根据偏好选择下载,我们以第一个为例

2、官网的代码放在github上,点击abp-samples,就可以看到它的所有解决方案,BookStore-Mvc-EfCore 就是我们今天要更改的解决方案

3、使用Git工具克隆本项目

git clone https://github.com/abpframework/abp-samples.git

4、稍等一段时间后,使用VS Code打开本项目(VS 2019不支持,想使用的升级到VS 2022),在工具中添加 vscode-solution-explorer 组件

5、点击解决方案,右键选择Build,对项目进行包还原,从解决方案的结构上看,就能看到其清晰的分层,解决方案中的项目及依赖关系.

6、接下来点击Acme.BookStore.EntityFrameworkCore,找到它的Acme.BookStore.EntityFrameworkCore.csproj文件,更换Nuget包,解决方案之前使用的是SQLServer,要将其更改为Mysql,之后找到BookStoreDbContextFactory和BookStoreEntityFrameworkCoreModule文件,更改其引用的地方





7、重新修改数据库连接字符串,并删除Migrations文件夹下的文件

找到*.Web 和 *.DbMigrator中的appsettings.json文件对数据库连接字符串进行修改
"Default": "Server=localhost;Port=3306;Database=数据库名字;Uid=root;Pwd=数据库密码;Convert Zero DateTime=True"

8、在*.EntityFrameworkCore目录下执行命令进行数据库迁移,之后就可以在数据库中看到所有的表

dotnet ef migrations add Init
dotnet ef database update

9、所有准备都已完成,运行应用程序,选中*.web,右键点击Run,报错启动不了,通过查找,发现在wwwroot下没有libs文件

Could not find the bundle file '/libs/abp/core/abp.css' for the bundle 'LeptonXLite.Global'!
安装ABP CLI, 用于自动执行基于 ABP 的解决方案的一些常见任务
dotnet tool install -g Volo.Abp.Cli
之后安装libs
abp install-libs

再次进行Run,成功啦!!以admin作为用户名和1q2w3E* 作为密码登录到应用程序,登录成功后,就可以看到书籍管理功能

更换Mysql数据库-----基于Abo.io 的书籍管理Web应用程序的更多相关文章

  1. 极简SpringBoot指南-Chapter04-基于SpringBoot的书籍管理Web服务

    仓库地址 w4ngzhen/springboot-simple-guide: This is a project that guides SpringBoot users to get started ...

  2. windows下更换MySql数据库数据文件夹位置

    详细解决地址 ,感谢博主  :https://blog.csdn.net/u010953266/article/details/56499361 概述 由于更换硬盘,系统重新安装了一遍,原来的mysq ...

  3. mysql数据库基于linux的安装步骤及数据库操作

    一.数据库安装 Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. sudo apt-get install mysql-server sudo apt-get isntall mysql ...

  4. 【第二章】MySQL数据库基于Centos7.3-部署

    一.MySQL数据库的官方网址: https://www.mysql.com/ https://www.oracle.com/ http://dev.mysql.com/doc/refman/5.7/ ...

  5. mysql数据库基于LVM快照的备份

    lvm-snapshot: 基于LVM快照的备份 1.事务日志跟数据文件必须在同一个卷上          2.创建快照卷之前,要请求mysql的全局锁,在快照创建完成之后释放锁          3 ...

  6. Django Mysql数据库-基于双下划线的跨表查询

    一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(mode ...

  7. 更换mysql数据库的datadir目录

    更换过程如下: 1.新建指定的datadir目录,这里举例如:E:/mysql_datadir/data. 2.关闭mysql57服务器. 3.将原来的datadir目录下面的所有文件拷贝到E:/my ...

  8. Linux_CentOS中的MySQL 数据库的安装调试、远程管理

    官网查看最新 MySQL 安装包 https://dev.mysql.com/downloads/repo/yum/ 下载 MySQL 源的安装包 wget http://dev.mysql.com/ ...

  9. 基于tomcat-jQ-springMVC-bootstrap的公司产品管理WEB应用

    管理员登录后台以后才能操作 ,权限管理只有一个管理员, 系统的主要作用是查看所有的 “公司列表”, 并查看该公司的”产品“, 用户可以对该公司的产品进行添加或者删除, 添加或者删除公司等 , 添加产品 ...

  10. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(四):安装MySQL数据库

    基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...

随机推荐

  1. 声网AI降噪测评系统初探

    作者:孟赛斯 前言 音频质量的优化是一个复杂的系统工程,而降噪是这个系统工程中的一个重要环节,传统的降噪技术经过几十年的发展已经陷入了瓶颈期,尤其是对非平稳噪声的抑制越来越不能满足新场景的需求.而近几 ...

  2. 基于docker和cri-dockerd部署k8sv1.26.3

    cri-dockerd是什么? 在 Kubernetes v1.24 及更早版本中,我们使用docker作为容器引擎在k8s上使用时,依赖一个dockershim的内置k8s组件:k8s v1.24发 ...

  3. 单机最快的队列Disruptor解析和使用

    前言 介绍高性能队列Disruptor原理以及使用例子. Disruptor是什么? Disruptor是外汇和加密货币交易所运营商 LMAX group 建立高性能的金融交易所的结果.用于解决生产者 ...

  4. 二进制安装Kubernetes(k8s) v1.24.3 IPv4/IPv6双栈

    二进制安装Kubernetes(k8s) v1.24.3 IPv4/IPv6双栈 Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes(k8s)二进制高可用安装部署,支 ...

  5. win32print常用函数

    这里整理下win32print的API介绍,官网地址http://timgolden.me.uk/pywin32-docs/win32print.html OpenPrinter 打开指定的打印机,并 ...

  6. [Linux]mysql错误总结-ERROR 1067 (42000): Invalid default value for TIMESTAMP

    MySQL的TIMESTAMP类型的默认值设置无效. 0 使用环境描述 Linux CentOS 7.8.2003 x86/64bit MySQL: 5.7.24 (mysql --version / ...

  7. 还原win10任务管理器的内存dump功能之——程序逆向分析(待完成)

    逆向分析工作基本完成,笔记待完成.

  8. Python程序笔记20230302

    Alice.Bob 和他们的朋友们 问题主体 密码学家 Rivest.Shamir.Adleman 于1977年4月撰写了一篇论文<数字签名与公钥密码学>(On Digital Signa ...

  9. [Go] 递归获取目录下的文件

    操作示例: ./scan /Document/dir 代码: // 定义递归文件树结构体 type treeList struct { Path string `json:"path&quo ...

  10. Mac 下 brew安装慢的问题

    brew默认源使用的是github,可以设置环境变量达到切换源的效果,见官网: https://github.com/Homebrew/install export HOMEBREW_BREW_GIT ...