一、什麼是Furion框架?
Furion是一款基於ASP.NET Core的快速開發框架,完全兼容ASP.NET Core的生態系統,並通過封裝和優化提高生產效率。它提供的功能非常豐富,包括但不限於依賴注入、中間件管道、API文檔、SwaggerUI、API監視器、日誌、配置、Redis、MongoDB以及SqlSugar等常用的開發工具。
相比於其他框架,Furion框架具有更好的性能、更高的可讀性和更短的學習曲線,讓我們可以更輕鬆地構建出高性能Web應用程序。
二、Furion框架的優勢
1、提高開發效率。
public class SqlSugarContext : IDbContext<SqlSugarClient>
{
public SqlSugarClient Master { get; set; }
public SqlSugarClient Slave { get; set; }
public SqlSugarClient Proxy { get; set; }
public SqlSugarContext(IOptionsMonitor<DbOptionSettings> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder, DbOptionSettings options)
{
Master = new SqlSugarClient(options.Master);
Slave = new SqlSugarClient(options.Slave);
if (!string.IsNullOrEmpty(options.Proxy.ConnectionString))
{
Proxy = new SqlSugarClient(options.Proxy);
}
// SqlSugar
optionsBuilder.UseSqlServer(Master);
}
}
通過Furion框架封裝的SqlSugar,我們可以更方便地實現數據庫操作,不用再寫一些繁瑣的配置和管理代碼,大大提升了開發效率。
2、優化性能。
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
[HttpGet]
[UnitOfWork]
[SwaggerResponse((int)HttpStatusCode.OK, "查詢成功")]
[SwaggerResponse((int)HttpStatusCode.BadRequest, "查詢失敗")]
public async Task<ActionResult<IEnumerable<WeatherForecast>>> Get(
[FromQuery, SwaggerParameter("開始時間", Required = true)] DateTime startDate,
[FromQuery, SwaggerParameter("天數", Required = true)] int days)
{
var rng = new Random();
var result = await unitOfWork.Repositories<SqlSugarClient, WeatherForecast>()
.Entities.Where(x => x.Date >= startDate && x.Date < startDate.AddDays(days)).ToListAsync();
return Ok(result);
}
}
Furion框架中提供的UnitOfWork特性,讓我們在服務方法中實現了事務處理,避免了事務過度樂觀的情況,增加了應用系統的可用性和可擴展性。
三、Furion框架的應用
1、依賴注入
internal static IServiceCollection AddDbContext<TDbContext,TDbContextLocator>(this IServiceCollection services)
where TDbContext : DbContext
where TDbContextLocator: ILocator<TDbContext>
{
services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<DbContextOptions>>(new DbContextOptionsSetup<TDbContext>(sp => DbContextOptionsFactory(sp, typeof(TDbContextLocator)))));
services.TryAddScoped<TDbContext>(sp => sp.GetRequiredService<IDbContext>().GetDbContext<TDbContext>());
return services;
}
2、API文檔
public void ConfigureServices(IServiceCollection services)
{
services.AddOpenApiDocument();
}
3、日誌
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSerilogRequestLogging();
}
四、Furion框架的安裝
dotnet add package Furion
安裝完畢後,我們就可以開始使用Furion框架了。
五、Furion框架的更新與維護
在使用Furion框架過程中,我們可以通過以下方式獲得社區更新與維護支持:
1、官方文檔:https://furion.pro/#/getting-started
2、GitHub倉庫:https://github.com/monksoul/Furion
3、微信公眾號:Furion – 簡單高效的ASP.NET Core快速開發框架
更好的性能、更高的可讀性和更短的學習曲線,Furion框架憑藉強大的功能和輕量的體量,無疑是Web開發人員的不二之選。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/298077.html