简易的开发框架(微服务) Asp.Net Core 2.0
2017-12-11 14:37
896 查看
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 .
初始化请看 Program.cs 文件
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: 使用方式请查看
第三步: 编写业务及开放业务接口(方法统一返回参数:Result):
==
Docker + k8s + .Net Core + Etcd -> Pass
基础框架: https://github.com/AmosLi443061626/.Net-Core-Development 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):
==
Docker + k8s + .Net Core + Etcd -> Pass
相关文章推荐
- asp.net core 开发的https证书服务-agilelabs.net
- ASP.NET Core 2.0 : 五.服务是如何加载并运行的, Kestrel、配置与环境
- ABP(现代ASP.NET样板开发框架)系列之15、ABP应用层——应用服务(Application services)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
- 从头编写 asp.net core 2.0 web api 基础框架 (2)
- 开发自定义的web IIS服务器 WebDev.WebHost 用控制台托起web服务 上次写了一篇ASP.NET一个简易的WebServer,用控制台程序模拟IIS 托起web服务 看见有一朋友说在
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- Teddy's Knowledge Base--基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速开发框架设计NBear V2.0.0 [开源]
- 基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计
- 从头编写 asp.net core 2.0 web api 基础框架 (1)
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- 《ASP.NET 2.0应用开发技术》技术支持和服务站点上线
- 从头编写 asp.net core 2.0 web api 基础框架 (3)
- 从头编写 asp.net core 2.0 web api 基础框架 (1)
- 在ASP.NET Core中使用Apworks开发数据服务:对HAL的支持
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- 把Asp.Net Core 2.0部署在Linux上,使用Nginx代理服务器,并且用Systemctl命令以服务的方式监听项目
- Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page
- asp.net core2.0 JWT Bearer 注意添加认证服务