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