时间:2019-10-10 来源:互联网 浏览量:
随着时间的推移,.Net Core 不断的尝试新的办法给用户最好的体验,那么3.0的到来会给我们带来怎样的效果呢?
作者 | Simon BIsson
译者 | 弯月,责编 | 刘静
出品 | CSDN(ID:CSDNnews)
以下为译文:
微软和.Net基金会为.Net Core平台带来的重大升级。
说起来让人难以置信,.Net已有将近18年的历史了。第一版.Net 框架于2002年2月发布。多年来,.Net已成为Windows开发的基础,而且随着2014年.Net Core的发布和.Net 基金会的成立,.Net开始从专有转向开源开发模型,旨在成为所有.Net开发的基础。
当初.Net Core推出时只有非常有限的一部分功能,但随后它迅速追上了.Net框架。最初.Net Core只能用于控制台和Web应用程序,如今可以用于桌面应用和GUI的代码。相信很快微软就会将所有.Net支持转移到.Net Core和.Net标准库,从而提供一组通用的API,使代码能在各种.NET实现(包括Xamarin和Unity)上兼容。
.Net Core 3.0版魅力无限
最近微软发布了.Net Core 3.0版。3.0版是对该平台的一次重大更新,其中包含许多新的API,并终于开始支持Windows桌面应用程序。该版本还增加了对C# 8.0和.Net标准 2.1的支持,以及对多个操作系统(包括Linux在内)的ARM64支持。基于浏览器的应用将受益于微软的Blazor Web Assembly和服务器端工具。
对Windows桌面支持可能是该版本中.Net Core最大的改动。请务必注意,任何使用Windows桌面组件的应用程序都无法享受到.Net Core的跨平台功能。你可能想起了最初Xamarin的解决方法,即在一个Visual Studio项目中开发多个解决方案,该项目基于共同的代码核心,但每个解决方案拥有不同的、针对目标系统的UI代码。
Windows桌面系统上的.Net Core
桌面应用将使用熟悉的Windows Presentation Foundation和Windows Forms,如此一来原来的.Net 框架应用程序就可以轻松地移植到.Net Core中。此外,你依然可以使用现代控件;而对XAML Islands的支持意味着你可以使用WinUI控件以及微软新的Fluent设计语言。XAML Islands是一项重要技术,但是如果你需要支持多个Windows版本,那么就需要为旧版本添加应变的控件。微软即将发布Visual Studio的更新,它将为.Net Core桌面应用程序添加模板。它还增加了WinForms对高DPI应用程序的支持,对现代个人电脑和Surface Book等笔记本电脑来说,这是一项重大的需求。
GUI不是桌面应用程序所需的唯一功能。Windows .Net Core代码需要使用现有的SDK和插件来调用COM代码,而且COM也需要调用.Net Core的代码。后一种情况很复杂,因为它需要在宿主应用程序调用你的.Net Core COM服务器时检测适当的CLR并自动加载。
尽管我们熟悉的.Net框架可以通过shim来解决这个问题,但.Net Core的设计目标是在系统范围避免使用shim来简化部署(如文档所说的“少用魔术方法”)。相反,它会给你的代码添加一个COM库,该库将自身作为自定义shim公开,并带有其使用的类的清单。在被调用时,它会触发一系列操作,以找到合适的运行时,并激活被调用的类,这些类在其自身的上下文中运行。尽管该过程看起来很复杂,但是在构建代码时它是由.Net Core自动生成的。你只需要考虑这种方法是否能提供足够的性能。
之前我写过有关微软新的应用程序打包技术——MSIX的文章。如今,它既可以部署.Net Core软件包,也可以部署Win32和UWP。将MSIX用于桌面.Net Core应用非常有意义,因为它允许管理员在整个组织中进行部署之前将自己的自定义项添加到安装程序。
用于现代微服务应用程序的.Net Core
.Net Core平台的底层已得到加强,以便更好地支持现代应用程序,更好地支持异步通信,还内置了对JSON的支持。.Net Core的设计本身就考虑了微服务,因此建立快速、低内存的JSON工具已完全可行。你无需依赖第三方库,因为你可以使用内置的JSON reader来构建自己的解析器。你还可以利用对UTF-8字符的支持,使用更紧凑的JSON编码器,与流行的库相比,它在速度上提高了30%-80%。
有关微服务开发的另一个重大更新是对HTTP/2的支持。利用HTTP/2处理REST API可以提高客户端和服务器的安全性,还可以在开发过程中关闭加密功能,以简化使用Fiddler等底层工具的调试。TLS 1.3版本拥有更好的安全性,尽管在Windows和MacOS等客户端操作系统开始支持之前,还无法在桌面应用中享受到这些好处。如果在Linux上使用.Net Core 3.0微服务,并使用Cloudflare等服务来预防DDOS,那么就可以感受到其中的好处。
可预见的发布时间表
从这个版本开始,微软和.Net 基金会将制定更可预见的.Net开发时间表。在2019年9月发布第一版的.Net Core 3.0发布之后,很快2019年11月将发布长期支持版本。一年以后,我们将看到期待已久的.Net Core和.Net 框架在.Net 5.0中的合并。之后,下一个长期支持版本将是2021年的.Net 6.0。在Build 2019上微软表示,他们的目标是每年发布一次,其中偶数版本号为长期支持版本。这样做的目的是推出可预见的.Net发布时间表,并确保每一次的发布。
这项变动会影响到微软更新SDK版本的方式。他们引入了功能区的概念,以及更新版本的编号过程。目前,补丁号将为三位数,第一位数表示受支持的功能范围。安装3.0.103将替换所有早期版本中的1xx系列。但是,安装3.0.201不会影响任何已安装的1.x版本。
.Net Core的新版本非常重要,而3.0这个版本尤为重要,因为这是所有.Net平台开发转移到.Net 5.0之前的最后一步。你有一年的时间将现有.Net应用程序从旧的.Net 框架转移到新的API和.Net 标准。由于增添了桌面应用程序支持和MSIX,此次新版本将带领你开始迁移工作。
原文:https://www.infoworld.com/article/3440736/what-net-core-30-means-for-developers.html?upd=1570537078517
本文为 CSDN 翻译,转载请注明来源出处。
【END】