资讯专栏INFORMATION COLUMN

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

2shou / 2855人阅读

摘要:用于的兼容包的推出,意在解决这一问题。其中,仅适用于的包括加密事件日志和性能计数器文件系统安全命名管道注册表访问服务。其中大部分是与操作系统紧密关联的,而相应的通常在设计上迥异。需指出的是,这些是刻意独立于的完整发布的。

从.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属性,并在该属性中列出所有要忽略的平台。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/61188.html

相关文章

  • 为 UWP 应用提供 .NET 网络 API

    摘要:同样,本文也不会介绍应用开发者不可用的网络。是协议的最新版本,通过最小化连接和往返信息的数量提供了低延迟的网络访问方式。展望未来本文,我们讨论了为应用开发人员提供的首版网络。 【编者按】本文作者是 Windows networking 团队项目经理 Sidharth Nabar。在微软 Build 2015 大会上,.NET Core 5 作为开发 UWP(Universal Wind...

    A Loity 评论0 收藏0
  • 使用 .NET 平台,如何玩转 Universal Windows 应用?

    摘要:开发人员经常设计自适应的以便其适应于不同设备不同形式。,目前库包括和,两者之前均不适用手机应用程序。快尝试下吧当处于模式中,应用程序通过新编辑器编译。例如在电脑桌面上,我的应用程序及其美观,但是在手机界面上,它仅仅显示状态栏。 2015年7月30日 本文作者是 Managed Languages 团队项目经理 Lucian Wischik。 不久前,Visual Studio 2015...

    NickZhou 评论0 收藏0
  • Windows Server 2022 正式版发布(英文版、简体中文版镜像文件下载)

    摘要:正式版发布,微软在和发上发布了镜像下载,虽然并未公开宣布,但意味着已经发布正式版。从故障转移群集迁移存储迁移到故障转移群集,以及在独立服务器和故障转移群集之间迁移。在独立服务器上使用存储空间的存储总线缓存存储总线缓存现在可用于独立服务器。windows server 2022 正式版发布!2021.08.19,微软在 VLSC 和 MSDN 发上发布了 windows server 2022...

    RaoMeng 评论0 收藏0
  • .Net大户选择:Windows Container在携程应用

    摘要:一些的技术细节最开始的时候携程用物理机部署应用,为了保证互不冲突,用户在一个物理机上只部署一个应用。目前支持的系统是,这个版本是去年月份正式发布的携程是国内比较早的一批拿到了他们的版本,支持两类,一类是,另一类是。 数人云上海&深圳两地容器之 Mesos/K8S/Swarm 三国演义的嘉宾精彩实录第四弹!小数已经被接连不断的干货搞晕了,沉浸技术的海洋好幸福~Windows contai...

    leo108 评论0 收藏0
  • 尝试!ComponentOne WinForm 和 .NET Core 3.0

    摘要:运行步骤第步考虑到预览版中的工具有限,缺少的项目模板,我们将使用命令提示符创建一个新项目。打开命令提示符并运行以下命令上述代码会创建一个名为的新项目。 在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持Windows桌面应用程序,包括Windows Form、W...

    赵春朋 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<