精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

使用Windows兼容包簡化向.NET Core的遷移

責任編輯:editor004

作者: Jonathan Allen

2017-12-15 11:19:51

摘自:INFOQ

從 NET遷移到 NET Core的一個主要原因,在于后者具備在Linux上運行的能力。其中,僅適用于Windows的API包括:Active directory; 加密; 事件日志和性能計數器;

從.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

鏈接已復制,快去分享吧

企業網版權所有?2010-2025 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 宁河县| 绥棱县| 荥阳市| 宁国市| 淅川县| 隆林| 大关县| 体育| 建湖县| 许昌市| 福清市| 长泰县| 东辽县| 洛隆县| 古丈县| 阿拉善右旗| 沂水县| 新竹县| 米易县| 疏勒县| 海宁市| 荔浦县| 嘉峪关市| 定远县| 桦南县| 桂阳县| 信宜市| 柳州市| 焦作市| 南靖县| 汾西县| 平罗县| 龙山县| 勃利县| 三原县| 东山县| 井冈山市| 天全县| 镇安县| 图木舒克市| 武宁县|