BCVP开发者说第3期:Adnc

沉静岁月,淡忘流年

1

项目简介

Adnc


    Adnc是一个轻量级的.NetCore微服务快速开发框架,同时也可以应用于单体架构系统的开发。框架基于JWT认证授权、集成了一系列微服务配套组件,代码简洁、易上手、学习成本低、开箱即用。

    框架前端基于Vue、后端服务基于.NetCore3.1搭建,也是一个前后端分离的框架。webapi遵循RESTful风格,框架包含用户、角色、权限、部门管理;字典、配置管理;登录、审计、异常日志管理等基础的后台管理模块。

    框架对配置中心、依赖注入、日志、缓存、模型映射、认证/授权、仓储、服务注册/发现、健康检测、性能与链路监测、队列、ORM、EventBus等模块进行更高一级的自动化封装,更易于开发Asp.NET Core微服务项目。

原项目地址:
https://github.com/AlphaYu/Adnc

作者博客:
https://www.cnblogs.com/alphayu

 

2

框架功能

 

在线项目演示:

http://adnc.aspdotnetcore.net



账号:alpha2008

密码:alpha2008

 

(登录页面)

(健康检测中心)

(操作日志)

(性能链路检测)


用户中心
  1、用户管理
  2、角色管理
  3、菜单管理
  4、部门管理


运维中心
  1、性能链路监测
  2、接口文档
  3、健康检查
  4、事件总线
  5、字典管理
  6、参数管理
  7、任务管理

  8、登录日志
  9、操作日志

3

框架技术栈

(系统所用到的技术栈)

  • ServerApi基于.NET CORE 3.1搭建。

  • 后端主要技术栈

名称描述
Ocelot基于 .NET Core 编写的开源网关
Consul配置中心、注册中心组件
Refit一个声明式自动类型安全的RESTful服务调用组件,用于同步调用其他微服务
SkyAPM.Agent.AspNetCoreSkywalking .NET Core探针,性能链路监测组件
AspNetCore.HealthChecks健康监测组件,搭配consul的健康监测
AutofacIOC容器组件
Autofac.Extras.DynamicProxyAutfac AOP扩展
Efcore微软的ORM组件
Dapper轻量级ORM组件
Z.EntityFramework.Plus.EFCore第三方高性能的EfCore组件
NLog日志记录组件
AutoMapper模型映射组件
Swashbuckle.AspNetCoreAPIs文档生成工具(swagger)
EasyCaching实现了一、二级缓存管理的一个开源的组件
CAP实现事件总线及最终一致性(分布式事务)的一个开源的组件
RabbitMq异步消息队列组件
Polly一个 .NET 弹性和瞬态故障处理库,允许开发人员以 Fluent 和线程安全的方式来实现重试、断路、超时、隔离和回退策略

4

分层介绍

    

整体架构图

Adnc.Infras 基础架构相关工程
Adnc.Portal 微服务相关工程



Adnc.Infras 基础架构相关工程
01.Adnc.WebApi.Shared

该层实现了认证、鉴权、异常捕获等公共类和中间件。所有微服务WebApi层的共享层,并且都需要依赖该层。



02.Adnc.Application.Shared

该层定义了DTO对象的基类、Rpc服务通用服务、应用服务类基类以及操作日志拦截器。所有微服务Application层的共享层,并且都需要依赖该层。



03.Adnc.Core.Shared

该层定义了Entity对象的基类、业务服务接口基类、UOW接口与拦截器、仓储接口、以及处理本地事务与分布式事务。所有微服务Core层的共享层,并且都需要依赖该层。



04.Adnc.Infr.Common

该层实现了一些通用帮助类。该层不依赖任何层。



10.Adnc.Infr.Gateway

该层是一个输出项目,基于Ocelot实现的Api网关,如果项目采用整体结构开发,该项目可以直接删除。ocelot网关包含路由、服务聚合、服务发现、认证、鉴权、限流、熔断、缓存、Header头传递等功能。市面上主流网关还有Kong,Traefik,Ambassador,Tyk等。



11.Adnc.Infr.HealthCheckUI

该层是一个输出项目, AspNetCore.HealthChecks组件的Dashboard,直接配置需要监测的服务地址就可以了,没有代码,关键的代码参考webapi层的AddHealthChecks()方法。



20.Adnc.Infr.Consul

该层集成了Consul,提供服务的自动注册、发现以及系统配置读写。



21.Adnc.Infr.EasyCaching

该层集成了EasyCaching,负责一、二级缓存的管理,并重写了EasyCaching拦截器部分代码。


22.Adnc.Infr.EfCore

该层负责Adnc.Core.Shared仓储接口与Uow的EfCore的实现,负责mysql数据库的操作。同时也集成了Dapper部分接口,用来处理复杂查询。



23.Adnc.Infr.Mongo

该层负责Adnc.Core.Shared仓储接口的Mongodb实现,负责mongodb数据库的操作。



24.Adnc.Infr.RabbitMq

该层集成了RabbitMq。封装了发布者与订阅者等公共类,方便更加便捷的调用rabbitmq。



Adnc.Portal 微服务相关工程

该层都是具体微服务业务的实现。
Adnc.Usr 用户中心微服务,实现了用户、角色、权限、部门管理。
Adnc.Maint 运维中心微服务,实现了登录、审计、异常日志管理以及一些配套组件的外链。
Adnc.Cus 客户中心微服务,该层主要是一些demo。
每个微服务的Migrations层是Efcore用来做数据迁移的,迁移的日志文件存放在各自Migrations目录中。



基于Net/Core,快速搭建 API & SPA 及微服务应用组织

BASE NETCORE (VUE) PROJECT TEAM

每一个.NET开发者都可以通过自己的开源项目(最好可以配套简单发表些文章)在这里进行分享,BCVP开发者组织的意义就是激发和挖掘更多的作品,可能偏基础,但是都会有价值。目的就是希望:每个人能将从社区学到的知识,进行自己消化和总结,浓缩成一个个独立的项目,接着投入到社区,最后让更多的初学者去了解、去学习、去思想碰撞,从而达到学习来源于社区,最后反哺于社区的良好循环目的,我们都是学生,也都是下一批初学者的老师,这才应该是一个社区正向推动的方法。

地址:
https://github.com/BaseCoreVueProject

可以在Home仓库里,查看具体的流程说明,只要你愿意分享,就来吧。

加入我们

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值