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

\

\\

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

使用Windows兼容包简化向.NET Core的迁移相关推荐

  1. 使用Api分析器与Windows兼容包来编写智能的跨平台.NET Core应用

    本文翻译自Scott Hanselman博客: https://www.hanselman.com/blog/WritingSmarterCrossplatformNETCoreAppsWithThe ...

  2. 跟本菜菜一起去体验Microsoft Windows Server Code Name Longhorn Server Core

    消失的菜菜又回来了,这段时间由于很多原因没及时更新blog,忘大家见谅-还记得菜菜以前给大家介绍的Microsoft Windows Server Longhorn吗?今天我给大家带来Microsof ...

  3. windows 服务中托管asp.net core

    在windows 服务中托管asp.net core SDK 2.1.300 官方示例 1.添加运行标识符 xml <PropertyGroup> <TargetFramework& ...

  4. 如何安装 Microsoft Office 兼容包,以便能够使用早期版本的 Excel、PowerPoint 和 Word 来打开和保存来自 2007 Office 程序的文件

    如何安装 Microsoft Office 兼容包,以便能够使用早期版本的 Excel.PowerPoint 和 Word 来打开和保存来自 2007 Office 程序的文件 察看本文应用于的产品 ...

  5. excel2007 html,excel2007兼容包

    Excel2003 2007兼容包 最好有百度云盘 安装了office2007兼容包后,还是无法用excel2003打出现此问题的原因为:兼容包安装不正确. 解决的方法和详细的操作步骤如下: 第一步, ...

  6. Microsoft Office Word、Excel 和 PowerPoint 2007 文件格式兼容包(简体中文)

    在装有 Microsoft Office 2000.Office XP 或 Office 2003 的计算机上安装该兼容包之后,就可以采用 Word.Excel 和 PowerPoint 2007 新 ...

  7. 使用组策略部署Office2007兼容包不能成功|SoftwareInstallation107108

    使用组策略部署Office2007兼容包不能成功|SoftwareInstallation107108.从MS官方网站下载了FileFormatConverters兼容包(繁体中文版),下载包为EXE ...

  8. 在Eclipse添加Android兼容包( v4、v7 appcompat )

     昨天添加Android兼容包,碰到了很多问题,在这里记录一下,让后面的路好走. 如何选择兼容包, 请参考Android Support Library Features(二) 一.下载Suppo ...

  9. mysql5.6兼容包_freebsd9.1源码安装apache、mysql、php环境(亲侧通过)

    新手不建议用源码安装,请慎重 1.安装9.1系统 2.通过Sysinstall安装预装软件 ====================================================== ...

最新文章

  1. cookie设置httponly属性防护XSS***
  2. 也谈SSDT Hook(一)
  3. 枚举进程ID并且获得进程路径
  4. Python的模板:HTML代码 + 模板语法
  5. 寡头时代——新的希望还是?
  6. Asp.net服务器端控件替换客户端控件
  7. 俺的三国武将观(一)
  8. 字节跳动李航博士入选2019 ACL Fellow,成为第五位入选华人学者
  9. 解决Word多级列表章标题第一章与节标题1.1排序混乱问题
  10. Mac电脑中delete键的几种用法
  11. MongoDB快速入门学习
  12. 为什么苹果手机通话的时候不能录音?
  13. 计算机检测不到双显示器,win10系统双屏幕检测不到第二屏幕怎么办 解决双屏幕不显示的方法步骤...
  14. 如何分割cue+ape、cue+flac、cue+wav、cue+dts整轨音乐文件
  15. 《es6标准入门》 阮一峰
  16. 使用scrapy框架爬取斗鱼图片
  17. Vue进阶(幺贰零):父组件获取子组件验证结果
  18. 互联网公司招聘--阿里巴巴--运营专员--2016年笔试题
  19. 【深入UCSC Genome Brower】写在前面
  20. 《写给大家看的设计书》《写给大家看的色彩书》《点石成金》《形式感》学习笔记

热门文章

  1. GridView总结二:GridView自带编辑删除更新
  2. 为什么说,长跑和爬山能锻炼意志?因为要不停的run,run,run......
  3. 我很高兴找了一张可以说明:为什么软件开发那么困难的图
  4. 曾经遭遇的MyEclipse的bug
  5. 前些日子接了一单私单
  6. 在block中进行行循环
  7. EasyUI –tree、combotree学习总结
  8. Sublime Text3配置Lua运行环境
  9. python学习第一模块练习
  10. 农产品流通信息化及农超对接体系的现状