不会加入.NET 5.0的.NET Framework API

微软向新.NET的转变已接近完成。 .NET Core 3.0就在这里 ,它是明年.NET 5.0爆炸性发布的基础。 那时,.NET Core成为所有.NET的主要开发分支,而旧的.NET Framework滑入了当之无愧的报废和非常长的支持生命周期。

这并不意味着您所有现有的.NET代码都将在.NET 5.0上运行。 老实说,不可能。 这是新的Microsoft,而不是旧的Microsoft,并且保持遗留代码的存在不再是优先事项。 是的,Microsoft将帮助您迁移到新框架,但是您需要做一些繁重的工作才能使代码成形以进行过渡。 除非您计划永远保留.NET Framework,否则您将有大约一年的时间使用.NET Core 3.0作为跨平台.NET未来的试验场。

[Microsoft .NET 5将.NET Framework和.NET Core结合在一起:了解.NET Standard和.NET Core的合并对开发人员意味着什么 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

通往.NET 5.0的漫长道路

正如.NET程序经理Immo Landwerth 在GitHub上所指出的那样 ,.NET Core最初以.NET Framework中最少的一组API诞生,大约有18,000个左右的API足以交付关键功能。 随着时间的流逝,这个数字已经增加。 .NET Standard 2.0旨在简化跨不同.NET实现的工作,它增加了对.NET Core 2.0中超过38,000个.NET Framework API的支持。 Windows兼容包针对Windows专用.NET Core应用添加了更多内容,使总数超过60,000。

直接在.NET Core和.NET Standard中继续进行API的移植过程。 .NET Core 3.0的当前版本增加了对许多Windows Presentation Foundation(WPF)和WinForms API(尽管仅适用于Windows应用程序)的支持,从而为您提供了超过一半的.NET Framework API。 这仅适用于现有的.NET Framework。 .NET Core具有大约62,000个自己的API,并支持gRPC等现代Internet技术

将.NET Framework API移植到.NET Core中,.NET团队进行了许多出色的工作,但是已经到了他们无法进一步发展的地步。 Windows Workflow,Web Forms或Windows Communication Foundation等较旧的技术与现代Internet标准不兼容,并且在许多情况下可能会导致安全问题。 当今我们构建应用程序的方式(台式机,移动设备,Web和云)都需要进行过渡的API。 如果要在.NET中进行构建,那么您就不需要太多工作来为2020年的过渡做准备。

如果您需要的API不在.NET Core 3.0中,则它们将不在.NET 5.0中。 然后的问题是:您的代码确实需要这些API,还是可以使用其他API?

这是一个很大的问题,需要一些思考。 一个关键方面是代码的状态。 是在积极开发中还是像.NET Framework这样的,处于扩展维护状态的旧代码? 应该重新设计和重写活动的开发代码。 使用旧版应用程序,您将需要监视.NET Framework的支持状态,并根据Microsoft的计划做出决策。

寻找旧版.NET API的替代品

对于已被废弃的API,Microsoft已经提出了替代方案,新的.NET Core API填补了许多空白。 一些,例如WebForms,具有逻辑替换。 对于WebForms,其形状为Blazor,并且混合了服务器端渲染视图和新的浏览器内部组件的WebAssembly托管 。 其他人将需要做更多的工作,因为没有直接的替代方法,并且与安全相关的决定意味着现在认为常用功能是不安全的。

.NET Remoting是不会转移到新框架的一项关键功能。 在Twitter上的长篇文章中,一位Microsoft工程师指出,放弃.NET Remoting是出于安全原因 ,因为它无法满足现代安全标准。 它的消失不应该太麻烦,因为.NET Core的gRPC支持应该可以解决。 身份验证可能会出现一些问题,因为Windows身份验证当前无法用于gRPC的HTTP / 2,因为它基于Kerberos。

在旧的,不安全的协议和更新的工作方式之间的这种不匹配是许多Microsoft决策的核心。 是的,向后兼容是很好的,但不能以应用程序安全性为代价。 我们生活在一个这样的世界中,比起始终在安全的专用网络上运行我们的应用程序的互联网而言,考虑互联网优先,零信任的安全模型更为重要。

丢弃无法保护且无法满足我们现在要求的标准的协议会导致向.NET 5的任何迁移,但最好将其视为重新编写代码以满足这些标准的机会,而不是将代码遗忘通过过渡。 如果您不想进行这些更改,Microsoft将继续对现有的.NET Framework进行更多年的支持-计划至少十年的支持。

.NET社区的回应

如果您依赖较旧的协议,服务和API,但仍想迁移到较新的.NET版本,则这些丢失的API中有许多最终可能最终会以某种形式与.NET 5.0一起使用。 重要的是要注意,如果这样做,就不会成为Microsoft的正式项目。

相反,Microsoft .NET团队正在寻求根据MIT许可证将某些.NET Framework库和API作为开源发布,以便社区团队可以构建自己的熟悉API的实现。 我们已经看到Windows Workflow和Windows Communication Foundation版本的工作,重点放在服务器实现上。 如果它们向.NET路线图和采用的方向中添加了一些内容,则可能会在以后添加一些其余的API。

改变事物绝非易事。 就像搬到新房子一样,一路上总会留下东西或弄坏东西。 Microsoft至少要让我们知道其.NET过渡中的空白,并留出大量时间来重新编写代码或将其过渡到长期支持程序。 即使我们不能更新旧代码,.NET Framework也不会被完全放弃,Microsoft承诺至少要十年的支持。 无论我们选择做什么,用户都不会怀疑他们的应用为何停止工作。

From: https://www.infoworld.com/article/3451528/net-framework-apis-that-wont-be-coming-to-net-50.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值