当前位置:首页 > 技术分析 > 正文内容

开源项目分享-基于.Net5的快速开发框架Furion

ruisui884个月前 (02-03)技术分析24

最近.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感觉轻量很多,容易上手,有兴趣的小伙伴们可以体验一下。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1358.html

分享给朋友:

“开源项目分享-基于.Net5的快速开发框架Furion” 的相关文章

2024年10 大 Linux 桌面发行版推荐

年已过半,现在是探究 2024 年最流行的 Linux 发行版的最佳时机。Linux 是一个开源操作系统,构建在 Linux 内核上,并集成了 GNU shell 实用程序、桌面环境、应用程序、包管理系统。由于其通用性、安全性、用户友好性和多样性,它的受欢迎程度超过了其他操作系统。在本文中,我们将从...

壹啦罐罐 Android 手机里的 Xposed 都装了啥

这是少数派推出的系列专题,叫做「我的手机里都装了啥」。这个系列将邀请到不同的玩家,从他们各自的角度介绍手机中最爱的或是日常使用最频繁的 App。文章将以「每周一篇」的频率更新,内容范围会包括 iOS、Android 在内的各种平台和 App。本期继续歪楼,由少数派撰稿作者@壹啦罐罐介绍他正在使用的...

我的VIM配置

写一篇关于VIM配置的文章,记录下自己的VIM配置,力求简洁实用。VIM的配置保存在文件~/.vimrc中(Windows下是C:\Users\yourname \_vimrc)。VIM除了自身可配置项外,还可插件扩展。VIM的插件一般用vundle或vim-plug来管理,但我力求简单,不打算装太...

Vue从入门到实践 丨Vue-router基本使用

1. 什么是 vue-routervue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装...

分享15个基于Vue3.0全家桶的优秀开源项目

大家好,我是 Echa。今天来分享 15 个基于 Vue3.0 全家桶的优秀开源项目!1. Vue Admin Bettergithub : https://github.com/chuzhixin/vue-admin-bettervue admin better 对比其他来源 admin 框架有如...

vue 开发规范

项目运行指南(#项目运行指南)开发本地环境(#开发本地环境)开发相关插件/工具(#开发相关插件工具)开发规范(#开发规范)vue(#vue)【数据流向】(#数据流向)【慎用全局注册】(#慎用全局注册)【组件名称】(#组件名称)【组件中的 CSS】(#组件中的-css)【统一标签顺序】(#统一标签顺序...