亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

從.NET Framework遷移到.NET Core/.NET5的技術(shù)指南

freeflydom
2025年11月6日 11:49 本文熱度 546

  本文講解了在將代碼從 .NET Framework 移植到 .NET(舊稱為 .NET Core)時應(yīng)考慮的事項。 對于許多項目,從 .NET Framework 移植到 .NET 是相對簡單的。 項目的復(fù)雜性決定了在項目文件的初始遷移之后要做多少工作。

  應(yīng)用模型在 .NET 中可用的項目(如庫、控制臺應(yīng)用和桌面應(yīng)用)通常不需要太大的更改。 需要使用新應(yīng)用模型的項目(如從 ASP.NET 遷移到 ASP.NET Core)需要的工作要多一點。 舊應(yīng)用模型中的很多模式都有可以在轉(zhuǎn)換過程中使用的等效項。

不可用的技術(shù)

.NET Framework 中有一些技術(shù)在 .NET 中是不存在:

  • 應(yīng)用程序域

    不支持創(chuàng)建額外應(yīng)用程序域。 對于代碼隔離,將流程或容器用作備用。

  • 遠(yuǎn)程處理

    遠(yuǎn)程處理用于跨不再受支持的應(yīng)用程序域進(jìn)行通信。 對于跨進(jìn)程通信,可將進(jìn)程間通信 (IPC) 機制視為遠(yuǎn)程處理的備用方案,如 System.IO.Pipes 類或 MemoryMappedFile 類。

  • 代碼訪問安全性 (CAS)

    CAS 是受 .NET Framework 支持、但在 .NET Framework 4.0 中已停用的沙盒技術(shù)。 它已被 Security Transparency 取代,并且在 .NET 中不受支持。 請改用操作系統(tǒng)提供的安全邊界,如虛擬化、容器或用戶帳戶。

  • 安全透明度

    與 CAS 類似,這種沙盒技術(shù)不再被推薦用于 .NET Framework 應(yīng)用程序,而且在 .NET 中也不受支持。 請改用操作系統(tǒng)提供的安全邊界,如虛擬化、容器或用戶帳戶。

  • System.EnterpriseServices

    .NET 不支持 System.EnterpriseServices (COM+)。

  • Windows Workflow Foundation (WF) 和 Windows Communication Foundation (WCF)

    .NET 5 及更高版本(包括 .NET Core)不支持 WF 和 WCF。 有關(guān)替代方法,請參閱 CoreWF 和 CoreWCF。

若要詳細(xì)了解這些不受支持的技術(shù),請參閱 .NET Framework 技術(shù)在 .NET Core 和 .NET 5 及更高版本上不可用。

Windows 桌面技術(shù)

  許多為 .NET Framework 創(chuàng)建的應(yīng)用程序都使用桌面技術(shù),如 Windows 窗體或 Windows Presentation Foundation (WPF)。 雖然 Windows 窗體和 WPF 均已移植到 .NET 中,但這些仍是僅適用于 Windows 的技術(shù)。

在遷移 Windows 窗體或 WPF 應(yīng)用程序之前,請先考慮以下依賴項:

  1. 適用于 .NET 的項目文件使用與 .NET Framework 不同的格式。

  2. 你的項目可能會使用在 .NET 中不可用的 API。

  3. 第三方控件和庫可能還沒有移植到 .NET 中,仍只對 .NET Framework 可用。

  4. 你的項目使用在 .NET 中不再可用的技術(shù)

.NET 使用 Windows 窗體和 WPF 的開放源代碼版本,并對 .NET Framework 進(jìn)行了增強。

有關(guān)將桌面應(yīng)用程序遷移到 .NET 5 的教程,請參閱以下文章之一:

特定于 Windows 的 API

  應(yīng)用程序仍可以在 .NET 支持的平臺上對本機庫進(jìn)行平臺調(diào)用。 這項技術(shù)并不僅限于 Windows。 但是,如果你引用的庫是特定于 Windows 的(如 user32.dll 或 kernal32.dll),那么代碼只能在 Windows 上正常運行。 對于想要在其上運行應(yīng)用的每個平臺,你都必須查找特定于平臺的版本,或者讓你的代碼足夠通用以在所有平臺上運行。

  當(dāng)將應(yīng)用程序從 .NET Framework 移植到 .NET 時,應(yīng)用程序可能使用了隨 .NET Framework 一起分發(fā)的庫。 許多在 .NET Framework 中可用的 API 都沒有移植到 .NET 中,因為它們依賴特定于 Windows 的技術(shù),如 Windows Registry 或 GDI+ 繪圖模型。

  Windows Compatibility Pack 為 .NET 提供了大部分的 .NET Framework API 面,并通過 Microsoft.Windows.Compatibility NuGet 包提供。

  有關(guān)詳細(xì)信息,請參閱使用 Windows Compatibility Pack 將代碼移植到 .NET 中。

.NET Framework 兼容性模式

  .NET Framework 兼容性模式是在 .NET Standard 2.0 中引入的。 使用此兼容性模式,.NET Standard 和 .NET 5 及更高版本(以及 .NET Core 3.1)項目可以在僅適用于 Windows 的情況下引用 .NET Framework 庫。 引用 .NET Framework 庫不適用于所有項目(如庫使用 Windows Presentation Foundation (WPF) API 時),但它的開啟了很多移植方案。 有關(guān)詳細(xì)信息,請參閱分析依賴項以將代碼從 .NET Framework 移植到 .NET 中

跨平臺

  .NET(舊稱為 .NET Core)是為跨平臺而設(shè)計的。 如果代碼不依賴特定于 Windows 的技術(shù),那么它可以在 macOS、Linux 和 Android 等其他平臺上運行。 這包括如下項目類型:

  • 基于控制臺的工具

  • 自動化

  • ASP.NET 站點

  .NET Framework 是僅適用于 Windows 的組件。 當(dāng)代碼使用特定于 Windows 的技術(shù)或 API(如 Windows 窗體和 Windows Presentation Foundation (WPF))時,代碼仍可以在 .NET 上運行,但不能在其他操作系統(tǒng)上運行。

  庫或基于控制臺的應(yīng)用程序不需要太多更改就可以跨平臺使用。 當(dāng)移植到 .NET 時,可能需要考慮這一點,并在其他平臺上測試應(yīng)用程序。

.NET Standard 的未來

  .NET Standard是針對多個 .NET 實現(xiàn)推出的一套正式的 .NET API 規(guī)范。 推出 .NET Standard 的背后動機是要提高 .NET 生態(tài)系統(tǒng)中的一致性。 自 .NET 5 起,采用了一種不同的方法來建立一致性;使用這種新方法,在很多情況下,都不需要使用 .NET Standard。 有關(guān)詳細(xì)信息,請參閱 .NET 5 和 .NET Standard。

  .NET Standard 2.0 是支持 .NET Framework 的最后一個版本。

移植輔助工具

  可以使用不同的工具來幫助自動執(zhí)行遷移的某些方面,而不是將應(yīng)用程序從 .NET Framework 手動移植到 .NET 中。 移植復(fù)雜的項目本身就是一個復(fù)雜的過程。 這些工具可能在此過程中有所幫助。

  即使你使用工具來幫助移植應(yīng)用程序,也應(yīng)查閱本文中的“移植時的注意事項”部分

  • .NET 升級助手

  .NET 升級助手是一款可以在不同類型的 .NET Framework 應(yīng)用上運行的命令行工具。 它旨在幫助將 .NET Framework 應(yīng)用升級到 .NET 5。 在運行此工具后,大多數(shù)情況下,應(yīng)用將需要更多操作才能完成遷移。 此工具會安裝可以幫助完成遷移的分析器。 此工具適用于以下類型的 .NET Framework 應(yīng)用程序:

  • Windows 窗體

  • WPF

  • ASP.NET MVC

  • 控制臺

  • 類庫

  此工具使用本文中列出的其他工具,并指導(dǎo)遷移過程。 若要詳細(xì)了解此工具,請參閱 .NET 升級助手概述

  • try-convert

  try-convert 工具是一款 .NET 全局工具,可用于將項目或整個解決方案轉(zhuǎn)換為 .NET SDK,包括將桌面應(yīng)用遷移到 .NET 5。 但是,如果你的項目有復(fù)雜的生成進(jìn)程(如自定義任務(wù)、目標(biāo)或?qū)耄?,則不建議使用此工具。

  有關(guān)詳細(xì)信息,請參閱 try-convert GitHub 存儲庫。

  • .NET 可移植性分析器

.NET 可移植性分析器是一種工具,可分析程序集并為應(yīng)用程序或庫提供有關(guān)缺失的 .NET API 的詳細(xì)報告,以便在指定的目標(biāo) .NET 平臺上實現(xiàn)可移植性。

若要使用 Visual Studio 中的 .NET 可移植性分析器,請從市場中安裝此擴(kuò)展

有關(guān)詳細(xì)信息,請參閱 .NET 可移植性分析器。

  • 平臺兼容性分析器

  平臺兼容性分析器分析你是否在使用將會在運行時拋出 PlatformNotSupportedException 的 API。 盡管這并不常見,但如果從 .NET Framework 4.7.2 或更高版本進(jìn)行移動,最好進(jìn)行檢查。 若要詳細(xì)了解會在 .NET 上拋出異常的 API,請參閱始終在 .NET Core 上拋出異常的 API。

  有關(guān)詳細(xì)信息,請參閱平臺兼容性分析器

移植時的注意事項 

將應(yīng)用程序移植到 .NET 時,請按順序考慮以下建議。

?? 考慮使用 .NET 升級助手來遷移項目。 盡管此工具處于預(yù)覽階段,但它自動執(zhí)行本文中詳細(xì)介紹的大部分手動步驟,并為你繼續(xù)遷移路徑提供了一個很好的起點。

?? 考慮先檢查依賴項。 依賴項必須定目標(biāo)到 .NET 5、.NET Standard 或 .NET Core。

?? 務(wù)必從 NuGet packages.config 文件遷移到項目文件中的 PackageReference 設(shè)置。 使用 Visual Studio 轉(zhuǎn)換 package.config 文件。

?? 考慮升級到最新的項目文件格式,即使你還不能移植應(yīng)用,也不例外。 .NET Framework 項目使用過時的項目格式。 盡管最新的項目格式(稱為“SDK 樣式項目”)是為 .NET Core 及更高版本創(chuàng)建的,它們也適用于 .NET Framework。 擁有最新格式的項目文件可以為將來移植應(yīng)用打下良好的基礎(chǔ)。

?? 務(wù)必將 .NET Framework 項目重新定目標(biāo)到 .NET Framework 4.7.2 及更高版本。 在 .NET Standard 不支持現(xiàn)有 API 情況下,這可確保最新備用 API 的可用性。

?? 考慮定目標(biāo)到 .NET 5(而不是 .NET Core 3.1)。 雖然 .NET Core 3.1 是長期支持 (LTS) 版本,但 .NET 5 是最新的,并且 .NET 6 也將在發(fā)布后成為 LTS。

?? 務(wù)必為 Windows 窗體和 WPF 項目定目標(biāo)到 .NET 5。 .NET 5 包含許多對桌面應(yīng)用的改進(jìn)。

?? 若要遷移也可以用于 .NET Framework 項目的庫,請考慮定目標(biāo)到 .NET Standard 2.0。 也可以為庫設(shè)定多個目標(biāo),同時定目標(biāo)到 .NET Framework 和 .NET Standard。

?? 如果遷移之后出現(xiàn)缺少 API 的錯誤,請務(wù)必添加對 Microsoft.Windows.Compatibility NuGet 包的引用。 大部分 .NET Framework API 面是通過 NuGet 包提供給 .NET 的。


 轉(zhuǎn)自https://www.cnblogs.com/SavionZhang/p/14824855.html


該文章在 2025/11/6 11:49:19 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved