.NET“Spring”框架 Furion

Furion简介

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

NET“Spring”框架 Furion

Furion

框架特点:

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

NET“Spring”框架 Furion

Furion 特色

Furion开发体验-项目创建

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

NET“Spring”框架 Furion

nuget包管理

我们在NuGet里面搜索Furion,发现除了Furion外,还有Furion.Template.*、Furion.Extras.*为应用类型的模板脚手架,方便快速创建多层架构项目。

Furion推荐使用官方脚手架来新建项目,不需要自己手动搭建分层项目。

NET“Spring”框架 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的解决方案:

NET“Spring”框架 Furion

项目结构

我们可以看到解决方案里总共有6个项目,Web.Entry是应用入口,启动项目后浏览器默认打开的是项目的swagger接口管理页面。

NET“Spring”框架 Furion

接口描述

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

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.net/tech/29195.html

发表评论

登录后才能评论