Web开发

注册

 

发新话题 回复该主题

全面了解微软NET5,2021年更好迈 [复制链接]

1#
北京治疗白癜风最好的特效药 http://www.jk100f.com/baidianfengzixun/texiaoliaoxiao/Index.html

代际转移可能是微软年开发者战略的关键主题之一。这是比较平稳的交接,统一新旧工作方式。但到头来,无论是ProjectReunion、WinUI3还是.NET5的发布,新技术都在向前发展,将旧技术甩在身后。

这不是坏事。我们出于多种原因开发了新的做事方法,但它们常常围绕一个关键点:新方法更好。它解决了旧工具无法解决的问题,解答了原始解决方案被定义时未提出的新问题。

面向新世界的新.NET

所有这些原因体现在.NETFramework向.NET5的转变。20多年前,定义原始.NETFramework时,我们在严格定义的IT环境中构建整体式客户端/服务器应用程序。现在我们使用快速变化的基础架构来构建混合型的轻量级分布式微服务和跨平台移动应用程序。这是全新的世界。

.NETCore是为这种工作方式设计的。一开始就跨平台,除了支持传统的.NET开发模式和实践外,还旨在支持新的云优先移动应用程序。它通过三个主要版本获得越来越多的API;.NETStandard库开始提供通用的代码目标,因而更容易跨它、.NETFramework和Xamarin共享项目。

.NET5:未来开发之路

严格上讲,该新版本应为.NETCore4,但微软跳过版本号,避免与.NETFramework的当前版本混淆。同时,改用更高的版本号并弃用名称中的Core表明这是所有.NET开发的下一步。两个项目仍保留Core名称:ASP.NETCore5.0和EntityFrameworkCore5,因为仍存在同样版本号的旧项目。

这是重大的里程碑,标志着您需要考虑用.NET5启动所有新项目,并从.NETFramework迁离任何现有代码。虽然微软并未摈弃.NETFramework的支持,但它处于维护模式,将来的次要版本中不会得到任何新功能。所有新的API和社区开发都将采用.NET5(以及年的长期支持.NET6)。

.NET5弃用了一些熟悉的技术,比如WebForms和WindowsCommunicationFoundation。如果您仍在使用它们,最好眼下仍使用.NETFramework4,计划迁移到更新颖的受支持技术,比如ASP.NET的RazorPages或gRPC。已有计划为提供类似API的替代框架提供社区支持,但是采用更新颖的方法将有助于开发面向未来的代码,并使跨平台运行变得更容易。

.NET5一个令人困惑的方面是如何处理.NETStandard库。它们没有消失,不过.NET5代码不需要直接引用它们,因为它们现在是.NET5目标框架标记(TFM)的子集。这个新的TFM取代了旧的netcoreapp和netstandardTFM,不过如果您编写的代码需要跨框架共享,仍可以使用.NETStandard2.0TFM以实现兼容。然而在大多数情况下,您可能只在.NET5环境中工作,因此可以放心地坚持使用net5.0TFM声明。

.NET5入门

.NET5.0继续托管一系列同样的语言,包括新版本的C#和F#。这些添加了许多新功能,作为VisualStudio16.8的一部分或与更新后的C#VisualStudioCode扩展一起提供。微软已将该框架及其所有实现(比如Mono的大部分)移到至单个GitHub存储库中,整合了开发,并确保所有版本有相同的基础功能。随着微软转向.NET6,它会引入其他更高级别的实现,包括Xamarin。

新的.NET仍基于为原始CommonLanguageRuntime开发的即时编译技术。新的CoreCLR在跨多个处理器架构运行的同时,继续提升性能。苹果基于ARM的M1处理器问世后,用.NETformacOS编写的代码将在基于英特尔和ARM的硬件上以原生二进制代码来运行,因此代码无需经过第二层仿真。支持ARM64将使.NET5应用程序得以直接在基于ARM硬件的Windows上运行,充分发挥微软自己的SQ1和SQ2处理器的功能。

WebAssembly和移动操作系统等一些场景需要预编译的代码,.NET与其JIT工具一道提供了提前编译器。现在AOT编译器可用于任何开发环境,UnoPlatform团队已经看到因WebAssembly支持而显著提高速度,是以前的WebAssembly语言解释器的7倍到15倍。

已有计划将AOT编译器作为需要快速启动和内存占用较少的应用程序的选项,比如在资源受限的智能手表和物联网硬件上。另一个选择是单一文件部署。应用程序(包括运行时)所需的一切都捆绑成一个软件包,因而比较容易在容器中或非Windows系统上部署.NET应用程序。

不应孤立地看待新的.NET。使用Blazor进行WebAssembly开发和使用MAUI(多平台应用程序UI)进行跨平台UI开发也很重要。通过结合使用这些技术,.NET5几乎无所不包:从RaspberryPi类硬件、安卓手机到AWS和Azure上运行的Kubernetes托管的容器,无一不足。

年迈向.NET6

重要的一点是,这只是整个过程中的另一步。.NET5是将WindowsAPI与OS分离、ProjectReunion合并WinRT和Win32API以及改用WinUI3和MAUI这些UI层的一项关键技术。年.NET6发布后,这方面的许多工作仍将继续,.NET6是许多这些项目的目标。您无需等待.NET6即可开始迁移。越早开始越好,那样您有时间处理可能出现的任何问题。

应该将.NET5视为.NET旅程下一阶段的第一步,您应该开始拿来所有的旧代码,决定移植和更新哪些代码,以及什么代码需要全面替换。年将结束,您可能在计划年的开发时间表。有鉴于此,.NET5可以帮助您

分享 转发
TOP
发新话题 回复该主题