博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Windows兼容包简化向.NET Core的迁移
阅读量:6968 次
发布时间:2019-06-27

本文共 1290 字,大约阅读时间需要 4 分钟。

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

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

这一做法理论上可行,但是在第二步中会有阻碍,因为缺乏关键API。的推出,意在解决这一问题。该兼容包是一个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相同的抑制选项,但是也可以选择对特定平台给出抑制警告。如果你仅规划在一组特定的平台上支持你的代码,例如只支持Windows和Linux但不支持macOS,这一工具十分有用。为此,你只需编辑项目文件,添加一个PlatformCompatIgnore属性,并在该属性中列出所有要忽略的平台。

\
\\

查看英文原文:

转载地址:http://qnssl.baihongyu.com/

你可能感兴趣的文章
Caffe将自己的文件生成lmdb
查看>>
C# 枚举中的位运算
查看>>
Codeforces Global Round 1 晕阙记
查看>>
Algs4-1.3.33一个双向队列Deque-双向链表实现
查看>>
Android 网络编程
查看>>
mysql启动和关闭外键约束的方法
查看>>
C#中的Dictionary字典类介绍
查看>>
在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView
查看>>
excel随机函数
查看>>
Android Studio的SVN Performing VCS Refresh/Commit 长时间不结束
查看>>
简单编写makefile文件,实现GCC4.9编译项目,增加boost库測试等等。。
查看>>
Android-Volley网络通信框架(二次封装数据请求和图片请求(包含处理请求队列和图片缓存))...
查看>>
有间距的表格布局 table布局
查看>>
【一步步学OpenGL 20】 -《点光源》
查看>>
工作总结 获取html 标签 自定义属性值 根据html 自定义属性 获取 到标签...
查看>>
给大家分享两款正在使用的ref“.NET研究”lector插件
查看>>
帧中继网络 (转)
查看>>
OpenCV中的SVM參数优化
查看>>
同步与异步 阻塞与非阻塞
查看>>
网络抓包工具wireshark and tcpdump 及其实现基于的libpcap
查看>>