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. certbot申请SSL证书及中间证书问题

    首先是到https://certbot.eff.org/上申请证书,由于我们使用的web服务器是基于erlang的cowboy的,在主页上没有选项可以支持,因此在Software下拉项中选择" ...

  2. AtCoder Grand Contest #026 B - rng_10s

    Time Limit: 2 sec / Memory Limit: 1024 MB Score : 600600 points Problem Statement Ringo Mart, a conv ...

  3. codevs 1531山峰

    传送门 1531 山峰  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description Rocky山脉有n个山峰,一字排开,从西向东 ...

  4. AndroidStudio启动时不自动打开项目

    取消勾选Reopen last project on startup选项 点击 OK 就行了

  5. nagios监控windows配置

    1.下载并安装windows插件 http://sourceforge.net/projects/nscplus/NSCP-0.4.1.73-x64.msi2.windows端配置 nsclient. ...

  6. Altium Designer如何从已有的PCB图中导出封装库

    1.打开PCB文件 2.选择  Design -> Make Integrated Library  (生成集成库) 注意,一定要在PCB 文件下  生成集成库!! 最终生成这个文件,打开这个文 ...

  7. 用Pyinstaller把Python3.7程序打包成可执行文件exe

    1.通过pip3 install pyinstaller 安装成功 2.然后执行命令,首先:需要切换到程序所在的目录 执行命令 pyinstaller -F -w <文件名.py>,-F代 ...

  8. WebService基础入门(转)

    一.概念: 1.WebService,顾名思义就是基于Web的服务.它使用Web(HTTP)方式,接收和响应外部系统的某种请求.从而实现远程调用. 2.我们可以调用互联网上查询天气信息Web服务,然后 ...

  9. [hdu2874]Connections between cities(LCA+并查集)

    题意:n棵树,求任意两点的最短距离. 解题关键:并查集判断两点是否位于一棵树上,然后求最短距离即可.此题可以直接对全部区间直接进行st表,因为first数组会将连接的两点的区间表示出来. //#pra ...

  10. POJ-2718

    Smallest Difference Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12158   Accepted: 3 ...