这是一个以 最新版 .NET 框架为基础搭建的一个基础项目,之所以要做这样一个项目主要是为了在开发一个新项目时能够快速的进入业务逻辑的开发,而不需要每次去重新构建一些项目基础的内容。该项目始于2019年,从.net core 2.2 时代一路迭代过来。
框架的整体技术都是以微软官方的指导进行,个人喜好大道至简的风格,所以并没有对框架进行太多复杂的自定义封装,我不喜欢去吹嘘所谓的百万并发,超高性能等等,个人认为我们日常开发的大部分系统,并不需要考虑百万并发,毕竟不是所有的公司都有这种体量的性能要求,本项目主要的代码风格接近于微软官方的教程编码风格。
如果你在找一个简单易用的 .NET 基础项目框架,欢迎使用该项目进行尝试开发体验。
项目主要整合了如下一些常用的技术点
TaskService 采用了微软的Timer来实现周期性任务的执行
管理后台模块 前端使用了 Blazor 技术开发,采用的是 wasm 模式,该模式可以直接将项目编译为 dll 文件运行在客户端的浏览器中,性能相对来说要高一点,并且对于服务器的压力要小很多。
该项目是一个 webapi 的基础项目,主要整合了如下内容:
安装
sc.exe create MyAPI binpath= 'c:\Publish\WebAPI.exe --cd="true"' start= auto
启动
net start 服务名称
如:net start MyAPI
停止
net stop 服务名称
net stop MyAPI
卸载
sc.exe delete 服务名称
如:sc.exe delete MyAPI
All
Microsoft.EntityFrameworkCore.Tool
Microsoft.EntityFrameworkCore.Relational
延迟加载
Microsoft.EntityFrameworkCore.Proxies
options.UseLazyLoadingProxies();
SQL Server
驱动:Microsoft.EntityFrameworkCore.SqlServer 和 Microsoft.Data.SqlClient
数据库生成模型指令:Scaffold-DbContext "ConnectionString" Microsoft.EntityFrameworkCore.SqlServer -OutputDir WebCore -Force
字符串:Data Source=127.0.0.1;Initial Catalog=webcore;User ID=sa;Password=123456;Max Pool Size=100;Encrypt=True
EF 配置:optionsBuilder.UseSqlServer(, o => o.MigrationsHistoryTable("__efmigrationshistory"));
PostgreSql
驱动:Npgsql.EntityFrameworkCore.PostgreSQL
数据库生成模型指令:Scaffold-DbContext "ConnectionString" Npgsql.EntityFrameworkCore.PostgreSQL -OutputDir webcore -Force
字符串:Host=127.0.0.1;Database=webcore;Username=postgres;Password=123456;Maximum Pool Size=30;SSL Mode=VerifyFull
EF 配置:optionsBuilder.UseNpgsql("ConnectionString, o => o.MigrationsHistoryTable("__efmigrationshistory"));
MySql
Pomelo.EntityFrameworkCore.MySql
数据库生成模型指令:Scaffold-DbContext "ConnectionString" MySql.EntityFrameworkCore -OutputDir webcore -Force
字符串:server=127.0.0.1;database=webcore;user id=root;password=123456;maxpoolsize=100
EF 配置:optionsBuilder.UseMySql("ConnectionString, new MySqlServerVersion(new Version(8, 0, 29)), o => o.MigrationsHistoryTable("__efmigrationshistory"));
var keyInfo = ECDsa.Create(ECCurve.NamedCurves.nistP256);
var privateKey = Convert.ToBase64String(keyInfo.ExportECPrivateKey());
var publicKey = Convert.ToBase64String(keyInfo.ExportSubjectPublicKeyInfo());
数据存放在 InitData 文件夹的 Excel 中,excel中的数据是清洗好的,需要使用的自行导入 行政区划数据来源于百度平台,地址及清洗代码如下
目前数据截至:202104
https://lbsyun.baidu.com/index.php?title=open/dev-res
insert into RegionArea SELECT CAST(CODE_PROV as int) AS ID, NAME_PROV AS province, '2021-04-01' AS createtime, '0' AS isdelete FROM ditu GROUP BY CODE_PROV, NAME_PROV;
insert into RegionCity SELECT CAST(CODE_CITY as int) as id,NAME_CITY as city,CAST(CODE_PROV as int) as provinceid, '2021-04-01' AS createtime, '0' AS isdelete FROM ditu GROUP BY CODE_CITY,NAME_CITY,CODE_PROV;
insert into RegionProvince SELECT CAST(CODE_COUN as int) as id,NAME_COUN as area,CAST(CODE_CITY as int) as cityid, '2021-04-01' AS createtime, '0' AS isdelete FROM ditu GROUP BY CODE_COUN,NAME_COUN,CODE_CITY;
insert into RegionTown SELECT CAST(CODE_TOWN as int) as id,NAME_TOWN as town,CAST(CODE_COUN as int) as areaid, '2021-04-01' AS createtime, '0' AS isdelete FROM ditu GROUP BY CODE_TOWN,NAME_TOWN,CODE_COUN;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。