.NET 有關概念梳理;類庫和標準等
c#有關的東西用的不多,主要是unity開發用。現在又要接著搞unity了,距離上一次搞這個已經有一年多了。現在新版的Unity2018.2用了 .NET4.x 的執行時,這個和以前的 Standard 2.0 的聯絡區別也不清楚。這裡簡單查看了下介紹,梳理一些概念。
Visual Basic語言,也就是vb,是一種較老的程式語言,最多用的VB6就是在 .NET 引入前的最後一個版本。
Visual Basic .NET語言,也就是vb.net,也是一個語言,是微軟2002年退出的基於.Net平臺應用程式的開發語言。這個2002年退出的 Visual Basic .NET,叫做 VB 7.0,知道2017年都還有版本更新,也就是 Visual Basic 2017(VB 15.0),沒有 VB 13。這個語言很少有人用了,然後就是下面的。
Visual C#,這個其實一般不太這麼說,就是 C# 語言,Visual 這個字首就是微軟產品品牌了。C# 釋出於2000年,多年來一直持續更新。目前也就是2018年,最新的 C# 7.3 已經發布。C# 依賴於 .NET Framework才能執行,比如 C# 6.0 要求 .NET 框架版本為 4.6,C# 7.3 要求版本為 4.7.2,對應Visual Studio版本為2017(15.7版)。
涉及到 .NET Framework,就要了解下了,尤其是之前還有 .NET Core 等概念。
.NET Framework 是第一個託管框架,這裡說的託管的概念就是 C# 編譯的程式碼是中間語言(IL),不能直接執行,需要在公共語言執行庫(CLR)中執行。這裡說第一個,就是2002年微軟釋出的。接著就是 .NET Core 的到來,它是一個開源實現,可以執行在不同的平臺上,而 .NET Framework 僅僅支援Windows。另外,Mono(現在基於Mono出了新的Xamarin)這個,也就是Unity中預設用的,也是 .NET Framework 的開源實現,同樣可以跨作業系統,.NET Core 也會從Mono上吸取經驗。
前面說到了實現,那麼就會有對應的標準,就類似HTML規範和瀏覽器對其實現等。
.NET Standard 就是 .NET 的標準,.NET Framework 和 .NET Core 都是對其的實現。這些託管框架都實現了基礎類庫(BCL),保持API一直,讓程式一直到不同託管實現更簡單。.NET Standard 2.0 中支援32000個API,而 1.6 版僅有13000個。目前該標準最新的也就是2.0。
到了Unity中,Api Compatibility Level 可選 .NET Standard 2.0 和 .NET 4.x 兩種。其中標準2.0的會小些,手機端用更合適,4.x更大更全。Scripting Runtime Version這個選項,原來的 .NET Framework 3.5 對應C#版本為3.0,現在則有 4.x 可選。而最低也就是4.5,對應了C# 5.0,實際上Unity中的 4.x 已經支援了 C# 6.0。這個可以參考維基百科:
選擇了 .NET 4.x Equivalent 後,就可以繼續選擇 Api compatibility Level 了,前面已經介紹。