.NET Core 3计划发布,将实现对Windows桌面应用的支持

在微软Build Live 2018大会上,微软发布了一系列Azure 软硬件AI产品,Microsoft officer 365 支持JS函数扩展、AI和BI功能等。做为一个码农,我们更关注则是.NET Core的消息。当然消息也是振奋人心的,那就是大会公开了.NET Core 3的计划:最大的亮点是.NET Core 3将开始支持Windows桌面应用程序,包括Windows Form,Windows Presentation Framework(WPF)和UWP XAML。届时将能在.NET Core 3上运行Windows桌面应用程序,在享受.NET Core新架构的优势便利同时,兼容老的.net应用。

.NET Core 3计划发布,将实现对Windows桌面应用的支持

ASP.NET Core也将并行持续开发,最后和.NET Core 3.0一起发布。在保持Web和云端应用开发的基础上,增加对Windows桌面应用程序兼容和支持。

.NET Core给桌面端带来的好处

.NET Core的所有优点将都会迁移到桌面应用程序。主要包括:

1、性能改进和其他运行时更新

2、只需单个本地应用程序,即可轻松使用或测试新版.NET Core

3、启用机器全局和应用程序本地部署

4、支持在Visual Studio中创建和开发.NET Core CLI工具和SDK风格的项目

5、.NET Core 3.0和.NET Framework 4.8其他的改进包括:

6、访问完整的Windows 10(AKA"WinRT")API。

7、在WPF和Windows Forms应用程序中托管UWP XAML控件。

8、托管UWP浏览器和媒体控件,支持现代浏览器和媒体内容和标准。

.NET Core 3架构

新的.NET Core 3.0架构体系如下图:

.NET Core 3计划发布,将实现对Windows桌面应用的支持

从图上我们可以看到Windows桌面应用的支持是作为Windows桌面Packs插件包的形式添加,支持在Windows下运行。 .NET Core将保持跨平台的核心和功能不变。

总体上来说,可将 WPF视为DirectX和Windows窗体上的一个富功能控件层,Windows Forms是基于GDI Plus的廋功能层。 WPF和Windows Forms在是桌面应用程序功能书使用最广泛,最常用的界面组件。这两者的基本功能的C#代码将打包成为基础扩展类库,在.NET Core 3中按需要引入和调用。基础Windows功能(如GDI Plus和DirectX)还通过系统层引用。

微软还计划发布一个新版本的.NET标准作为.NET Core 3.0的标准。比如增加Span 类型。

.NET Core 3计划发布,将实现对Windows桌面应用的支持

.NET Core 2.0的支持C#,F#和VB等语言都可在.NET Core 3用来构建桌面应用程序。

本地化的应用部署

.NET Core部署模型给Windows桌面开发人员带来巨大的方便。我们可以用便捷的方式安装.NET Core,甚至使用更灵活的应用部署方式。

当.NET Core版本需要更新时,你可以针对单个应用程序来进行升级,不用担心统一升级会导致其他应用程序的异常。新的.NET Core版本将安装在新建的目录,不会影响现有应用。

对于额外需要更大程度隔离的情况,还支持对你的应用程序单独部署.NET Core。将来会支持将应用和.NET Core类库打包为一个可执行文件运行。.NET Core的模块化体系架构使这种需求变成可能。

已有桌面应用程序迁移到.NET Core 3

新开发桌面应用程序,将直接通过.NET Core 3来创建。那么已有的应用程序(特别是大型应用程序)如何迁移到.NET Core 3呢?微软表示会通过最简单的方式直接转向.NET Core 3。不需时常维护或者没有开发人员的老应用则直接选择使用.NET Framework 4.8就ok。

迁移步骤也很简单:

1、将已有桌面应用程序用.NET Core 3重新编译。

2、项目文件需要以针对.NET Core 3做修改兼容。

3、依赖项不需要重新编译。

当然对依赖的项(库),也进行重编译也很有必有,新的计划中WPF和Windows Forms将可以通过API形式并行运行。

同样,EF6将会做一些更新以便在.NET Core 3.0运行。EF6将不会再增加新功能,所有新功能将通过EF Core进行扩展,并将其作为各种类型新应用程序的默认数据控制层。EF Core将会更多的功能和更好的性能。

项目文件的更新

.NET Core项目,都采用了SDK风格。其中一个关键项是PackageReference,这是一种引用NuGet包的新方法。 PackageReference将替换packages.config。 PackageReference还可以一次引用整个组件组,而不是一次只能引用一个组件。

SDK风格带来的最大的改进有:

1、更小和更整洁的项目文件

2、对源代码控制更友好(更少的变化和更小的差异)

3、在Visual Studio中编辑项目文件而不卸载

4、NuGet是构建的一部分,并对目标框架更新等变化进行响应

5、支持多目标

采用.NET Core 3的桌面项目的第一步就是迁移到SDK风格。迁移可以通过Visual Studio进行,也可以使用命令行。

控件,NuGet包管理和已有的Assembly引用

桌面应用程序通常会有大量的依赖项,可能来基础厂商,NuGet或者及其无源码的二进制文件。很多都需要慢慢更新迁移到新的.NET Core 3架构中来,甚至有有些可能无法迁移。

所以,.NET Core 3会通过支持依赖关系来解决这一些问题。在微软build 2018大会上也演示了使用第三方控件的.NET Core 3桌面应用程序。

总结

微软Build 2018带来的显示.NET Core 3计划,给一直以来Windows桌面应用码农巨大的福音。我们可以憧憬随着.NET Core体系的不断壮大,将会吸引更多的人关注并使用这个免费开源的平台。微软近年来的所作所为给我们展现了其开放开源的另一面。

最后我们要说只有开放开源才是趋势,才有未来!

今天你开源了么?欢迎大家关注,留言。


分享到:


相關文章: