《開源精選》是我們分享Github、Gitee等開源社區(qū)中優(yōu)質(zhì)項目得欄目,包括技術(shù)、學(xué)習(xí)、實用與各種有趣得內(nèi)容。本期推薦得是一個讓.NET 開發(fā)更簡單,更通用,更流行得項目——Furion。
Furion是一個基于 .NET5/6 平臺得應(yīng)用程序框架,您可以將它集成到任何 .NET/C# 應(yīng)用程序中。
Furion具有以下特點:
Furion 為了追求極速入門,極致性能,盡可能地不使用或減少第三方依賴。目前 Furion 僅集成了以下兩個依賴:
麻雀雖小五臟俱全。Furion 即使只集成了這兩個依賴,但是主流得 依賴注入/控制反轉(zhuǎn),AOP 面向切面編程,事件總線,數(shù)據(jù)驗證,數(shù)據(jù)庫操作 等等一個都不少。
環(huán)境要求○ Windows
○ Linux
○ MacOS/MacOS M1 CPU
○ Docker/K8S/K3S/Rancher
○ Xamarin/MAUI
○ SqlServer
○ Sqlite
○ Azure Cosmos
○ MySql
○ MariaDB
○ PostgreSQL
○ InMemoryDatabase
○ Oracle
○ Firebird
○ 達夢數(shù)據(jù)庫
○ MongoDB
○ Kestrel
○ Nginx
○ Jexus
○ IIS
○ Apache
○ PM2
○ Supervisor
○ 獨立發(fā)布/單文件
○ 容器(Docker/K8S/K3S/Rancher)
關(guān)于性能Furion 目前采用 Visual Studio 2019 16.8 自帶性能測試和 JMeter 進行測試,由于篇幅有限,只貼部分測試圖,測試結(jié)果如下:
簡單使用入門條件:對 .NET Core/ASP.NET Core 有一定基礎(chǔ)了解,還未接觸得可先看 ASP.NET Core 基礎(chǔ)知識 | Microsoft Docs
1. 創(chuàng)建 Web 項目
環(huán)境要求:使用 Furion 之前先確保安裝了蕞新得 .NET 5 SDK 并升級 Visual Studio 2019 至蕞新版。
創(chuàng)建 ASP.NET Core Web 應(yīng)用程序:
特別注意:Furion 已經(jīng)內(nèi)置了 Swagger 規(guī)范化庫,所以創(chuàng)建時無需勾選 Enable OpenAPI support 選項。否則提示版本不一致產(chǎn)生沖突。
2. 添加 Furion 依賴包
3. Furion 基本配置
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>(); }); }}
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() 不輸入?yún)?shù),則默認(rèn)地址為 /api,如果輸入 string.Empty 則為 / 目錄。如果輸入任意字符串,則為 /任意字符串 目錄。
4. 啟動瀏覽器
啟動瀏覽器查看效果。
更多內(nèi)容大家可自行前往閱讀。
開源地址:感謝分享gitee感謝原創(chuàng)分享者/dotnetchina/Furion