zoukankan      html  css  js  c++  java
  • 简易的开发框架(微服务) Asp.Net Core 2.0

     
    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
  • 相关阅读:
    利用百度轻松语音合成,语音识别
    python圆周率计算小程序(非常慢)
    python成语接龙小游戏
    在数组添加元素时报错:IndexError: list index out of range
    Redis-jedis的使用
    Shiro整合SpringMVC简单实例(一)
    容器
    防重提交功能(Token技术的引入)
    PageUtil
    单例设计模式
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/8022983.html
Copyright © 2011-2022 走看看