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

使用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>
      主站蜘蛛池模板: 诸城市| 兰考县| 卢氏县| 武宣县| 都江堰市| 甘南县| 呼玛县| 靖安县| 蕉岭县| 沙洋县| 定南县| 资兴市| 建德市| 阜宁县| 西和县| 绩溪县| 大丰市| 武鸣县| 江口县| 介休市| 怀远县| 蒙阴县| 修武县| 南丰县| 九龙县| 时尚| 普陀区| 三门县| 顺义区| 武乡县| 古浪县| 遵义县| 威远县| 申扎县| 湖北省| 彭山县| 泾源县| 青铜峡市| 临猗县| 峨山| 肃南|