微软本周发布了ASP.NET Core 5.0,作为.NET 5通用版的一部分,它具有新功能和显着的性能改进,但也有一些重大的变化。
ASP.NET Core 5是Microsoft的官方Web应用程序框架(或框架集合),在战略上具有重要意义,因为这是一个巨大的市场,尤其是因为它在Linux上作为Windows服务器运行。
该框架是免费的,不过该公司无疑认为ASP.NET的用户更有可能在其Azure云上托管应用程序,并以某种方式将SQL Server用于数据库。 Entity Framework Core是官方的.NET对象关系映射库,在Microsoft的示例和模板中默认为SQL Server,尽管存在其他数据库的驱动程序。
微软首席项目经理丹尼尔·罗斯(Daniel Roth)表示,向.NET 5.0的过渡提高了性能。 他引用了微软最喜欢的基准套件TechEmpower的数据,与ASP.NET 3.1相比,该套件显示吞吐量提高了12-44%,延迟提高了4-66%。 综合得分提高了17%。引用的测试使用的操作系统是Linux。
在此版本的ASP.NET Core中,gRPC的速度要快得多
与许多测试套件一样,实际结果可能并不那么令人印象深刻。 在TechEmpower统计数据中还值得注意的是,Entity Framework Core往往比原始数据库访问或替代的轻量级ORM(例如Dapper)要慢得多。
ASP.NET Core 5已进行了许多改进,包括对C#9.0记录类型的支持,ASP的最新部分Blazor的性能提高了很多,它可以使用WebAssembly在浏览器中运行.NET代码,使用gRPC(一种开源远程过程调用框架)可以提高60%的性能,它支持RESTAPI的OpenAPI/Swagger UI标准,以及对SignalR实时通信框架的改进,以支持服务器上的方法并发调用。
开发人员还将受益于称为dotnet watch的功能,该功能在进行代码更改时会自动刷新浏览器,因此几乎可以立即查看结果。
在开发人员着手迁移现有项目之前,需要先看看可能需要修改代码的重大更改。 例如,Razor页面中的DateTime值的绑定已从服务器上的时区更改为始终使用UTC时区。 通常这是一件好事,但可能意味着应用程序中显示的日期和时间不正确。
最新的Visual Studio为ASP.NET Core 5.0应用程序提供了多种选择
Azure用户将能够立即升级运行在App Service上的应用程序。 App Service是一个托管平台,允许开发人员仅上传其应用程序,将服务器管理留给Microsoft,并提供手动和自动缩放选项。
App Service通过早期访问运行时支持.NET 5,但是在应用程序启动时会拉出所需的运行时或容器,从而导致冷启动。 文件说:“根据我们的测试,P95的影响约为30秒,平均影响小于10秒。”这意味着95%的应用程序启动延迟了30秒或更短。构建性能也会受到影响。 这些限制将在下一个App Service版本之后消失。