首页 » 软件开发 » 开源项目分享-基于.Net5的快速开发框架Furion(项目框架开发开源读取)

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

南宫静远 2024-07-24 18:45:26 0

扫一扫用手机浏览

文章目录 [+]

Microsoft

Furion简介

Furion定位是让 .NET 开发更简单,更通用,更流行,目前Furion已捐赠给dotNET China(dotNET China下有SqlSugar ORM、BootstrapAdmin等优秀的GVP项目)。

Furion

开源项目分享-基于.Net5的快速开发框架Furion(项目框架开发开源读取) 软件开发
(图片来自网络侵删)

框架特点:

基于 .NET 5 平台、内置丰富的企业应用开发功能、框架只依赖两个第三方包、极其灵活轻松面对多变复杂的需求、极易维护采用独特的架构思想、提供完善的开发文档

furion特色

Furion开发体验-项目创建

使用VS2019新建ASP.NET Core Web应用程序,选择新建API项目(取消勾选Docker支持,电脑上没有Docker Desktop的话安装配置非常慢),Furion已经内置了 Swagger 规范化库,所以创建时无需勾选 “启用OpenAPI支持(O)”选项。
项目新建完成后,在NuGet包管理器中添加Furion的依赖,包安装成功后我们修改Program.cs、Startup.cs2个类文件添加Inject()即可。

NuGet 包管理器

我们在NuGet里面搜索Furion,发现除了Furion外,还有Furion.Template.、Furion.Extras.为应用类型的模板脚手架,方便快速创建多层架构项目。
Furion推荐使用官方脚手架来新建项目,不需要自己手动搭建分层项目。

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

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0