一、什么是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开发人员的不二之选。