使用Windows相容包簡化向.NET Core的遷移
阿新 • • 發佈:2019-02-14
從.NET遷移到.NET Core的一個主要原因,在於後者具備在Linux上執行的能力。但是對於大型企業應用,不可能實現一步遷移到位。由此,Microsoft推薦採用一種逐步遷移做法:
新引入的API大體上可分為兩類。一類是僅適用於Windows的API,另一類是跨平臺的軟體庫。其中,僅適用於Windows的API包括:
- 第一步,遷移到ASP.NET Core(依然使用.NET Framework);
- 第二步,遷移到.NET Core(依然執行在Windows上);
- 第三步,遷移到Linux上;
- 第四步,遷移到(託管Linux主機的)Azure中。
- Active directory;
- 加密;
- 事件日誌和效能計數器;
- 檔案系統安全;
- 命名管道;
- 登錄檔訪問(Registry Access);
- Windows服務。
- 快取;
- 配置管理(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是僅出於相容性的考慮而提供的。在新程式碼中,不應依賴於這些API;(二)不少API僅用於Windows平臺。我們不希望將使用者引上一條更難以跨平臺遷移應用的道路。為了易於區分僅適用於Windows的和跨平臺的API,現在有一種API相容性分析工具可用。該工具可以標記出那些在應用中不應繼續依賴的API。
你可以使用與棄用API相同的抑制選項,但是也可以選擇對特定平臺給出抑制警告。如果你僅規劃在一組特定的平臺上支援你的程式碼,例如只支援Windows和Linux但不支援macOS,這一工具十分有用。為此,你只需編輯專案檔案,新增一個PlatformCompatIgnore
屬性,並在該屬性中列出所有要忽略的平臺。