我是荔園微風,作為一名在IT界整整25年的老兵,看到不少初學者在學習編程語言的過程中如此的痛苦,我決定做點什么,我小時候喜歡看小人書(連環(huán)畫),在那個沒有電視、沒有手機的年代,這是為數(shù)不多的課余生活方式這一。我畫的不好,但是如果能幫大家理解編程語言,那我的目的就達到了,希望初學者少走彎路。下面我們就開始吧。
.NET 是一個開發(fā)平臺,或者叫開發(fā)者平臺。使用 .NET 你可以創(chuàng)建不同類型的應用程序,使用多種開發(fā)語言、編輯器和工具庫創(chuàng)建網(wǎng)頁、手機、桌面以及AI等應用。其核心特點是:跨平臺。
1.語言和平臺
簡單說,開發(fā)平臺就是為應用軟件開發(fā)提供的一個工作平臺。.NET 開發(fā)平臺主要包括公共語言運行時(CLR)和框架類庫(FCL)。其中 FCL 包含基礎類庫(BCL)和 ASP.NET (Core)、ADO.NET、WPF、WinForm 等框架類庫。
經(jīng)常有人拿 .NET 與 Java 對應。嚴格來說是不對的,與 Java 對應的是 C#,與 JVM 對應的是 CLR,與 JDK 對應的是 .NET Framework/.NET Core/.NET SDK。JVM 上有多種語言,CLR 上也有多種語言。比如 JVM 上有 Java、Scala、JPython 等,CLR 上有 C#、F#、IronPython 等。
有人把 .NET 等同于 .NET Framework 或 .NET Core。準確的來說也是不對的,.NET 是開發(fā)平臺,.NET Framework 是在 .NET 平臺上針對 Windows 系統(tǒng)實現(xiàn)的開發(fā)框架,.NET Core/.NET 是在 .NET 平臺上實現(xiàn)的支持多操作系統(tǒng)的跨平臺開發(fā)框架。
2.主要特點
前面說到了 .NET 的核心特點是跨平臺。開源協(xié)議是最開放的 MIT 協(xié)議,允許在任何商業(yè)環(huán)境中使用。它的跨平臺特性使得它可以它可以運行于任何環(huán)境,如 Windows、Linux、macOS、iOS、watchOS 和 Docker 等。
3.多語言支持
你可以使用多種語言來編寫 .NET 應用程序,主流的語言有:C#, F# 和 Visual Basic。
4.多開發(fā)工具支持
你可以使用多種工具來進行 .NET 編程,有強大的 Visual Studio、輕小的 Visual Studio Code 。
Visual Studio:Windows 上功能齊全的集成開發(fā)環(huán)境(IDE),用于構建各種類型的 .NET 應用程序。還有專為 MacOS 打造的兄弟款:Visual Studio for Mac。
Visual Studio Code:可在 Linux、macOS 或 Windows 上開發(fā),建立跨平臺網(wǎng)站和服務,需安裝 C# 擴展。
?
5。分水嶺
就.NET的發(fā)展來說,2016年是一個分水嶺,首先.NET不再是閉源的、收費的、也不是只能在 Windows 上運行。.NET已經(jīng)完全開源了。再這之后,性能方面也發(fā)生很大改變,從 .NET Core 成熟后,其性能和 Go 旗鼓相當。在 Web 綜合性能方面,其性能高出 Node.js 的 7 -10倍多。自 .NET 開源以來,參與建設 .NET 平臺的有微軟自己的團隊,也有來自世界各地的 6 萬多名開發(fā)者和 3700 多家公司。另外,早在 2014 年,微軟就成立了 .NET 基金會,有微軟、Google、三星等大廠扶持,用來推進 .NET 平臺的發(fā)展。.NET 熱情擁抱了開源和跨平臺,開發(fā)市場也在熱情地擁抱 .NET,越來越多的開發(fā)人員和公司參與到了 .NET 的大家庭中。
下面詳細說說
.NET平臺是微軟在20世紀末為了迎接互聯(lián)網(wǎng)的挑戰(zhàn)而推出的應用程序平臺。經(jīng)過近年來的發(fā)展,它如今幾乎可以在任何硬件平臺上發(fā)揮作用,服務器、臺式機、移動設備、游戲機、虛擬現(xiàn)實、增強現(xiàn)實環(huán)境、手表,甚至諸如Raspberri-Pi等類似的小型嵌入式系統(tǒng)。.NET可以用來構建和運行Windows應用程序、Web應用程序、Azure云應用程序、移動App應用程序、Unity游戲等。它建立在開放體系結構基礎之上,集Microsoft在軟件領域的主要技術成就于一身,如圖:
.NET技術的核心是.NET Framework。它為.NET平臺下的應用程序的運行提供基本框架,如果把Windows操作系統(tǒng)比作大廈的地基,.NET?Framework就是基于地基上面的鋼筋混凝土框架。
?
為了實現(xiàn)跨平臺運行的目標,Microsoft推出了.NET?Core,其核心.NET?Core?Framework是參考.NET?Framework重新開發(fā)的.NET實現(xiàn)。它支持Windows、macOS、Linux等操作系統(tǒng),可以用于嵌入式或物聯(lián)網(wǎng)解決方案中。為了使.NET應用程序能在諸如智能手機之類的設備之上運行,微軟啟動了mono項目。該項目可以看作是.NET?Framework的開源實現(xiàn)。
?Visual Studio.NET是.NET平臺的主要開發(fā)工具,由于.NET平臺是建立在開放體系結構之上的,所以應用程序開發(fā)人員也可以使用其他開發(fā)工具。
.NET Framework具有兩個重要組件:除了公共語言運行時CLR(Common Language Runtime)和BCL(Base Class Lib)基礎類庫,還包括ADO.NET、ASP.NET、WCF、Azure、Workflow框架等。
CLR是.NET?Framework的基礎,是應用程序與操作系統(tǒng)之間的中間人。它為應用程序提供內(nèi)存管理、線程管理和遠程處理等核心服務。在.NET平臺上,應用程序無論使用何種語言編寫,在編譯時都會被語言編譯器編譯成MSIL(Microsoft Internediate Language,微軟中間代碼語言),在運行應用程序時CLR自動啟用JIT(Just In Time)編譯器把MSIL再次編譯成操作系統(tǒng)能夠識別的本地機器語言代碼(簡稱本地代碼),然后運行并返回運行結果,如圖:
因此,CLR是所有.NET應用程序的托管環(huán)境。這種運行在.NET之上的應用程序被稱為托管應用程序,而傳統(tǒng)的直接在操作系統(tǒng)基礎之中運行的應用程序則被稱為非托管應用程序。
BCL類庫是一個綜合性的面向對象的可用重用類型集合,包括集合類、文件系統(tǒng)處理類、XML處理類、網(wǎng)絡通信接口類、異步Task類等。利用BCL類庫,開發(fā)人員可以開發(fā)多種應用程序,包括傳統(tǒng)的命令行、圖形用戶界面(Grapical User Interface,GUI)應用程序、Web應用程序等。ADO.NET是.NET?Framework提供的微軟新一代的面向對象的數(shù)據(jù)處理技術,利用它可以簡便、快捷地開發(fā)數(shù)據(jù)庫應用程序。ASP.NET是.NET?Framework提供的全新的Web應用程序開發(fā)技術,利用它開發(fā)Web應用程序,如同開發(fā)Windows應用程序一樣簡單。
WCF(Windows Communication Foundation)、WPF(Windows Presentation Foundation)以及Silverlight等技術是微軟推出的全新的.NET技術。WCF可以理解為Windows通信接口,其整合了TCP/IP、XML、SOAP、JSON等技術,簡化了XML Web服務的設計與實現(xiàn)。WPF為用戶界面、2D/3D圖形、文檔和媒體提供了統(tǒng)一的描述和操作方法。Silverlight為開發(fā)具有專業(yè)圖形、音頻和視頻處理的Web應用程序提供了全新的解決方案。
.NET Framework的優(yōu)點
.NET Framework的最大特色就在于它為應用程序開發(fā)人員提供了一個真正與平臺無關的開發(fā)環(huán)境。
(1)基于Web的標準
.NET技術完全支持現(xiàn)有的Internet技術,包括:HTML(Hyper Text Markup Language,超文本標記語言);HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議);XML(Extensible Markup Language,可擴展標記語言);SOAP(Simple Object Access Protocal,簡單對象協(xié)議);XSLT(Extensible Stylesheet Language Transformation,可擴展樣式表語言轉換);XPath(XML Path Languang,XML路徑語言);JSON(Javascript Object Notation,Javascript對象表示方法);以及其他Web標準
(2)使用統(tǒng)一的應用程序模型
.NET?Framework類庫。.NET Framework為Windows應用程序、Web應用程序、云計算服務、跨平臺的智能手機應用提供了統(tǒng)一的應用程序模型,因此同一段代碼可被這些應用程序無障礙地使用。
(3)便于開發(fā)人員使用
在.NET?Framework中,代碼被組織在不同的命名空間和類中,而命名空間采用樹形結構,以便開發(fā)人員引用。程序員如果要調(diào)用.NET?Framework類庫的類,則只需將該類屬性命名空間添加到引用解決方案中。
(4)可擴展類
.NET Framework提供了通用類型系統(tǒng),它根據(jù)面向對象的思想把一個命名空間或類中代碼的實現(xiàn)細節(jié)隱藏,開發(fā)人員可以通過繼承來訪問類庫中的類,甚至于構建自己的類庫。
.NET Framework第一個版本發(fā)布于2002年,.NETCore第一個版本在2016年推出,在這其中,有很多語言被淘汰了,也有不少新興的語言涌現(xiàn),微軟針對市場變化,推出了.NET Core。而至今,微軟已經(jīng)推出了.NET 6,是為了與.NET Framework 4.x分離開來。.NETCore最大的特征就是以主流的web服務為主,并實現(xiàn)跨平臺。
.NET Core的優(yōu)點
.NET Core的與.NET Framework對比,具有以下幾個優(yōu)勢??缙脚_??梢栽趙indow、Linux、macOS平臺上運行;跨平臺這一點一直是.NET Framework的痛點,尤其是在被java等各種語言搶占了市場后,.NET就被抨擊不能在Linux平臺上運行。性能強化;.NETCore做了性能優(yōu)化,在各方面的測試中,都能體現(xiàn)出性能的優(yōu)化。代碼開源;如今的.NET Core源代碼開源,這又是一改以往.NET給人不開源的封閉印象。運行托管;既然是跨平臺了,部署方法也不再依賴iis,通過裝sdk,然后可以直接運行部署好的程序。
ASP.NET Core 的優(yōu)點
生成 Web UI 和 Web API 的統(tǒng)一場景。針對可測試性進行構建。Razor Pages 可以使基于頁面的編碼方式更簡單高效。Blazor 允許你在瀏覽器中使用 C# 和 JavaScript。 共享全部使用 .NET 編寫的服務器端和客戶端應用邏輯。能夠在 Windows、macOS 和 Linux 上進行開發(fā)和運行。開放源代碼和以社區(qū)為中心。集成新式客戶端框架和開發(fā)工作流。支持使用 gRPC 托管遠程過程調(diào)用 (RPC)?;诃h(huán)境的云就緒配置系統(tǒng)。內(nèi)置依賴項注入。輕型的高性能模塊化 HTTP 請求管道。
能夠托管于以下各項:Kestrel、IIS、HTTP.sys、Nginx、Apache、Docker、并行版本控制。簡化新式 Web 開發(fā)的工具。.NET Core是做出了改變,在配置上和.Net Framework肯定有區(qū)別。但主要使用的框架像mvc、webapi框架都有,.NET Core在開發(fā)新的api時,使用方式也傾向于.NET Framework的方式。文章來源:http://www.zghlxwxcb.cn/news/detail-792836.html
作者簡介:荔園微風,1981年生,高級工程師,浙大工學碩士,軟件工程項目主管,做過程序員、軟件設計師、系統(tǒng)架構師,早期的Windows程序員,Visual Studio忠實用戶,C/C++使用者,是一位在計算機界學習、拼搏、奮斗了25年的老將,經(jīng)歷了UNIX時代、桌面WIN32時代、Web應用時代、云計算時代、手機安卓時代、大數(shù)據(jù)時代、ICT時代、AI深度學習時代、智能機器時代,我不知道未來還會有什么時代,只記得這一路走來,充滿著艱辛與收獲,愿同大家一起走下去,充滿希望的走下去。文章來源地址http://www.zghlxwxcb.cn/news/detail-792836.html
到了這里,關于微軟.NET、.NET Framework和.NET Core聯(lián)系和區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!