91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Api分析器與Windows兼容包來編寫智能的跨平臺.NET Core應用

發布時間:2021-11-10 15:57:14 來源:億速云 閱讀:150 作者:柒染 欄目:大數據

本篇文章為大家展示了如何使用Api分析器與Windows兼容包來編寫智能的跨平臺.NET Core應用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

正文:

如何使用Api分析器與Windows兼容包來編寫智能的跨平臺.NET Core應用

這是最近這幾周你應該知道的一對.Net Core界的優秀工具。我們在編寫或者移植跨平臺代碼時,它們非常有幫助。

.NET API 分析器

首先是API 分析器。如你所知,有時候我們會遇到過時的API,或者一個方法你可以在Windows下使用,但是在Linux下卻不能工作。API分析器是一個Roslyn(Roslyn是C#/.NET編譯器的名稱)分析器,它可以很容易地添加到你的項目,通過一個NuGet包。你所要做的就是添加這個包,之后你將立即得到警告,或者波浪線表示API有問題。

看看這個簡單地例子。我將生成一個簡單地控制臺應用,它已經添加了API分析器。注意這個版本號是目前的,以后會改變。

C:\supercrossplatapp> dotnet new console
C:\supercrossplatapp> dotnet add package Microsoft.DotNet.Analyzers.Compatibility --version 0.1.2-alpha

 然后我將使用一個只能在Windows下使用的API。但是我依舊希望在任何平臺下都可以運行。

static void Main(string[] args)

{

    Console.WriteLine("Hello World!");

    if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))

    {

        var w = Console.WindowWidth;

        Console.WriteLine($"Console Width is {w}");

    }

}

之后我使用“dotnet build”命令(或者運行命令,運行也包含build動作)然后我得到了一個漂亮的警告,這個API不能工作在所有平臺下。

C:\supercrossplatapp> dotnet build

Program.cs(14,33): warning PC001: Console.WindowWidth isn't supported on Linux, MacOSX [C:\Users\scott\Desktop\supercr

ossplatapp\supercrossplatapp.csproj]

  supercrossplatapp -> C:\supercrossplatapp\bin\Debug\netcoreapp2.0\supercrossplatapp.dll

Build succeeded.

.NET團隊的Olia做了一個很好的YouTube視頻,她的視頻展示了API分析器是如何工作的。API分析器的代碼已經上傳到Github。如果你發現了bug請在上面提issue!

.NET CORE的windows兼容包

第二個,.NET Core的Windows兼容包是一個很好的補充技術。當.NET Core 2.0開發完成并推出后,它包含3.2萬個很好地兼容現有.NET Framework代碼的API。實際上,它們確實兼容地非常好,我之前可以很容易地將一個15年前的.NET程序移植到.NET Core2.0上,這個過程中都沒有碰到什么麻煩。

從.NET Standard1.6的1.3萬個api到.NET Standard2.0的3.2萬個API,他們增加了一倍多的可用API

.NET Standard非常的酷炫,因為它支持如下平臺:

  • .NET Framework 4.6.1

  • .NET Core 2.0

  • Mono 5.4

  • Xamarin.iOS 10.14

  • Xamarin.Mac 3.8

  • Xamarin.Android 7.5

當你遷移代碼到.NET Core時會有大量的Windows平臺特有的依賴,你可能會遇到有些API在.NET Standard找不到的情況。這時,這個新的NuGet包Microsoft.Windows.Compatibility(預覽),它可以提供原先只在.NET Framework可用的API。

在這個兼容包里面的API會包含兩種類型。一種是這個API原先就是Windows的一部分,但是也可以跨平臺工作。另外一種是只能在windows下工作,因為他們是操作系統特有的。例如,API訪問WIndows注冊表這是Windows下獨有的。但是System.DirectoryServices或者System.Drawing他們卻可以在任何平臺都工作的很好。Windows兼容包在.NET Core現在可用Api的基礎上新增呢20000多個API。可以參閱Immol錄制的視頻。

問題在于,如果這些不可用API是你使用.NET Core的攔路虎,那么現在你可以借助兼容包,耶!但是你要知道你為什么需要遷移到.NET Core。.NET Core與完整版.NET Framework都可以在Windows上工作。如果你的程序目前工作的很好,并且不需要.NET Core的新特性,那么就不需要移植到.NET Core。這是規則列表:

使用.NET Core的情況:

  • 你有跨平臺需求

  • 你的目標是微服務

  • 你使用Dorcker容器

  • 你有高性能與可拓展需求

  • 你需要同步.NET版本

使用.NET Core的情況:

  • 你的程序當前使用.NET Framework(推薦采用拓展來替代遷移)

  • 你的程序使用第三方.NET庫或者NuGet包,它們的.NET Core版本還不可用

  • 你所使用的.NET技術在.NET Core上還沒有支持

  • 你的程序所使用的操作系統平臺目前.NET Core還不支持

上述內容就是如何使用Api分析器與Windows兼容包來編寫智能的跨平臺.NET Core應用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊金霍洛旗| 五原县| 普格县| 麻江县| 博白县| 闽侯县| 北碚区| 且末县| 文安县| 济源市| 琼中| 安达市| 虞城县| 轮台县| 陇南市| 军事| 迭部县| 绥德县| 文昌市| 武城县| 樟树市| 大同市| 吉木萨尔县| 山西省| 曲麻莱县| 钟祥市| 梨树县| 华阴市| 鹤壁市| 旬邑县| 嘉荫县| 龙川县| 时尚| 阳高县| 西峡县| 定边县| 永安市| 琼结县| 和政县| 荃湾区| 阜康市|