Net 5.0 快速开发框架 YC.Boilerplate--框架介绍

YC.Boilerplate 框架介绍

YC.Boilerplate 是一套快速开发框架,采用当下流行的前后端分离开发模式,前端 采用VUE、后端采用Net 5.0;框架实现了 多租户、动态webApi、多种ORM、IOC、数据库表和业务代码生成等等一系列模块,并开发了用户管理、角色权限、组织机构、 数据字典、审计日志等常规功能,前后端代码一键生成。

框架的宗旨:构建一套松耦合、灵活组合、功能齐全、开发便捷、减少开发工作量的样板化开发框架。

在线文档:http://doc.yc-l.com/#/README
在线演示地址:http://yc.yc-l.com/#/login
源码github:https://github.com/linbin524/yc.boilerplate
源码gitee:https://gitee.com/linxuanming/yc.boilerplate
元磁之力框架技术群QQ:1060819005

框架技术栈和开发模式

  • 开发模式:当下流行的前后端分离。

  • 前端:vue、elementUI等技术栈,为单页面应用程序提供了项目模板。

  • 后端采用NET 5.0。

框架特点

  • 模块化开发,灵活组合,将解耦进行到底,按需注入使用。

  • 当下流行的开发模式,分层明确。

  • 配合框架自带代码生成器快速完成CRUD和树形等复杂功能逻辑实现,不敲一行代码,节省60%工作量。

框架分层介绍

  • 核心层:YC.Core 主要实现顶层设计类接口规范和一些类的封装,比如:租户接口、AopInterceptor AOP 拦截注入、TokenContext token逻辑、公共特性等等。

  • 数据层:YC.DapperFrameWorkYC.FreeSqlFrameWork 多项ORM 封装,主要存在仓储、工作单元等。

  • 公共层:YC.Common 主要是各种公共类的使用。

  • 业务服务层:YC.ApplicationService 业务逻辑实现,默认实现动态webapi。

  • 实体层:YC..Model 常规的数据表实体,枚举等,以及常规的model需要用的基础方法。

  • 业务Api层:YC.ServiceWebApi 提供对外接口服务启动项目。

模块层(按需使用)

  • 数据库表和代码生成模块:YC.CodeGenerate

  • Redis 缓存模块:YC.Cache.Redis

  • 动态WebApi模块:YC.Core.DynamicApi

  • 日志模块:YC.Log.Serilog

单元测试

微软自带单元测试:UnitTestProject
数据库表和代码生成测试:YC.CodeGenerateTest

框架功能模块

框架特性

  1. 基于最新的.NET技术 NET 5.0。

  2. 实现领域驱动设计(实体、仓储、领域服务、领域事件、应用服务、数据传输对象,工作单元等等)。

  3. 实现分层体系结构(领域层,应用层,展现层和基础设施层)。

  4. 提供了一个基础架构来开发可重用可配置的模块。

  5. 集成一些最流行的开源框架/库,也许有些是你正在使用的。

  6. 提供了一个基础架构让我们很方便地使用依赖注入(使用Autofac作为依赖注入的容器)。

  7. 提供Repository仓储模式支持不同的ORM(已实现dapperFramework 、freesqlFrameWork、Redis等)。

  8. 支持并实现数据库迁移(采用自由映射Table )。

  9. 模块化开发(每个模块有独立的采用autofac模块注入形式,根据不同业务可以动态切换指定数据库)。

  10. 统一的异常处理(应用层几乎不需要处理自己写异常处理代码)。

  11. 通过Application Services自动创建Web Api层(不需要写ApiController层了)。

  12. 提供基类和帮助类让我们方便地实现一些常见的任务。

  13. 使用“约定优于配置原则”。

  14. 实现多租户,按照不同的租户分库服务端。

  15. 实现了基于表模型生成对应的全流程代码,包括:model、DTO、Service、前端展示界面(常规CRUD和树形功能)、路由规则、Mapper model和Dto映射等代码。

  16. 框架已经实现常规基础功能,如:身份验证用户&角色管理、系统设置、存取管理(系统级、租户级、用户级,作用范围自动管理)、审计日志(自动记录每一次接口的调用者和参数)、组织机构等,实现框架开箱即用。

  17. 框架采用redis 作为cache和session 存储,脱离cookie 使用,解决非web的等也可以使用框架进行多样的场景需求改造。

项目界面展示

笔者原创!如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载请添加原博客连接,否则保留追究法律责任的权利,谢谢!YC.Boilerplate 快速开发框架交流,请加群:1060819005 区块链交流请加QQ群:538327407(已满),群2:135019400. 我的博客地址:http://www.cnblogs.com/linbin524/

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

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

相关文章

老师:你根本不知道我有多想逃课

1 这个时候如果不小心吸了一口就是另一个故事了▼2 抓到一只正在吐泡泡的蓝胖子!▼3 腿短怎么了?我腿短我可爱!你学我是几个意思?▼4 我本以为这是一个温馨的故事▼5 老师:你根本想象不到我有多想逃课&#xff01…

允许服务与桌面交互_vivo 正式推出 Origin OS,融合自然设计与全新交互_搜狐汽车...

点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事!今天下午,vivo 推出了全新 Origin OS 手机系统。它采用了源于自然界的设计理念,同时加入了全新并且允许用户进行深度自定义的交互方…

有研究irrlicht引擎的吗,交流交流

我最近在研究这个开源引擎不知道irrlicht引擎和其他商业引擎比起来怎么样?这个引擎虽然没有IDE不过一直在更新,在进步。知道这个引擎的发表发表你的看法补充:最近找到了irrlicht中文官方论坛 有很多牛人是知名的网络游戏开发论坛和游戏玩家论坛忘了写网址…

oracle数据库转sqlite,Sqlite导入Oracle软件(SqliteToOracle)

SqliteToOracle是一款专业的SQLite数据库管理器导入或导出到Oracle,软件允许您快速轻松地将数据或表从SQLite结构传输到Oracle。 该应用程序允许您传输单个表或整组数据,以及定义通过SQL查询导出的源。有需要的小伙伴欢迎来西西下载体验。基本简介&#…

WPF企业内训全程实录(下)

摘要 WPF企业内训全程实录由于文章比较长,所以一共拆分成了三篇,上篇WPF企业内训全程实录(上)主要讲了基础,中篇WPF企业内训全程实录(中)主要讲解开发模式、团队协作及应用框架,起着承上启下的作用,主要讲解…

WPF之DataGrid

1、WPF 4 DataGrid 控件(基本功能篇) 基本使用,绑定数据展示 2、WPF 4 DataGrid 控件(自定义样式篇) 定义行,列,头,单元格等样式 3、WPF 4 DataGrid 控件(进阶篇一&#…

WTM框架使用技巧之:Layui版本嫁接Vue+ElementUI

快点关注我们吧作者介绍庄星睿,现就职于海运物流行业,威海新海丰物流有限公司,IT技术兼管理职务。从事过winform,wpf技术开发,自2019年接触wtm框架后,热衷使用wtm框架开发物流公司内部软件。如高度定制化的SOC自备箱管…

现在女生的床真的都是这样吗?

1 兰花螳螂喜欢模拟兰花的形态,从而吸引猎物2 女生的床真是这样吗?真的假的啊3 双胞胎姐妹在妈妈肚子里打架概率只有三千万分之一4 用户真正的需求和自以为是的产品设计5 你看我们都尽力给你腾地方了……6 野外生存技能】过滤浑水的方法7 解释一下原理你…

研究发现:一心多用会使认知水平下降

有些人喜欢一边在网上搜寻新款鞋样,一边和朋友聊天,同时还不忘观看最新一季美国时装真人秀节目《天桥骄子》(Project Runway)。因此,下面这则消息对他们来说可不太好:科学家们在有史以来首次对长期一心多用…

让对话框不显示边框_微信消息“无边框”模式搭配这款壁纸,简直绝了

技能:好运壁纸,微信“无边框”聊天背景图难度系数:1颗星适用系统:安卓,iOS(苹果)今天所长想给大家介绍一组会让人好运爆棚的壁纸,不过,运营妹纸给我分享了一款有趣的聊天背景图,换上…

一切阅读都是误读

一切阅读都是误读 一切阅读都是误读 —— 安伯托•艾柯 上次读这本书已经是五年前的事了,中文版刚出版我就买了一本。那时候,我的工作相对比较清闲,有大量的时间阅读。恰巧我在负责公司的校园招聘及新员工培训,非常需要一些不错的…

理解流量监管和整形的关键算法—令牌桶

理解流量监管和整形的关键算法—令牌桶无论是流量监管还是流量整形都提到一个超额流量的问题,而前面已经描述了监管和整形对超额流量的处理方式不同,监管丢弃或者重标记,流量整形是缓存,通过加大延迟的方式发送平滑的数据流量&…

面试官: 平时开发中你用过读写锁吗?

前面实现了一个 带值变更通知能力的字典类(线程不安全),童鞋们有没有发现演示代码使用了 lock语法糖, 这个有没有问题呢?没背景说个铲铲同程艺龙基础架构部推出的数据获取组件DAL.Connection,我们要做到在切换连接配置时清空数据库…

如何计算一只鸡的表面积?各大专业的奇葩解法

全世界只有3.14 % 的人关注了爆炸吧知识今天,知识君跟大家来算一下一只鸡的表面积吧。数学系

文件夹里打开终端

$sudo apt-get install nautilus-open-terminal 这样便会在每个文件夹的右键菜单中出现 "在终端中打开" 的一个选项, 选择便会打开一个终端, 路径为当前文件夹! 当然, 可以使用 nautilus-scripts 添加右键扩展. 在 ~/.gnome2/nautilus-scripts/ 目录下新建一个文件名…

如何删除SQL Server下注册的服务器

删除对应的sql server的注册服务器: HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\Tools\SQLEW\Registered Servers X\SQL Server 组中, 直接删除你你要删除的那个注册名就可以了 转载于:https://www.cnblogs.com/tohen/archive/2010/…

oracle绑定变量过多,oracle - 在SQL Plus中使用绑定变量并返回多行? - 堆栈内存溢出...

这是一个愚蠢的问题,但我似乎无法解决。 我有一个查询在OCI程序中引起麻烦,因此我想在SQL * Plus中手动运行它以检查是否有任何区别。 这是查询:select e.label as doc_name,e.url,i.item_id,multi as form_typefrom cr_items i, cr_extlinks…

ArrayPool 源码解读之 byte[] 也能池化?

一:背景 1. 讲故事最近在分析一个 dump 的过程中发现其在 gen2 和 LOH 上有不少size较大的free,仔细看了下,这些free生前大多都是模板引擎生成的html片段的byte[]数组,当然这篇我不是来分析dump的,而是来聊一下&#x…

本地环境和测试环境搭建

1.wampserver(可兼容后端php) 2.tomcate 3.edp webserver(百度内部) 4.fiddle重定向(可以把在线的网页直接接入本地的代码进行替换看效果)转载于:https://www.cnblogs.com/cjy1993/p/4097123.html