开源项目分享-基于.Net5的快速开发框架Furion
ccwgpt 2024-09-20 13:35 27 浏览 0 评论
最近.NET 6.0发布了最新的.NET 6.0.100-preview2,去年发布的.NET 5.0版本已趋于稳定,其最新Release版本5.0.4。DOTNET生态涌现出很多不错的框架如ABP等,今天在gitee码云上发现一个不错的.NET 5 企业级应用开发框架Furion
Furion简介
Furion定位是让 .NET 开发更简单,更通用,更流行,目前Furion已捐赠给dotNET China(dotNET China下有SqlSugar ORM、BootstrapAdmin等优秀的GVP项目)。
框架特点:
基于 .NET 5 平台、内置丰富的企业应用开发功能、框架只依赖两个第三方包、极其灵活轻松面对多变复杂的需求、极易维护采用独特的架构思想、提供完善的开发文档
Furion开发体验-项目创建
使用VS2019新建ASP.NET Core Web应用程序,选择新建API项目(取消勾选Docker支持,电脑上没有Docker Desktop的话安装配置非常慢),Furion已经内置了 Swagger 规范化库,所以创建时无需勾选 “启用OpenAPI支持(O)”选项。 项目新建完成后,在NuGet包管理器中添加Furion的依赖,包安装成功后我们修改Program.cs、Startup.cs2个类文件添加Inject()即可。
我们在NuGet里面搜索Furion,发现除了Furion外,还有Furion.Template.*、Furion.Extras.*为应用类型的模板脚手架,方便快速创建多层架构项目。
Furion推荐使用官方脚手架来新建项目,不需要自己手动搭建分层项目。
我们使用Furion.Template.Api搭建一个WebApi工程FurionDemo,首先我们安装模板
dotnet new --install Furion.Template.Api::1.15.0 ,然后使用模板创建自己的项目,从上图可知Furion.Template.Api对应的关键词为furionapi,所以对应的命令为:dotnet new furionapi -n FurionDemo,执行完毕后我们发现已经创建FurionDemo的解决方案:
我们可以看到解决方案里总共有6个项目,Web.Entry是应用入口,启动项目后浏览器默认打开的是项目的swagger接口管理页面。
Furion开发体验-配置读取
读取appsettings.json,Furion提供了2种读取方式:1.依赖注入 IConfiguration对象读取(构造函数注入方式、参数注入方式、属性注入方式)、2.通过 App.Configuration[jsonKey] 读取(读取JSON多层节点可以通过路径符查找节点),另外Furion还支持xml配置文件的自动读取(文件名以.config.xml结尾)
{
"MyInfo": {
"Name": "Furion",
"Setting": {
"Name": "Furion",
}
}
}
//读取Setting对应的Name
var companyName = App.Configuration["MyInfo:Setting:Name"];
Furion开发体验-动态 WebAPI
上面新建的FurionDemo工程我们看到,FurionDemo.Application项目的SystemAppService类,继承了IDynamicApiController,直接将服务暴露到控制器层(动态WebAPI),无需再编写控制器,暴露的业务方法支持各种http请求谓词,Furion的文档上有详细介绍。
Furion开发体验-其他特性
Furion提供了规范化接口文档(Swagger集成):
Furion提供了非常方便且灵活的 Swagger 配置,无需增加额外的学习成本。另外通过在服务类上设置 [ApiDescriptionSettings("分组名称")] 即可方便地实现Swagger接口文档自动分组。
友好的异常处理:
Furion通过AddFriendlyException()注册全局的异常处理,代码中使用throw Oops.Oh("异常信息")、throw Oops.Oh("异常信息", typeof(InvalidOperationException)) 可以手动抛出异常,
优雅的数据校验方式:
Furion 框架内置的 DataValidation 验证,兼容 Mvc 特性验证(如[Range(10, 20, ErrorMessage = "")])、Required),另外Furion 提供了 TryValidate() 和 Validate() 两个验证拓展方法,ValidationTypes 添加了很多常见验证类型如(Required、Numeric、正数/负数/整数/金钱/时间/身份证/邮编/手机号/固话/邮件地址/网址/颜色值/中文/IPv4 /IPv46/图片/Ascii 格式等)
数据库操作:
数据库操作支持EFCore、SqlSugar、Dapper等,数据库操作常见的事务和工作单元、读写分离、分表分库等Furion文档上均有详细介绍和示例
支持多租户
Furion 框架支持三种多租户实现方案(独立数据库、共享数据库不同Schema 、共享数据库,相同Schema 基于TenantId 的方式)Furion文档上均有详细介绍和示例
另外Furion还有很多不错的特性,比如其缓存系统、日志记录设计、全球化本地化(多语言处理)、时间总线、任务调度、Grpc服务等等,整体上感觉还是蛮不错的,特别是Furion的文档写的很详细,想必ABP感觉轻量很多,容易上手,有兴趣的小伙伴们可以体验一下。
相关推荐
- Spring WebFlux vs. Spring MVC(springboot是什么)
-
背景随着异步I/O和Netty等框架的流行,响应式编程逐渐走入大众的视野。但是,响应式编程本身并不是太新的概念,这个术语最早出现在1985年DavidHarel和AmirPnue...
- 深度解析微服务高并发:适配SpringMVC框架适配模块及实现原理
-
适配主流框架如果不借助Sentinel提供的适配主流框架的模块,则在使用Sentinel时需要借助try-catchfinally将要保护的资源(方法或代码块)包起来,在目标方法或代码块执行之前,调...
- Spring MVC 底层原理深度解析:从请求到响应的全链路拆解
-
一、Servlet容器与DispatcherServlet的启动博弈1.Tomcat初始化阶段java//Tomcat初始化流程StandardContext#startInterna...
- 改造总结之传统SpringMVC架构转换为SpringBoot再到集群
-
改造出发点,是基于现在服务都在向上云的目标前进,传统SpringMVC难以满足项目持续构建、服务节点任意扩展的需求,所以开始了历史项目的改造。项目改造考虑的主要是兼容以前的业务代码,以及session...
- SpringBoot3 整合 Spring MVC 全解析:开启高效 Web 开发之旅
-
在当今的JavaWeb开发领域,Spring框架家族无疑占据着重要的地位。其中,SpringBoot3和SpringMVC更是开发者们构建强大、高效Web应用的得力工具。今天,...
- 一文读懂SpringMVC(一文读懂!残疾人低保边缘家庭能领的超实用福利政策)
-
1.SpringMVC定义1.1.MVC定义Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据View(视图):是应用程序中处理数据显示的部分。通常...
- 69 个Spring mvc 全部注解:真实业务使用案例说明(必须收藏)
-
SpringMVC框架的注解为Web开发提供了一种简洁而强大的声明式方法。从控制器的定义、请求映射、参数绑定到异常处理和响应构建,这些注解涵盖了Web应用程序开发的各个方面。它们不仅简化了编码工作,...
- Spring MVC工作原理:像拼积木一样构建Web应用
-
SpringMVC工作原理:像拼积木一样构建Web应用在Java的Web开发领域,SpringMVC无疑是一个让人又爱又恨的存在。它像一位神通广大的积木搭建大师,将一个个分散的功能模块巧妙地拼接在...
- 5千字的SpringMVC总结,我觉得你会需要
-
思维导图文章已收录到我的Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary概述SpringMVC再熟悉不过的框架了,因为现在最火的...
- SpringMVC工作原理与优化指南(springmvc工作原理和工作流程)
-
SpringMVC工作原理与优化指南在现代Java开发中,SpringMVC无疑是构建Web应用程序的首选框架之一。它以其优雅的设计和强大的功能吸引了无数开发者。那么,SpringMVC究竟是如何工作...
- Spring MVC框架源码深度剖析:从入门到精通
-
SpringMVC框架源码深度剖析:从入门到精通SpringMVC框架简介SpringMVC作为Spring框架的一部分,为构建Web应用程序提供了强大且灵活的支持。它遵循MVC(Model-V...
- 3000字搞明白SpringMVC工作流程、DispatcherServlet类、拦截器!
-
SpringMVC基础虽然SpringBoot近几年发展迅猛,但是SpringMVC在Web开发领域仍然占有重要的地位。本章主要讲解SpringMVC的核心:DispatcherServlet类...
- 多年经验大佬用2000字透彻解析SpringMVC的常用注解及相关示例
-
SpringMVC注解SpringMVC框架提供了大量的注解,如请求注解、参数注解、响应注解及跨域注解等。这些注解提供了解决HTTP请求的方案。本节主要讲解SpringMVC的常用注解及相关示例...
- 知乎热议:如何成为前端架构师,赚百万年薪?
-
作者|慕课网精英讲师双越最近有一条知乎热议:从一个前端工程师,如何根据目标,制定计划,才能快速进阶成为前端架构师?不久之前我参与了一次直播,讲到了自己对于Web前端架构师的理解。架构师这个角色...
- 学习笔记-前端开发架构设计(前端架构设计方案)
-
前端开发的技术选项主要包含以下几点,下面对一些名词概念的解释做了笔记:1、分层架构:把功能相似,抽象级别相近的实现进行分层隔离优势:松散耦合(易维护,易复用,易扩展)常见分层方式:MVC,MVVM2、...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Spring WebFlux vs. Spring MVC(springboot是什么)
- 深度解析微服务高并发:适配SpringMVC框架适配模块及实现原理
- Spring MVC 底层原理深度解析:从请求到响应的全链路拆解
- 改造总结之传统SpringMVC架构转换为SpringBoot再到集群
- SpringBoot3 整合 Spring MVC 全解析:开启高效 Web 开发之旅
- 一文读懂SpringMVC(一文读懂!残疾人低保边缘家庭能领的超实用福利政策)
- 69 个Spring mvc 全部注解:真实业务使用案例说明(必须收藏)
- Spring MVC工作原理:像拼积木一样构建Web应用
- 5千字的SpringMVC总结,我觉得你会需要
- SpringMVC工作原理与优化指南(springmvc工作原理和工作流程)
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- springmvc框架 (49)
- scrapy框架 (52)
- beego框架 (42)
- java框架spring (43)
- grpc框架 (55)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)