Remove ads
微软开发的软件平台 来自维基百科,自由的百科全书
.NET Framework是由微軟開發,一個致力於敏捷軟件開發(agile software development)、快速應用開發(rapid application development)、平臺獨立性和網絡透明化的軟件框架。.NET是微軟為2000年代對伺服器和桌上型軟件工程邁出的第一步。.NET包含許多有助於互聯網和內部網套用迅捷發的技術。
開發者 | Microsoft |
---|---|
首次釋出 | 2002年2月13日 |
目前版本 | 4.8.1(2022年8月9日 | )
作業系統 | Windows 98或更新 Windows NT 4.0或更新 |
類型 | 軟件框架 |
特許條款 | 專有軟件 FCL採用微軟Ms-RSL共用原始碼特許[1] 部份採取MIT特許條款[2][3] |
網站 | www |
.NET Framework是微軟公司繼Windows DNA之後的新發平台,採用系統虛擬機器運行,以通用語言運行庫(Common Language Runtime)為基礎,支援多種語言(C#、F#、VB.NET、C++、Python等)的開發。
.NET也為應用程式介面(API)提供了新功能和發工具。這些革新使得程式設計員可以同時進行Windows應用軟件和網絡應用軟件以及元件和服務(web服務)的開發。.NET提供了一個新的反射性的且物件導向程式設計編程介面。.NET設計得足夠通用化從而使許多不同高階語言都得以被匯集。
甲骨文公司的Java程式語言和Java平台企業版技術是.NET平台的競爭對手之一。
2014年11月12日,微軟宣佈完全開放.NET Framework的原始碼,並提供給Linux和macOS使用。[4] 微軟於2019年4月釋出了該框架作為專有軟件的最後一個主要版本 .NET Framework 4.8,隨後於 2022年8月釋出了 4.8.1。從此之後便只有安全性或是穩定性的臭蟲修復更新,亦無後續版本改動的計劃。.NET Framework 4.8將會持續包含在Windows的更新中接收安全性更新,截至2023年11月為止,並無將其移除的計劃。[5]官方推薦後續的新開發改用 .Net 6 起的版本進行開發。[6]
版本 | 通用語言運行庫 | 發佈時間 | 隨同Visual Studio分發 | 預安裝於Windows | 包含之前版本 | ||
---|---|---|---|---|---|---|---|
客戶端版 | 伺服器版 | ||||||
1.0[0] | 1.0 | 2002年2月13日 | .NET | 不適用 | 不適用 | 不適用 | |
1.1 | 1.1 | 2003年4月24日 | .NET 2003 | 不適用 | 2003 | ||
2.0 | 2.0 | 2005年11月7日 | 2005 | 不適用 | 2003 R2 | ||
3.0 | 2006年11月6日 | 不適用 | Vista | 不適用 | 2.0 | ||
3.5 | 3.5 | 2007年11月19日 | 2008 | 不適用 | 不適用 | 3.0 SP1 (2.0 SP1) | |
3.5.1 | 2008年2月4日 | 不適用 | 不適用 | 2008 | |||
3.5 SP1 | 2008年8月11日 | 2008 SP1 | 不適用 | 不適用 | 3.0 SP2 (2.0 SP2) | ||
3.5.1 SP1 | 2009年7月22日 | 不適用 | 7 | 2008 R2 | |||
4 | 4.0 | 4.0 | 2010年4月12日 | 2010 | 不適用 | 不適用 | 不適用 (置位更新) |
4.5 | 2012年8月15日 | 2012 | 8 | 2012 | |||
4.5.1 | 2013年10月17日 | 2013 | 8.1 | 2012 R2 | |||
4.5.2 | 2014年5月5日 | 不適用 | 不適用 | 不適用 | |||
4.6 | 2015年7月20日 | 2015 | 10 | 不適用 | |||
4.6.1 | 2015年11月30日 | 2015 Update 1 | 10 v1511 | 不適用 | |||
4.6.2 | 2016年8月2日 | 不適用 | 10 v1607 | 2016 | |||
4.7 | 2017年4月5日 | 2017 v15.3 | 10 v1703 | 不適用 | |||
4.7.1 | 2017年10月17日 | 2017 v15.5 | 10 v1709 | v1709 | |||
4.7.2 | 2018年4月30日 | 2019 | 10 v1803 | v1803 | |||
4.8 | 2019年4月18日 | 不適用 | 10 v1909 | v1909 | |||
4.8.1 | 2022年8月9日 |
版本 | 指令集架構 | Windows版本 | |
---|---|---|---|
個人電腦 | Windows Server | ||
1.0 | IA-32 | 98, ME, NT 4.0 SP6a, 2000, XP | NT 4.0 SP6a, 2000 |
1.1 | IA-32[1] | NT 4.0 SP6a, 2000, XP,Vista | NT 4.0 SP6a, 2000, 2003, 2008 |
2.0 ~ 3.5 | IA-32, Itanium, x86-64 | XP, Vista, 7, 8, 8.1, 10 | 2003, 2003 R2, 2008, 2008 R2, 2012, 2012 R2, 2016, 2019 |
4.0 | IA-32, Itanium[2],x86-64 | XP SP3, Vista SP1, 7, 8, 8.1, 10 | 2003 SP2, 2003 R2 SP2, 2008, 2008 R2, 2012, 2012 R2, 2016, 2019 |
4.5[3] ~ 4.6 | IA-32, x86-64 | Vista SP2, 7 SP1, 8, 8.1, 10 | 2008 SP2, 2008 R2 SP1, 2012, 2012 R2, 2016, 2019 |
4.6.1 | 7 SP1, 8, 8.1, 10 | 2008 R2 SP1, 2012, 2012 R2, 2016, 2019 | |
4.6.2 ~ 4.8 | 7 SP1, 8.1, 10 v1607起 | ||
4.8.1 | IA-32, x86-64, ARM64 | 10 v20H2-v21H2, 11 v21H2 | 2022 |
完整版號 - 1.0.3705
這是最早的.NET架構,於2002年發行。它可以以一個獨立且可重新分發的包的形式或在一個軟件發展工具包集中被獲得。它也是第一個微軟Visual Studio .NET的發行版的一部分(也被稱作Visual Studio .NET 2002)。
完整版號 - 1.1.4322
這是首個主要的.NET Framework升級版本,發行於2003年。它可以以一個獨立的可重新分發的包的形式或在一個軟件發展工具包集中被獲得。它也是第二個微軟Visual Studio .NET版本的一部分(也被稱作Visual Studio .NET 2003)。它也是首個被Windows作業系統-Windows Server 2003所內建的.NET Framework版本。
自1.0版本以來的改進:
完整版號 - 2.0.50727.42,發行於2005年10月27日。
.NET Framework 2.0的元件都包含在 Visual Studio 2005和SQL Server 2005裏面。通過MSDN Universe版可以免費下載RTM版本。
自1.1版本以來的改進:
發佈日期2006/11/21。曾用名「WinFX」。依然使用.NET Framework 2.0版本的公共語言運行庫(CLR),並加入了適應未來軟件發展方向的4個框架:
這個版本將包含一個支援C#和VB.Net中心的語言特性的編譯器,以及對語言整合查詢(LINQ, Language-Integrated Query)的支援。該版本隨Visual Studio 2008一起發佈。
同時,.NET Framework 3.5自動包含.NET Framework 2.0 SP1以及.NET Framework 3.0 SP1,用於為這兩個版本提供安全性修復,以及少量新增的類別館(如System.DateTimeOffest),此版本提供的新功能有:
.NET Framework 3.5 SP1自動包含.NET Framework 2.0 SP2以及.NET Framework 3.0 SP2。該版本隨Visual Studio 2008 SP1釋出,此版本提供了下列的新功能:
.NET Framework 4.5是.NET Framework 4高相容性的置位更新(in-place update)。搭配C# 或Visual Basic程式設計語言使用.NET Framework 4.5,即可編寫Windows Store風格的應用程式。.NET Framework 4.5可提升效能、可靠度及安全性。於2012年8月15日推出。但請注意,.NET Framework 4.5只支援Windows Vista SP2以上版本的作業系統。[13]
.NET Framework 4.5.1於2013年10月17日隨着Visual Studio 2013發佈。[14]此版本需要Windows Vista SP2或更新的環境,[15]並且包含在Windows 8.1和Windows Server 2012 R2中。.NET Framework 4.5.1的新功能有:[16]
.NET Framework 4.5.2的發表宣佈於2014年5月5日。[17]此版本需要Windows Vista SP2及更新版本。[18]對於Windows Forms應用程式,對高DPI方案進行了改進。對於ASP.NET,可以使用更高可靠性的HTTP開頭檢查和修改方法,這是一種規劃背景非同步工作任務的新方法。[17]
.NET Framework 4.6 是在2014年11月12月宣佈,[19]而在2015年7月20日發行。[20] 它對64位元系統支援一個新的即時編譯(JIT),稱之為 RyuJIT,呈現較佳的效能,並支援SSE2與AVX2指令集。WPF 與 Windows Forms 都獲得更新以達成較高的 DPI 情境。支援TLS 1.1 與 TLS 1.2 的功能已經被加入 WCF。[20] 此版本需要Windows Vista SP2 或更新的版本。[21]
.NET Framework 4.6.1 發行的訊息在2015年11月30日宣佈。[22]這個版本需要 Windows 7 SP1 或更新的版本。[21]新的功能與 API 包括:
.NET Framework 4.6.2 的預覽在2016年3月30日宣佈,[23]發行日期則為2016年8月2日。[24]此版本需要 Windows 7 SP1 或更新版。[21] New features include:
2017年4月5日,微軟宣佈 .NET Framework 4.7 將被整合到 Windows 10 創作者更新, 承諾為其他Windows版本提供獨立安裝程式。同日,發行一個 Visual Studio 2017 更新版以加強支援標的物 .NET Framework 4.7。[25] 所承諾的 Windows 7 及更新版本獨立安裝程式在2017年5月2日發行,[26] 但有一些重要成份不包含在內。[27]
.NET Framework 4.7 的新功能包括:[28]
.NET Framework 4.7.1 在2017年10月17日發行。[29]在修復程式和新功能中,它修正了d3dcompiler依賴性問題。 [30]它還增加了與.NET Standard 2.0開箱即用的相容性。[31]
.NET Framework 4.7.2 在2018年4月30日發行。[32]主要的異動是改進 ASP.NET、BCL、CLR、ClickOnce、Networking、SQL、WCF、Windows Forms、Workflow 及 WPF。[33]
.NET的初級組成是CLI(通用語言架構)和CLR(通用語言運行庫)。
CLI(通用語言架構)全名為Common Language Infrastructure,是一套運作環境規範,包括一般系統、基礎類庫和與機器無關的中間代碼。CLR則是確認操作密碼符合CLI的平臺。在通用中間語言(CIL)執行前,CLR必須將指令及時編譯轉換成原始機械碼。
所有CLI都可經由.NET自我表述。CLR檢查元數據以確保正確的方法被調用。元數據通常是由語言編譯器生成的,但開發人員也可以通過使用客戶屬性創建他們自己的元數據。
如果一種語言實現生成了CLI,它也可以通過使用CLR被調用,這樣它就可以與任何其他.NET語言生成的資料相互動。CLR也被設計為作業系統無關性。
當一個彙編體被載入時,CLR執行各種各樣的測試。其中的兩個測試是確認與核查。在確認的時候,CLR檢查彙編體是否包含有效的元數據和CIL,並且檢查內部表的正確性。核查則不那麼精確。核查機制檢查代碼是否會執行一些「不安全」的操作。核查所使用的演算法非常保守,導致有時一些「安全」的代碼也通不過核查。不安全的代碼只有在彙編體擁有「跳過核查」許可的情況下才會被執行,通常這意味着代碼是安裝在本機上的。
2000年8月,微軟、惠普和英特爾共同制定CLI和C#程式語言的標準規格。2001年12月,以上兩者通過並成為ECMA標準規格。(ECMA 335(頁面存檔備份,存於互聯網檔案館)和ECMA 334(頁面存檔備份,存於互聯網檔案館))。ISO亦於2003年4月跟隨(ISO/IEC 23271(頁面存檔備份,存於互聯網檔案館)和ISO/IEC 23270(頁面存檔備份,存於互聯網檔案館))。
這會有一定的風險,但它可以鼓勵標準聯合的實現,以提供一座橋樑來把非Windows的軟件轉變為微軟.NET。將此推廣為標準的一個團體是國際.NET聯合會(INETA)。
儘管微軟及其他合作夥伴持有CLI及C#的專利,ECMA和ISO要求所有專利都應該遵守「合理與非歧視準則」。除此之外,這些公司亦同意讓使用者免費使用這兩項專利。
不過,這並不包括.NET Framework內並不為ECMA/ISO標準涵蓋的範圍,這包括了:Windows Forms、ADO.NET及ASP.NET。微軟對上述部件所持有的專利,使開發者未必能夠為非微軟平臺開發出一套完整的作品。
2014 年11月13日,微軟新任行政總裁薩帝亞·納德拉決心下,該公司釋出的.NET原始碼包含了伺服器部分的核心,如.NET Framework Libraries、.NET Core Framework Libraries和RyuJit VM,正式對外開放原始碼。[34]
公共語言基礎(CLI),通用中間語言(CIL)以及C#與甲骨文公司的Java虛擬機和Java之間有不少的相似之處,因此它們無疑是強烈的競爭者。它們兩者都使用它們各自的中間碼(在微軟,它們叫做通用中間語言,而在Oracle,它們叫位元組碼)。通用中間語言被設計來即時編譯(JIT),而Java的位元組碼在最初的時候則是設計成用於解釋運行,而非即時編譯。.NET現在只在Windows上被完美地支援,而Java則可在很多平臺上被完好支援。然而,現在一些正在開發中的實現版本例如Mono或者Shared source CLI可以用於在類Unix作業系統例如Linux,FreeBSD和Mac OS X上運行.NET應用程式。甲骨文公司的一個產品,J2EE提供與微軟的一些捆綁於Windows中的技術例如COM+(先前的MTS)和MSMQ等效的功能。
Java和.NET可經由IKVM,一個在.NET平臺上實作的Java虛擬機作更多的溝通。
Java有其專門的遠端程式呼叫技術RMI(Remote Method Invocation), RMI的另一版本RMI-IIOP更可相容CORBA。
然而,.NET與Java之間的競爭關係,在.NET Core出現後,一切都改觀了。
前一版軟件元件技術由Microsoft所提出的COM,該技術被用來建立大型(large-scale)的軟件系統上,使用COM+ 或MTS對於傳統分散式元件有強化的作用。當.NET將COM-objects封裝成.NET元件以及將.NET元件封裝成COM-objects後,Microsoft分別將他命名為Runtime Callable Wrapper(RCW)和COM Callable Wrapper(CCW)。很明顯的,Microsoft最終將以.NET全面取代COM成為軟件元件的架構。[來源請求]Microsoft希望開發者能夠在Win32平臺上使用.Net取代COM,而已經存在的服務則透過抽象介面來使用(如:目前交易的.Net元件仍然使用COM+)。
.NET remoting屬於行程(process)內溝通的抽象方法。
Microsoft® .NET Remoting提供一個豐富可擴充的框架給存在兩個不同AppDomain中的Object,使得在不同行程(行程)和不同機器中能夠進行無縫地溝通。.NET Remoting提供一種強大但簡單的可程式化模型並且在執行階段支援資料交換。
XML Web services將基礎的功能區塊佈署到網絡的不同電腦上。開放標準的通訊協定以及人和應用程式可以透過Web Services整合應用程式的環境來合作。應用程式可以從不同的來源使用多個XML Web Services來建構應用程式而不需要知道他們在哪裏以及如何來運作。
CLI被設計成支援任何物件導向的程式語言,分享共同物件模型與大型共同類別庫。.NET支援超過40種程式語言。這些編譯器大都是免費的(軟件廠商僅開發出售整合式開發環境)。
大部分的語言都做了重大改變以搭配.NET Framework。廠商通常利用這個機會來同時改變語言的其他特性。
ASP.NET是內含於.NET Framework中,專門用來發展Web應用程式的一組類別庫集。
ADO.NET是內含於.NET Framework中,專門處理與資料來源溝通的資料存取類別庫集,被Windows Forms與ASP.NET應用程式大量使用,可說是.NET Framework中唯一的資料存取介面。
微軟的.NET Framework是.NET技術的旗艦級實現版本,在此之外還有一些其他實現版本。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.