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 .

注意事项:

不允许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 2.0的更多相关文章

  1. Ocelot网关统一查看多个微服务asp.net core项目的swagger API接口

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 一.准备 前提需要下载安装consul,项目需要懂添加swagger 统一在网关中配置多个微服务的swagger,需要用到服务注册 ...

  2. Ubuntu & Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践

    相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...

  3. Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践

    相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...

  4. ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)

    早就听说ASP.NET Core 3.0中引入了gRPC的服务模板,正好趁着家里电脑刚做了新系统,然后装了VS2019的功夫来体验一把.同时记录体验的过程.如果你也想按照本文的步骤体验的话,那你得先安 ...

  5. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  6. ASP.NET Core 2.0 : 五.服务是如何加载并运行的, Kestrel、配置与环境

    "跨平台"后的ASP.Net Core是如何接收并处理请求的呢? 它的运行和处理机制和之前有什么不同? 本章从"宏观"到"微观"地看一下它的 ...

  7. Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  8. 微服务的.NET Core示例框架

    eShopOnContainers 是一个基于微服务的.NET Core示例框架 https://www.cnblogs.com/fengqingyangNo1/p/9438428.html 找到一个 ...

  9. eShopOnContainers 是一个基于微服务的.NET Core示例框架

    找到一个好的示例框架很难,但不是不可能.大多数是小型Todo风格的应用程序,通常基于SimpleCRUD.值得庆幸的是,Microsoft已经为eShopOnContainers创建了一个基于微服务的 ...

随机推荐

  1. Mybatis 批量删除 单引号

    MySQL效果: ' AND NAME IN ('policycustom1.xmlx','policycustom.xmlx','policycustom1.xmlx','policycustom. ...

  2. ES 搜索结果expalain 可以类似数据库性能调优来看排序算法的选择

    When we run a simple term query with explain set to true (see Understanding the Score), you will see ...

  3. 【HDU 3487】Play with Chain Splay

    题意 给定$n$个数序列,每次两个操作,将区间$[L,R]$拼接到去掉区间后的第$c$个数后,或者翻转$[L,R]$ Splay区间操作模板,对于区间提取操作,将$L-1$ Splay到根,再将$R+ ...

  4. hdu-5805 NanoApe Loves Sequence(线段树+概率期望)

    题目链接: NanoApe Loves Sequence Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 262144/131072 ...

  5. BZOJ-1568: Blue Mary开公司 (李超线段树)

    Description Input 第一行 :一个整数N ,表示方案和询问的总数. 接下来N行,每行开头一个单词“Query”或“Project”. 若单词为Query,则后接一个整数T,表示Blue ...

  6. NPM 在MacOSX中的使用技巧

    经常看到有人说『为啥npm install 的时候报错,显示EACCESS错误…』,之前大家都是sudo大法解决问题,也没太在意. 至于这个问题是brew安装工具的时候造成的,还是系统修改磁盘权限造成 ...

  7. 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法

    title: 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法 tags: grammar_cjkRuby: true --- 右键单击项目,properties-- ...

  8. Day04:函数参数、对象、嵌套、闭包函数和装饰器

    上节课复习:    1.什么是函数        函数就是具备某一功能的工具    2.为何用函数        1.程序的组织结构和可读性        2.减少代码冗余        3.扩展性强 ...

  9. 三层架构与MVC比较:

    三层架构与MVC比较: 1.两者不是同一概念 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目. 那么架构跟设计模式 ...

  10. servlet的九大内置对象和四大域对象

    隐式对象 说明 request 转译后对应HttpServletRequest/ServletRequest对象 response 转译后对应HttpServletRespons/ServletRes ...