Asp.Net Core 2.0 + Mysql Orm + Ioc + Redis + AOP + RabbitMQ + Etcd + Autofac + Swagger
基础框架:
https://github.com/AmosLi443061626/.Net-Core-Development
Etcd数据库分表分库是中间件去分:
https://github.com/AmosLi443061626/EtcdWebMannger
以前是注册与发现,接入了thrift
后面发现docker -> k8s 自带系统级别的,就基础框架就ok .
Etcd数据库分表分库是中间件去分:
https://github.com/AmosLi443061626/EtcdWebMannger
以前是注册与发现,接入了thrift
后面发现docker -> k8s 自带系统级别的,就基础框架就ok .
注意事项:
不允许Join查询,可以使用多查的方式 >> 分表分库
配置获取统一用 ConfigManagerConf.Get("**") >> 扩展 etcd 动态更新
所有方法调用使用 IocContainer.Container.Get Ioc模式 >> AOP模式特性处理方法
日志记录使用 Log 方法 >> 扩展集中日志发送
初始化请看 Program.cs 文件
ORM请移至: https://github.com/yuzd/AntData.ORM
项目简介:
BusinessService:业务层(接口模式)
- IStandard.Examples (接口层)
- Standard.Examples (实现层)
DB(DB层)
- DBContextEntity:qlServer/Mysql 模型生成层及默认DB初始化层
+mysql文件夹下:EntityRobotForMysql.tt 保存(Ctrl+S)即生成数据库模型;EntityRobotForMysql.tt中LoadMySqlMetadata
("连接字符串") 配置生成模型的数据库连接字符串
Domain(Model层)
- Domains:业务model
Infrastructure(基础服务)
- CacheOperation:缓存处理
- Checks:验证扩展
- Configs:配置信息管理(使用Etcd)
- Exceptions:异常
- Extensions:帮助层,内含 等扩展
- Ioc(控制反转):控制反转全局组件
- BaseAspectAttribute:基础属性
- CacheAttribute:缓存属性
- LoggerAttribute:日志属性
- TopSubscribeAttribute:订阅属性
- IocContainer.RegisterAssembly(实现,接口):注册组件
IocContainer.Container.Build()更新注册信息
IonCOntainer.Get()配置组件 - Logs:日志 >> NLog.config
- Mappering:DTO数据转换
- MessageMQ:消息队列 (Rabbitmq)
- Pools:池化扩展
- RedisHelper:redis操作
- Pools:池化扩展
- Result:统一结果返回类
- RequestExtend:Htpp请求扩展
startups(服务启动层)
- startup(示列)
- Filters(拦截)
LogFilterAttribute:日志拦截
所有的程序统一使用Ioc管理,要是程序生效,必须先到Program中注册
第一步: 使用ORM工具生成数据库模型
DB -> EntityRobotForMysql.tt 中 LoadMySqlMetadata("连接字符串") 配置生成模型的数据库连接字符串,然后保存生成数据模型
ORM 确定不能满足的情况下,请在DBContextEntity 项目中新建类,进行T-SQL编写,编写后调用;
ORM: 使用方式请查看
https://github.com/yuzd/AntData.ORM
第二步:Infrastructure(基础服务)->Configs->ConfigManagerConf 设置Mysql连接字符串
第三步: 编写业务及开放业务接口(方法统一返回参数:Result):
==