从.NET迁移到.NET Core的一个主要原因,在于后者具备在Linux上运行的能力。但是对于大型企业应用,不可能实现一步迁移到位。由此,Microsoft推荐采用一种逐步迁移做法:
这一做法理论上可行,但是在第二步中会有阻碍,因为缺乏关键API。用于.NET Core的Windows兼容包的推出,意在解决这一问题。该兼容包是一个NuGet软件包集合,其中包含了近两万个API,目的在于解决Web应用程序开发人员对于优秀软件库的需求。
新引入的API大体上可分为两类。一类是仅适用于Windows的API,另一类是跨平台的软件库。其中,仅适用于Windows的API包括:
其中大部分API是与Windows操作系统紧密关联的,而相应的Linux API通常在设计上迥异。
跨平台的软件库包括:
需指出的是,这些API是刻意独立于.NET Core的完整发布的。对此,Microsoft的Immo Landwerth给出了如下解释:
为了易于区分仅适用于Windows的和跨平台的API,现在有一种API兼容性分析工具可用。该工具可以标记出那些在应用中不应继续依赖的API。
查看英文原文: Easing into .NET Core with the Windows Compatibility Pack