您的位置:

Furion框架——轻松构建高性能Web应用程序

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