使用Windows兼容包简化向.NET Core的迁移_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 使用Windows兼容包简化向.NET Core的迁移

使用Windows兼容包简化向.NET Core的迁移

 2017/12/15 22:56:30    程序员俱乐部  我要评论(0)
  • 摘要:英文原文:Easinginto.NETCorewiththeWindowsCompatibilityPack从.NET迁移到.NETCore的一个主要原因,在于后者具备在Linux上运行的能力。但是对于大型企业应用,不可能实现一步迁移到位。由此,Microsoft推荐采用一种逐步迁移做法:第一步,迁移到ASP.NETCore(依然使用.NETFramework);第二步,迁移到.NETCore(依然运行在Windows上);第三步,迁移到Linux上;第四步,迁移到(托管Linux主机的
  • 标签:.net Windows 使用 net 迁移 兼容
class="topic_img" alt=""/>

  英文原文: Easing into .NET Core with the Windows Compatibility Pack

  从 .NET 迁移到 .NET Core 的一个主要原因,在于后者具备在 Linux 上运行的能力。但是对于大型企业应用,不可能实现一步迁移到位。由此,Microsoft 推荐采用一种逐步迁移做法:

  • 第一步,迁移到 ASP.NET Core(依然使用 .NET Framework);
  • 第二步,迁移到 .NET Core(依然运行在 Windows 上);
  • 第三步,迁移到 Linux 上;
  • 第四步,迁移到(托管 Linux 主机的)Azure 中。

  这一做法理论上可行,但是在第二步中会有阻碍,因为缺乏关键 API。用于 .NET Core 的 Windows 兼容包的推出,意在解决这一问题。该兼容包是一个 NuGet 软件包集合,其中包含了近两万个 API,目的在于解决 Web 应用程序开发人员对于优秀软件库的需求。

  新引入的 API 大体上可分为两类。一类是仅适用于 Windows 的 API,另一类是跨平台的软件库。其中,仅适用于 Windows 的 API 包括:

  • Active directory;
  • 加密;
  • 事件日志和性能计数器;
  • 文件系统安全
  • 命名管道;
  • 注册表访问(Registry Access);
  • Windows 服务。

  其中大部分 API 是与 Windows 操作系统紧密关联的,而相应的 Linux API 通常在设计上迥异。

  跨平台的软件库包括:

  • 缓存;
  • 配置管理(ConfigurationManager),即处理遗留的 app.config 和 web.config 文件;
  • 数据集扩展(DatasetExtensions),用于不使用 ORM 访问数据库;
  • ODBC 数据库访问;
  • System.Configuration.ConfigurationManager(MEF v1);
  • System.Drawing;
  • System.IO.Packaging,用于与 MS Office 类型的压缩文件交互;
  • System.ServiceModel,即 WCF(Windows Communication Foundation)。

  需指出的是,这些 API 是刻意独立于 .NET Core 的完整发布的。对此,Microsoft 的 Immo Landwerth 给出了如下解释:

以独立软件包提供的原因在于:(一)不少 API 是仅出于兼容性的考虑而提供的。在新代码中,不应依赖于这些 API;(二)不少 API 仅用于 Windows 平台。我们不希望将用户引上一条更难以跨平台迁移应用的道路。

  为了易于区分仅适用于 Windows 的和跨平台的 API,现在有一种 API 兼容性分析工具可用。该工具可以标记出那些在应用中不应继续依赖的 API。

你可以使用与弃用 API 相同的抑制选项,但是也可以选择对特定平台给出抑制警告。如果你仅规划在一组特定的平台上支持你的代码,例如只支持 Windows 和 Linux 但不支持 macOS,这一工具十分有用。为此,你只需编辑项目文件,添加一个PlatformCompatIgnore属性,并在该属性中列出所有要忽略的平台。

发表评论
用户名: 匿名