Mbp,一个用于学习.net core的开发框架

Mbp(https://github.com/mbpframework/Mbp)是一个.net core 3的企业级web开发框架,是我个人用于学习.net core而发起的一个开源项目.这个借鉴了国外优秀开源项目abp vnext,及国内优秀开源框架Osharp的一些思想和实现.欢迎各路开发爱好者加入这个项目,一起学习,一起玩耍,共同成长!

Mbp目前有:

简单的模块化系统,

基于Jwt的统一身份验证,

基于角色和自定义策略的统一授权系统,

集成了swagger ui的poco controller

集成了ef core

提供AOP机制

后面还会继续加入Hangfire,IentityServer4,NServiceBus,RabbitMQ,SignalR,Redis,ML,ES,Multitenancy,virtualfilesystem等等.

下面简单介绍一下Mbp的这个框架吧.首先介绍下整个模块化框架的构成.

 

 1.模块按照等级分为核心模块,组件级模块和应用级模块.核心模块默认为Mbp.Core.框架里面其他的模块都为组件级模块,模块之间会按照依赖关系顺序加载(这是一个to do项).因为目前模块比较少,启动也不会出问题,后续指定了依赖关系就会好很多拉.运行的时候Mbp会作为一个中间件加入到asp.net core的管道中.

2.Mbp.Core是框架的核心,其主要职责是将其他模块的服务注册到依赖注入系统中,同时把相关的中间件加到asp.net core管道中.同时提供了一些底层的抽象定义.

3.Mbp.AspNetCore是针对asp.net core体系封装的一个基本模块,同时这也是Mbp一个很重要的模块,很多模块都继承了它.这个模块的主要职责是实现了Poco controller和一些筛选器以级基本的asp,net core的设置都在这个模块做定义.

4.Mbp.EntityFrameworkCore,这是对EF Core的一个封装的模块,这个模块主要定义了Mbp作为一个企业级开发框架的基本主数据.包括用户,角色,菜单,权限,操作日志等(这个模块有个to do项就是要支持主数据的扩展)

5.Mbp.Authentication,是统一授权管理,其主要职责是定义了框架的授权策略

6.Mbp.Authentication.JwtBearer,是统一身份验证模块,其职责是配置授权身份认证,包括身份标识,设置验证参数,设置验证事件.

7.Mbp.Ddd.Application,此模块主要是为了辅助实施DDD而做的,其主要职责是负责DDD应用层的相关能力的提供,比如定义Dto,扩展分页查询.

8.Mbp.Swagger,此模块是为框架提供web api接口UI界面.

9.Mbp.LogDashboard,此模块是为框架提供框架运行日志分析的UI界面.

下一节,将介绍我是如何用这些模块构建一个web 应用的.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 每日归档量,小知识:统计Oracle的日归档量

首先这对于Oracle DBA来说是个初级问题,即使不熟悉的初级DBA也可以快速在网上搜索到现成的SQL语句。网上搜到的查询SQL基本类似这样的逻辑:select trunc(completion_time) "Date", count(*) cnt, round(sum(block_size * blocks / 1024 / 1024…

蓝桥杯2015初赛-奖券数目-枚举

题目描述 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。 某抽奖活动奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码。 主…

什么?原来C#还有这两个关键字

系列介绍简介【五分钟的dotnet】是一个利用您的碎片化时间来学习和丰富.net知识的博文系列。它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net知识等等。场景您可以在下班坐地铁的时候,拿出…

php files得不到导入的文件,PHP判断文件是否被引入的方法get_included_files用法示例...

本文实例讲述了PHP判断文件是否被引入的方法get_included_files用法。分享给大家供大家参考,具体如下:// 本文件是 abc.phpinclude test1.php;include_once test2.php;require test3.php;require_once test4.php;$included_files get_included_files();…

蓝桥杯2015初赛-三羊献瑞-枚举

题目描述 观察下面的加法算式: 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。 输出 请你填写“三羊献瑞”所代表…

linux系统中变量,Linux系统中的环境变量知识详解

对于没有使用过linux系统的用户来说,有很多术语和功能都很陌生。本文就介绍了linux系统中的环境变量的相关知识,具体内容如下所述。linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相…

如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出

这是该系列的第一篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore。第1部分-使用Serilog RequestLogging来简化ASP.NET Core的日志输出(本篇文章)第2部分-使用Serilog记录所选的端点名称[敬请期待]第3部分-使用Serilog.AspNetCore记录MVC…

蓝桥杯2015初赛-加法变乘法-枚举

题目描述 我们都知道:123 … 49 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如: 123…101112…272829…49 2015 就是符合要求的答案。 请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提…

linux 如何赋值目录,Linux文件系统之目录的建立

一:前言在用户空间中,建立目录所用的API为mkdir().它在内核中的系统调用入口是sys_mkdir().今天跟踪一下函数来分析linux文件系统中目录的建立过程.二:sys_mkdir()Sys_mkdir()对应的代码如下:asmlinkage long sys_mkdir(const cha…

net下的高性能轻量化半自动orm+linq的《SqlBatis》

一、项目介绍该项目内置单表linq操作,xml动态sql解析,词法分析,类型映射等功能。SqlMapper,用来处理sql与数据库操作,它设计的目标是支持mysql,sqlserver,sqllite,pgsql等.TypeMapper用于完成将数据库的字段类型映射到C#类型&…

蓝桥杯2017初赛-迷宫-dfs

题目描述 X星球的一处迷宫游乐场建在某个小山坡上。它是由10x10相互连通的小房间组成的。 房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间,R表示走到右边的房间,U表示走到上坡方向的…

ubuntu系统虚拟机linux系统,基于虚拟机的Linux操作系统安装(Ubuntu

《基于虚拟机的Linux操作系统安装(Ubuntu》由会员分享,可在线阅读,更多相关《基于虚拟机的Linux操作系统安装(Ubuntu(13页珍藏版)》请在人人文库网上搜索。1、实验报告1课程名称: Linux程序设计 实验名称:基于虚拟机的Linux操作系…

如何快速融入团队(六)

作者:邹溪源,长沙资深互联网从业者,架构师社区特邀嘉宾!一我总是在记忆深处探访那些拥有高效率团队的一切特征,并试图从纷繁复杂的记忆尘埃中找出一些共性,庆幸我已经习惯于通过阅读和思考来解读这些内容&a…

Linux 脚本修改ini,Shell脚本读取ini配置文件的实现代码2例

一、简单版参考stackoverflow的例子,改了一个出来:while IFS read var valdoif [[ $var \[*] ]]thensection$(echo $var | sed s/^\[\(.*\)\]$/\1/)elif [[ $val ]]thenif [ -z $section ];thendeclare "${var}$val"elsedeclare "${sec…

蓝桥杯2017初赛-油漆面积-枚举

题目描述 X星球的一批考古机器人正在一片废墟上考古。该区域的地面坚硬如石、平整如镜。 管理人员为方便,建立了标准的直角坐标系。 经过各种测量,每个机器人都会报告一个或多个矩形区域,作为优先考古的区域。 矩形的表示格式为(x1,y1,x2,y2…

临近年关,修复ASP.NET Core因浏览器内核版本引发的单点登录故障

临近年关,咨询师提出360、搜狗急速浏览器无法单点登录到公司核心产品WD: 重定向过多。现象经过测试, 出现单点登陆故障的是搜狗、360等双核浏览器(默认使用Chrome内核), 较新式的Edge、Chrome、Firefox均未出现此障碍。Developer tool监测不到…

Asp.Net Core 已支持 gRPC-Web !!

grpc-dotnet 项目在 PR #695 完成了 ASP.NET Core 服务与 .NET Core gRPC 客户端的 gRPC-Web 实现。虽然目前还是实验性项目,但是并不阻碍我们为之兴奋。下面我们来看看如何使用。gRPC-Web 简介gRPC-Web 允许从浏览器应用程序使用 gRPC,gRPC-Web 支持在新…

蓝桥杯2017初赛-打印大X-找规律

题目描述 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。 为了便于比对空格,所有的空白位置都以句点符来代替。 要求输入两个整数m n,表示笔的宽度,X的高度。 输入 输入存在多组数据 …

排查生产问题linux命令,排查问题所用到的一些Linux命令实践(不定期更新。。)...

一、前言线上问题排查可能是每个程序员都会经历的。在排查的过程中,往往会用到很多Linux命令,也会产生一些很实用的技巧。本博文通过分析一次线上问题排查的过程,把所有用到的命令串起来。每个Linux命令的参数往往会很多,下面对Li…

蓝桥杯2015决赛-方格填数-枚举 or dfs

题目描述 在2行5列的格子中填入1到10的数字。 要求:相邻的格子中的数,右边的大于左边的,下边的大于上边的。 如下图所示的2种,就是合格的填法。 请你计算一共有多少种可能的方案。 输出 请输出该整数,不要输出任何多…