关于.NET的未来(.NET 5):开发者应该知道什么

不久前,微软在Build 2019大会上宣布了新的.NET 5(.NET的未来)。 .NET 5将是用于构建在所有平台(Windows,Linux)和设备(IoT,Mobile)上运行的应用程序的单一统一平台。

如果您是.NET开发人员,目前支持在.NET框架中开发的企业应用程序,那么从长远来看,您需要了解.NET 5将如何影响您当前的企业应用程序。 .Net 5基于.Net标准,这意味着并非每个.Net框架功能都可以在.Net5中使用。此外,还有一些技术堆栈,如Web表单,WCF和WWF没有移植到.Net 5.我们将看看 关于.Net 5未涵盖的内容的细节以及有哪些替代方案。

技术堆栈没有进入.NET 5

ASP.NET Web窗体

ASP.NET Web Forms不会出现在.NET 5中,微软目前正在推荐向Blazor迁移,这是一个最近被提升为官方的实验性项目。如果你擅长JavaScript,其他选择是Angular,React和Vue SPA框架。

如果您当前正在使用ASP.NET MVC作为完整堆栈Web应用程序,则可以使用ASP.NET Core MVC或.NET Core 2.0中引入的新Razor页面继续使用相同的堆栈,这可能与ASP类似。 NET Web表单,用于快速构建没有视图和控制器的Web表单应用程序。 但是,如果您正在为企业开发现代Web应用程序,最好考虑单页应用程序,如Blazor,Angular或React,而不是传统的Web应用程序,以提供丰富的客户端功能。

WCF(Windows Communication Foundation)

WCF将要错过.NET 5列车的消息让很多人感到惊讶,包括我在内。关于将WCF带回.NET Core的GitHub已经有很多讨论,但微软决定不这样做,因为他们最初估计将WCF移植到.NET Core是三年。(来源:DotNetRocks播客)

Microsoft建议使用gRPC作为替代方案,它是一种可在任何环境中运行的现代化,开源,高性能的RPC框架。但是,与WCF不同,gRPC目前无法在IIS中托管,因为Http.Sys的HTTP / 2实现不支持gRPC依赖的HTTP响应尾随标头

WWF(Windows Workflow Foundation)

Workflow Foundation没有移植到.NET Core中。每个企业应用程序都将具有一些与其集成的工作流程或BPM工具。如果您在应用程序中使用了WWF,Microsoft建议您查看WF运行时的非官方分支以移植到.NET Core中。

即将到来的技术堆栈5

Winforms,WPF和UWP

微软正在推出Windows桌面包(winforms,WPF和UWP),以支持仅适用于Windows的桌面应用程序。 我不希望任何人使用winforms进行任何新的开发,但是,这将有助于将传统的

winforms应用程序移植到.NET5.这并不意味着.NET Core的架构正在发生变化。它仍然是一个跨平台的框架,但是当您添加桌面包时,它的目标是仅在Windows上工作。 但是,将现有Windows桌面应用程序移植到.NETCore中可以提供Core Runtime和API性能改进以及部署灵活性的额外好处。

什么被取代了

EF核心 - 实体框架核心正在取代.NET核心框架中的EF 6。

ASP.NET核心 - ASP.NET被ASP.NET核心取代。 查看迁移指南,将ASP.NET应用程序移植到ASP.NETCore中。

ASP.NET Core MVC - ASP.NET Core MVC统一ASP.NET MVC和Web API。查看迁移指南,将asp.net mvc app移植到ASP.NETMVC中。

MSIX - Microsoft的新打包工具,它取代了桌面应用程序的旧MSI包安装程序。

JsonDocument - 来自System.Text.Json.JsonDocument API的新Json Document库将取代json.net。它比旧的json.net快2-3倍。

其他重要事项要突出

最新版本的C#8.0引入了许多新的语言功能,包括Async Stream,Ranges,Nullable Reference Types和Pattern Matching。但是,它们将仅在.NET Core 3.0及更高版本上可用,这意味着它不会进入旧版.NET Framework或.NET Core 2.2,2.1或1.0。它清楚地表明.NET已经死了,.NET Core就是未来。

如果您计划将.NET应用程序移植到.NETCore中,则必须分析项目中使用的API以查看兼容的内容。 .NET Portability Analyzer是一个有助于分析和确定应用程序在.NET平台上的灵活性的工具。

作为.NET开发人员,我对.NET的未来及其发展方向感到兴奋。我不再需要为SPA框架学习JavaScript,因为Blazor会这样做。 我不再需要学习Python用于机器学习,因为ML.NET会这样做。我不再需要学习Android或Swift,因为Xamarin会这样做。 如果您了解C#,那么现在您可以开发一个可以从IoT到Cloud运行的应用程序。 但是,这种变化将影响许多拥有基于WCF和Web窗体的产品/框架的企业客户。

原文.技术栈

你可能感兴趣的:(关于.NET的未来(.NET 5):开发者应该知道什么)