快速使用
准备工作
安装 sdk
下载安装微软官方 .NET SDK 8.0 最新版,代码地址:https://dotnet.microsoft.com/download
本地须安装 node 和 git,可在如下地址获得 NodeJS 的安装包:https://nodejs.org/en/ ,二者也可以到 qq 群QQ 群 90311523获取下载,
如果需用 Redis,请安装 Redis 并启动,下载地址:https://github.com/MicrosoftArchive/redis/releases; 如果不用 redis 缓存可以将 UseRedis 设置为 false。
提示
前端安装完 node 后,最好设置下淘宝的镜像源,不建议使用 cnpm(可能会出现奇怪的问题)
npm config set registry https://registry.npm.taobao.org
下载代码
使用 git 工具下载代码,代码地址:https://gitee.com/yuebon/YuebonNetCore.git
初始化数据库
目前支持数据库有:
- Microsift SqlServer 2012+
- MySql 8.0+
提示
2022 年 5 月 15 日后发布的新版配置好数据库连接,启动即可自动建立数据库和表,同时初始化种子数据。
老版本按如下操作:
数据库脚本在DataBase
文件夹内,根据需要执行mssql vue版本
或mysql vue版本
文件夹里面的table表结构.sql
和初始化数据.sql
脚本进行初始化数据库。
提示
各数据库表结构一样,初始化数据存在差异。
mysql 版本需要开启数据库表名称不区分大小写规则。需要修改 mysql 的配置文件 my.cnf,在[mysqld]加入一行: lower_case_table_names=1
后台运行
使用 Visual Studio 2022 打开 YuebonNetCore.sln
修改连接字符串
- 修改 Yuebon.WebApp/appsettings.json 连接字符串,如下:
"DbConnections": [
{
"ConnId": "DefaultDb",
"Enabled": true,
"MasterDB": { //必须配置,远程服务器数据库
"ConnectionString": "server=127.0.0.1;database=ybnf1;user=root;CharSet=utf8;password=123456;port=3306;CharSet=utf8mb4;Allow User Variables=True;SslMode=none;AllowLoadLocalInfile=true;",
"DatabaseType": 0, //数据库类型
"Enabled": true //是否可用
},
"ReadDB": []
},
{
"ConnId": "LocalDB",
"Enabled": true,
"MasterDB": { //本地数据库
"ConnectionString": "server=localhost;Database=bonwcslocal1;Uid=root;Pwd=123456;Port=3306;CharSet=utf8mb4;Allow User Variables=True;SslMode=none;AllowLoadLocalInfile=true;",
"DatabaseType": 0, //数据库类型
"Enabled": true //是否可用
},
"ReadDB": [
{
"ConnectionString": "", //数据库连接字符
"HitRate": "", //从库执行访问权重,越大越先执行
"Enabled": true //是否可用
},
{
"ConnectionString": "", //数据库连接字符
"HitRate": "", //从库执行访问权重,越大越先执行
"Enabled": true //是否可用
}
]
}
],
"AppSetting": {
"SoftName": "YueBonCore Framework",
"CertificatedCompany": "Yuebon",
"ConStringEncrypt": "false",//连接字符串是否加密
"DefaultDataBase": "DefaultDb",//默认数据库连接
"IsDBReadWriteSeparate": false, //开启数据库读写分离
"QueryDBStrategy": "Random", //定义多个从数据库的访问策略
},
- 其中:
1、ConStringEncrypt 配置数据库连接字符串是否加密,加密设置为 true,否则设置 false
2、DefaultDataBase 设置默认数据库连接
3、IsDBReadWriteSeparate 设置开启数据库读写分离,默认为 false,不开启。
4、MassterDB 为主数据库配置信息,在不开启读写分离的情况下,仅配置该参数即可。需要注意DatabaseType
指定数据库类型,目前支持的数据库类型值有 mysql=0,SqlServer=1,Oracle=2,Access=3,SQLite=4,PostgreSQL=5,Npgsql=6,Dm=7,Kdbndp=8。
5、注入上下文
** 2022 年 5 月 15 日后发布的新版不用做如下操作。**
注意修改Startup.cs
中InitIoC()
方法中的与之匹配数据库上下文注入,如下
services.AddTransient<IDbContextCore, MySqlDbContext>(); //注入EF mysql上下文
当前数据库类型与之对应得上下文如下:
数据库类型 | 上下文 |
---|---|
SqlServer | SqlServerDbContext |
MySql | MySqlDbContext |
Oracle | OracleDbContext |
SQLite | SQLiteDbContext |
Npgsql | PostgreSQLDbContext |
编译运行
使用 visualstudio 生成解决方案。 注:首次启动时,visual studio会启动nuget还原第三方依赖包,请保持网络通畅,并等待一段时间
启动 Yuebon.WebApi 项目。
前端运行
项目采用 vue 家族技术作为前端,在项目目录 VueUI 中。
修改接口访问地址
在目录中 VueUI\src 修改 setting.js 文件中接口访问地址,将地址改为 webapi 项目启动访问地址。 注意你的接口采用 https 还是 http 方式,很多小伙伴有时候没有注意。
apiHostUrl: 'http://localhost:54678/api/', // 基础接口
apiSecurityUrl: 'http://localhost:54678/api/Security/', // 权限管理系统接口
fileUrl: 'http://localhost:54678/', // 文件访问路径
fileUploadUrl: 'http://localhost:54678/api/Files/Upload'// 文件上传路径
编译运行
#进入目录
cd VueUI
# 安装依赖
npm install
# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npm.taobao.org
# 本地开发 启动项目
npm run dev
打开浏览器,输入:http://localhost:8085 (默认账户 admin/admin888) 若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功。
提示
因为本项目是前后端分离的,所以需要前后端都编译启动好,才能进行访问。
我们在接口访问采用类似于腾讯微信开放平台、阿里云开放平台等大厂的接口访问安全机制,接口访问需要通过应用AppId
和应用密钥AppSecret
获取凭据token
与正确授权的 url 才能调用接口访问数据。
本权限系统默认应用 AppId 为system
,对应授权可以访问的 url 地址需要在数据库表sys_app
中新增或修改,需要注意不同端口是不同的 url 地址。
常见问题
1、前后都启动好了,出现 500 错误,请检查跨域访问设置
2、node-sass 安装失败
Windows 用户若安装不成功,很大概率是 node-sass 安装失败。解决 node-sass 安装不成功的问题
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass
3、启动后出现如错误:Module build failed (from ./node_modules/babel-loader/lib/index.js):
解决方法:进入当前项目目录 npm install @babel/core @babel/preset-env 命令
如遇到问题到Issues反馈