我们在5月报道过微软希望在.NET Core 3.0上运行WinForms和WPF。为了实现这个目标,他们正在构建一个新工具,该工具将允许你投票以决定他们需要把哪些API移植到.NET Core。但是,这不是一次直接进行的投票,而是基于你的应用程序正在使用的API进行的。
他们为此开发的工具叫作可移植性分析器(Portability Analyzer)。该工具的前几个版本被用于对控制台和ASP.NET应用程序所需功能进行投票。在运行该工具的GUI版本时,你需要选择一个目录。如果你粘贴的文件的文件名后缀为exe和dll,那么分析器就不会正确运行。
需要提醒的是,WinForm和WPF不会在此计划下实现跨平台。这个计划的目的是让Windows开发人员能够从.NET Core的部署和性能提升中获益。
当然,这并不是说从长期来看跨平台的UI是不可能的。他们可能会把WinForm的Mono/Linux版本移植到.NET Core,或者基于XAML的Avalonia项目可能会越来越受欢迎。当然,从开发人员对.NET Core 3.0公告的评论中还是可以看到人们对可用跨平台GUI是很感兴趣的。
目前还没有在考虑中的API的完整列表,不过Immo Landwerth分享一些信息:
从高层面来说,我们已经决定:
.NET Core不会包含Remoting;
不会在.NET Core上启用部分信任/CAS/沙箱操作;
不会在.NET Core 3.0中引入System.Web、WF和WCF托管,但是,这取决于用户反馈。
我认为,几乎所有其他因素都取决于有多少人受其影响,以及我们是否能在.NET Core 3.0中实现。
在评论中,开发人员列举了一些他们最想要的API。Jan Friedirch写道:
WCF托管是把我们的应用程序移植到.NET Core唯一缺失的东西。我们有15个不同的托管WCF的应用程序。
Ryan回应刚才的说法:
我的大多数应用程序都没问题,但是唯一缺失的东西就是WCF。我知道,这个还在讨论中,因此,我会全力支持它。现在,我使用双向TCP在一个客户端应用程序和一个远程会话中的应用程序之间进行通信。我可能会把它切换到websocket实现,但我希望不会立即在这上面耗费太多资源(尽管我已经在考虑这么做,因为有一个功能请求需要对服务定义进行重大修改)。
InfoQ将在下周对服务器端WCF的辩论进行全面的报道。
原文地址: http://www.infoq.com/cn/news/2018/08/Core-3-Portability-WPF-WinForms
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com