本期推荐的是一个让.NET 开发更简单,更通用,更流行的项目——Furion。
Furion是一个基于 .NET5/6 平台的应用程序框架,您可以将它集成到任何 .NET/C# 应用程序中。
Furion具有以下特点:
- 全新面貌:基于 .NET5/6 平台,没有历史包袱
- 极少依赖:框架只依赖两个第三方包
- 极易入门:只需要一个 Inject() 即可完成配置
- 极速开发:内置丰富的企业应用开发功能
- 极其灵活:轻松面对多变复杂的需求
- 极易维护:采用独特的架构思想,只为长久维护设计
- 完整文档:提供完善的开发文档
- 跨全平台:支持所有主流操作系统及 .NET 全部项目类型
功能模块
框架依赖
Furion 为了追求极速入门,极致性能,尽可能地不使用或减少第三方依赖。目前 Furion 仅集成了以下两个依赖:
- MiniProfiler:性能分析和监听必备
- Swashbuckle:Swagger 接口文档
麻雀虽小五脏俱全。Furion 即使只集成了这两个依赖,但是主流的 依赖注入/控制反转,AOP 面向切面编程,事件总线,数据验证,数据库操作 等等一个都不少。
环境要求
- Visual Studio 2019 16.8 +
- .NET 5 SDK +
- .Net Standard 2.1 +
支持平台
- 运行环境
- 数据库
- 应用部署
关于性能
Furion 目前采用 Visual Studio 2019 16.8 自带性能测试和 JMeter 进行测试,由于篇幅有限,只贴部分测试图,测试结果如下:
简单使用
入门条件:对 .NET Core/ASP.NET Core 有一定基础了解,还未接触的可先看 ASP.NET Core 基础知识 | Microsoft Docs
1. 创建 Web 项目
环境要求:使用 Furion 之前先确保安装了最新的 .NET 5 SDK 并升级 Visual Studio 2019 至最新版。
创建 ASP.NET Core Web 应用程序:
- 打开 Visual Studio 2019 并创建 Web 项目
- 配置项目名称
- 选择 WebAPI 项目
特别注意:Furion 已经内置了 Swagger 规范化库,所以创建时无需勾选 Enable OpenAPI support 选项。否则提示版本不一致产生冲突。
2. 添加 Furion 依赖包
3. Furion 基本配置
- Program.cs 添加 Inject()
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace FurionStart
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.Inject() // 添加这一行
.UseStartup<Startup>();
});
}
}
- 在 Startup.cs 中添加两个 Inject()
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace FurionStart
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddInject(); // 添加 AddInject();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
// 添加这一行,如果是 MVC和API共存项目,无需添加 string.Empty
app.UseInject(string.Empty);
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
提示:如果 app.UseInject() 不输入参数,则默认地址为 /api,如果输入 string.Empty 则为 / 目录。如果输入任意字符串,则为 /任意字符串 目录。
4. 启动浏览器
启动浏览器查看效果。
更多内容大家可自行前往阅读。