一文看懂什么是 .NET!
本文來自『.NET大牛之路』星球的免費(fèi)分享
.NET 是一個(gè)開發(fā)平臺(tái),或者叫開發(fā)者平臺(tái)。使用 .NET 你可以創(chuàng)建不同類型的應(yīng)用程序,使用多種開發(fā)語(yǔ)言、編輯器和工具庫(kù)創(chuàng)建網(wǎng)頁(yè)、手機(jī)、桌面以及游戲等應(yīng)用。其核心特點(diǎn)是:免費(fèi)、開源和跨平臺(tái)。
1語(yǔ)言和平臺(tái)
我們先來理解一下什么是 .NET 開發(fā)平臺(tái)。
簡(jiǎn)單說,開發(fā)平臺(tái)就是為應(yīng)用軟件開發(fā)提供的一個(gè)工作平臺(tái)。.NET 開發(fā)平臺(tái)主要包括公共語(yǔ)言運(yùn)行時(shí)(CLR)和框架類庫(kù)(FCL)。其中 FCL 包含基礎(chǔ)類庫(kù)(BCL)和 ASP.NET (Core)、ADO.NET、WPF、WinForm 等框架類庫(kù)。
經(jīng)常會(huì)聽到有人拿 .NET 與 Java 對(duì)應(yīng)。嚴(yán)格來說是不對(duì)的,與 Java 對(duì)應(yīng)的是 C#,與 JVM 對(duì)應(yīng)的是 CLR,與 JDK 對(duì)應(yīng)的是 .NET Framework/.NET Core/.NET 5+ SDK。JVM 上有多種語(yǔ)言,CLR 上也有多種語(yǔ)言。比如 JVM 上有 Java、Scala、JPython 等,CLR 上有 C#、F#、IronPython 等。
當(dāng)然,平時(shí)我們不必刻意去區(qū)分對(duì)應(yīng)關(guān)系。當(dāng)我們聽到有人把 .NET 與 Java 對(duì)應(yīng)時(shí),也完全不必較真。因?yàn)?C# 語(yǔ)言在 .NET 平臺(tái)的市場(chǎng)上占據(jù)了絕對(duì)主導(dǎo)的地位,所以人們默認(rèn)就把 .NET 與 C# 綁在了一塊兒。比如人們習(xí)慣了說 .NET 生態(tài)和 Java 生態(tài),而很少聽說 C# 生態(tài)。
還有人把 .NET 等同于 .NET Framework 或 .NET Core。準(zhǔn)確的來說也是不對(duì)的,.NET 是開發(fā)平臺(tái),.NET Framework 是在 .NET 平臺(tái)上針對(duì) Windows 系統(tǒng)實(shí)現(xiàn)的開發(fā)框架,.NET Core/.NET 5+ 是在 .NET 平臺(tái)上實(shí)現(xiàn)的支持多操作系統(tǒng)的跨平臺(tái)開發(fā)框架。
2主要特點(diǎn)
前面說到了 .NET 的核心特點(diǎn)是免費(fèi)、開源和跨平臺(tái)。即,它的開源協(xié)議是最開放的 MIT 協(xié)議,允許在任何商業(yè)環(huán)境中使用。它的跨平臺(tái)特性使得它可以它可以運(yùn)行于任何環(huán)境,如 Windows、Linux、macOS、iOS、watchOS 和 Docker 等。
.NET 的另一個(gè)我最喜歡的特點(diǎn)是:大生態(tài)。來看一張來自官網(wǎng)的圖:

從圖中我們可以看到,.NET 支持 Web、桌面客戶端、移動(dòng)應(yīng)用、微服務(wù)、云服務(wù)、機(jī)器學(xué)習(xí)、游戲、物聯(lián)網(wǎng)(IoT)等開發(fā),幾乎涵蓋了所有應(yīng)用場(chǎng)景。也就是說,我們只需要掌握 C# 一門語(yǔ)言,就可以應(yīng)對(duì)幾乎所有應(yīng)用場(chǎng)景的開發(fā)。這個(gè)優(yōu)勢(shì),目前沒有任何一門其它語(yǔ)言或平臺(tái)可以相比。
其中部分生態(tài)目前相對(duì)還不是非常成熟,比如機(jī)器學(xué)習(xí)和大數(shù)據(jù)方面。隨著微軟和社區(qū)逐漸把 .NET 生態(tài)發(fā)展壯大,.NET 也會(huì)迎來越來越美好前景。
3多語(yǔ)言支持
你可以使用多種語(yǔ)言來編寫 .NET 應(yīng)用程序,主流的語(yǔ)言有:C#, F# 和 Visual Basic。
C# 是一種簡(jiǎn)單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z(yǔ)言,其名字的意義源于 C++,并受到了五線譜中的升號(hào) # 的啟發(fā)。它在 C++ 的基礎(chǔ)上再 ++ ,就是 4 個(gè) +,即 #,恰好和五線譜中的 #(sharp) 一樣。所以 C# 讀作 [si:'?ɑrp],不要讀成 C 井哦。
F# 是一種跨平臺(tái)的、開源的函數(shù)式編程語(yǔ)言。它還包括面向?qū)ο蠛兔钍?Imperative)編程。它為那些熟悉函數(shù)式編程語(yǔ)言的人轉(zhuǎn)換到 .NET 平臺(tái)提供了便利。函數(shù)式編程在某些場(chǎng)景下比面向?qū)ο缶幊谈奖愀咝В衅渥陨硖攸c(diǎn),是對(duì) .NET 平臺(tái)的一個(gè)有益補(bǔ)充。
Visual Basic,簡(jiǎn)稱 VB,是一種接近人類語(yǔ)言的語(yǔ)言。它的語(yǔ)法簡(jiǎn)單,易學(xué),一般用于建立基于事件驅(qū)動(dòng)的視窗應(yīng)用程序。很多傳統(tǒng)企業(yè)和小公司還在用。現(xiàn)在很多人學(xué) VB 語(yǔ)言主要是為了 VBA 編程,使用 Excel 自動(dòng)化辦公。
當(dāng)年也出現(xiàn)了像 IronPython、IronRuby、IronScheme 等,不過這些項(xiàng)目已經(jīng)死掉了。
4多開發(fā)工具支持
你可以使用多種工具來進(jìn)行 .NET 編程,有強(qiáng)大的 Visual Studio、輕小的 Visual Studio Code 和 JetBrains 出品的 Rider 等。
Visual Studio:Windows 上功能齊全的集成開發(fā)環(huán)境(IDE),用于構(gòu)建各種類型的 .NET 應(yīng)用程序。還有專為 MacOS 打造的兄弟款:Visual Studio for Mac。
Visual Studio Code:可在 Linux、macOS 或 Windows 上開發(fā),建立跨平臺(tái)網(wǎng)站和服務(wù),需安裝 C# 擴(kuò)展。
JetBrains Rider:JetBrains 出品,體驗(yàn)也不錯(cuò),它使用的是 IntelliJ 和 ReSharper 技術(shù)構(gòu)建的跨平臺(tái) .NET IDE。
OmniSharp:它使 Atom、Sublime Text、Emacs 和 Vim 等編輯器支持跨平臺(tái) .NET 開發(fā)。
5人們的誤解
至今我還偶爾會(huì)看到網(wǎng)上的一些評(píng)論說,.NET 是閉源的、收費(fèi)的、只能在 Windows 上跑等言論。這些都是誤解,這些人的觀念都還停留在 2016 年以前,面對(duì)這些評(píng)論,我們只能呵呵了。
還有人認(rèn)為 .NET 的性能低,這也是老舊觀念了。從 .NET Core 成熟后,其性能和 Go 旗鼓相當(dāng)。在 Web 綜合性能方面,其性能高出 Node.js 的 7 倍多。
還有很多人認(rèn)為 .NET 是由微軟自己開發(fā)和維護(hù)的,其實(shí)不完全是。自 .NET 開源以來,參與建設(shè) .NET 平臺(tái)的有微軟自己的團(tuán)隊(duì),也有來自世界各地的 6 萬多名開發(fā)者和 3700 多家公司。另外,早在 2014 年,微軟就成立了 .NET 基金會(huì),有微軟、Google、三星等大廠扶持,用來推進(jìn) .NET 平臺(tái)的發(fā)展。
.NET 熱情擁抱了開源和跨平臺(tái),開發(fā)市場(chǎng)也在熱情地?fù)肀?.NET,越來越多的開發(fā)人員和公司參與到了 .NET 的大家庭中。


老板禁刪:白嫖4個(gè)摸魚網(wǎng)站!

去TM收費(fèi),我要在線 Vip 視頻解析!
