内容简介:自 2020年09月01日 写下第一行代码直至今日已临近 1 周年,Furion 从 .NET5 出发,但不止步于此。 自 2021年05月26日 微软正式发布 .NET 6 Preview 4 版本起,Furion 就着手开发基于 .NET6 版本框架开发,完全采用...
自 2020年09月01日 写下第一行代码直至今日已临近 1 周年,Furion 从 .NET5 出发,但不止步于此。
自 2021年05月26日 微软正式发布 .NET 6 Preview 4 版本起,Furion 就着手开发基于 .NET6 版本框架开发,完全采用最新的 C#9 - C#10 编写整个框架代码,同时保持和 .NET5 版本功能代码高度同步。
截至 2021年08月20日,Furion 基于 .NET 6 Preview 7 和 C#10 完成了所有 .NET5 版本功能代码,实现了100%的功能兼容,另外提供了 Furion.Upgrade.NET6 全自动化升级工具。
Furion.Upgrade.NET6
Furion.Upgrade.NET6 是 Furion 推出的自动化升级工具,可以自动化实现无错误将 Furion v2(.NET5)版本代码升级到 Furion v3(.NET6)。
开发者可放心安心升级,没有任何升级和迁移成本。保证每一个 Furion 用户都能从旧版本升级到未来版本。






新旧版本显著对比
1. 初始化 Program.cs 对比
.NET5 版本:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace Furion.Web.Entry
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.Inject()
.UseStartup<Startup>();
});
}
}
}
.NET6 版本:
var builder = WebApplication.CreateBuilder(args).Inject();
var app = builder.Build();
app.Run();
你没看错,这就是 C#10 的语法,支持顶级命名空间写法。
2. 无 Startup.cs 化
.NET5 版本:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
namespace Furion.Web.Entry
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// 代码迁移至 Furion.Web.Core/Startup.cs
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 代码迁移至 Furion.Web.Core/Startup.cs
}
}
}
.NET6 版本:
无需创建 Startup.cs 类
3. 更精简的代码结构
.NET5 版本:
using Furion.DynamicApiController;
namespace FurionApi.Application
{
public class SystemAppService : IDynamicApiController
{
private readonly ISystemService _systemService;
public SystemAppService(ISystemService systemService)
{
_systemService = systemService;
}
public string GetDescription()
{
return _systemService.GetDescription();
}
}
}
.NET6 版本:
using Furion.DynamicApiController;
namespace FurionApi.Application;
public class SystemAppService : IDynamicApiController
{
private readonly ISystemService _systemService;
public SystemAppService(ISystemService systemService)
{
_systemService = systemService;
}
public string GetDescription()
{
return _systemService.GetDescription();
}
}
无需 using 常用命名空间,同时命名空间可独占一行,无需包裹类定义。
.NET6 版本源码
- Gitee:https://gitee.com/dotnetchina/Furion/tree/net6-dev/
- Github:https://github.com/MonkSoul/Furion/tree/net6-dev/
文档手册
https://dotnetchina.gitee.io/furion/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 你好,2016
- 你好 MQTT 5.0!
- 再见2018,你好2019
- 再见CoffeeScript,你好TypeScript
- 再见CoffeeScript,你好TypeScript
- 再见,Python!你好,Go 语言
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python for Data Analysis
Wes McKinney / O'Reilly Media / 2012-11-1 / USD 39.99
Finding great data analysts is difficult. Despite the explosive growth of data in industries ranging from manufacturing and retail to high technology, finance, and healthcare, learning and accessing d......一起来看看 《Python for Data Analysis》 这本书的介绍吧!
