.NET

.NET

.NET是 Microsoft XML Web services 平台。

XML Web services 允許應用程式通過 Internet 進行通訊和共享資料,而不管所採用的是哪種作業系統、設備或程式語言。Microsoft .NET 平台提供建立 XML Web services 並將這些服務集成在一起之所需。對個人使用者的好處是無縫的、吸引人的體驗。

2014年4月4號,微軟在Build開發者大會上宣布開源一批.NET庫和相關技術,成立.NET基金會去管理和引導開源組件的開發。2014年11月13日,微軟表示將不再把.NET和Visual Studio等關鍵軟體技術局限在Windows平台,今後還將兼容Linux、Mac OS X、iOS和Android。

  • 中文名稱
    net
  • 外文名稱
    net

基本概要

.NET Framework是由微軟開發,一個致力于敏捷軟體開發(Agile software development)、快速套用開發(Rapid application development)、平台無關性和網路透明化的軟體開發平台。.NET是微軟為下一個十年對伺服器和桌面型軟體工程邁出的第一步。NET包含許多有助于網際網路和內部網套用迅捷開發的技術。

.NET

.NET架構是微軟公司繼Windows DNA之後的新開發平台。.NET架構是以一種採用系統虛擬機運行的編程平台,以通用語言運行庫(Common Language Runtime)為基礎,支持多種語言(C#、VB.NET、C++、Python等)的開發。

.NET也為應用程式接口(API)提供了新功能和開發工具。這些革新使得程式設計員可以同時進行Windows套用軟體和網路套用軟體以及組件和服務(web服務)的開發。.NET提供了一個新的反射性的且面向對象程式設計編程接口。.NET設計得足夠通用化從而使許多不同高級語言都得以被匯集。

Oracle公司的Java程式語言和Java平台企業版技術是.NET平台的競爭對手之一,它們有很多概念也是互通的。

架構 1.0

完整版號 - 1.0.3705

這是最早的.NET構架,于2002年發布。它可以以一個獨立且可重新分發的包的形式或在一個軟體發展工具包集中被獲得。它也是第一個微軟Visual Studio .NET的發布版的一部分(也被稱作Visual Studio .NET 2002)。

架構 1.1

完整版號 - 1.1.4322

這是首個主要的.NET架構升級版本,發布于2003年。它可以以一個獨立的可重新分發的包的形式或在一個軟體發展工具包集中被獲得。它也是第二個微軟Visual Studio .NET版本的一部分(也被稱作Visual Studio .NET 2003)。它也是首個被Windows作業系統-Windows Server 2003所內置的.NET架構版本。

自1.0版本以來的改進:

自帶了對mobile ASP.NET控制項的支持。這在1.0版本是以附加功能方式實現的,現在已經集成到架構的內部。

安全方面的變更 - 使得Windows窗體代碼以可靠的行為運行,從而可以在Internet環境內安全運行,並且加入了ASP.NET應用程式的代碼安全訪問功能。

自帶了對ODBC和Oracle資料庫的支持。這在1.0版本是以附加功能方式實現的,現在已經集成到架構的內部。

.NET Compact Framework- 這是一個用于智慧型設備(例如Pocket PC或者SmartPhone)的.NET架構的子集。

對IPv6的支持。

大量的API變更。

架構 2.0

完整版號 - 2.0.50727.42,發布于2005年10月27日。

.NET架構 2.0的組件都包含在 Visual Studio 2005和SQL Server 2005裏面。通過MSDN Universe版可以免費下載RTM版本。

自1.1版本以來的改進:

大量的API變更。

新的API讓需要管理.NET運行庫實例的非.NET的應用程式可以做到這點。這個新的API對.NET運行庫的各種功能,包括:多執行緒、存儲器分配、代碼載入等[2],提供了很好的控製。它最初是為Microsoft SQL Server能夠有效率的使用.NET運行庫而設計的,因為Microsoft SQL Server擁有它自己的日程管理器和存儲器管理器。

架構 2.0 SP1

隨.NET架構 3.5同時發行,請參看.NET架構 3.5一節。

架構 2.0 SP2

隨.NET架構 3.5 SP1同時發行,請參看.NET架構 3.5 SP1一節。

架構 3.0

.NET架構 3.0

發布日期2006/11/21。曾用名“WinFX”。依然使用.NET架構 2.0版本的公共語言運行庫(CLR),並加入了適應未來軟體發展方向的4個架構:

Windows Presentation Foundation(WPF):提供更佳的使用者體驗,用來開發Windows Forms程式以及流覽器應用程式(參見WPF/E).

Windows Communication Foundation(WCF):提供SOA(面向服務的軟體構架)支持的安全的網路服務(Web Service)架構。

Windows Workflow Foundation(WF):提供一個設計與發展工作流程導向(Workflow-oriented)應用程式基礎支持的應用程式接口。

Windows CardSpace:提供一個SSO的解決方案,每個使用者都有各自的CardSpace。

架構 3.0 SP1

隨.NET架構 3.5同時發行,請參看.NET架構 3.5。

架構 3.0 SP2

隨.NET架構 3.5 SP1同時發行,請參看.NET架構 3.5 SP1。

架構 3.5

這個版本將包含一個支持C#和VB.Net中心的語言特徵的編譯器,以及對語言集成查詢(LINQ, Language-Integrated Query)的支持。該版本隨Visual Studio 2008一起發布。

同時,.NET架構 3.5自動包含.NET架構 2.0 SP1以及.NET架構 3.0 SP1,用于為這兩個版本提供安全性修復,以及少量新增的類庫(如System.DateTimeOffest),此版本提供的新功能有:

擴展方法(Extension Method)屬性(Attribute),用于為擴展方法提供支持

LINQ支持,包括LINQ to Object、LINQ to ADO.NET以及LINQ to XML

表達式目錄樹(Expression Tree),用于為Lambda表達式提供支持

與語言集成查詢 (LINQ)和資料感知緊密集成。借助這個新功能,您可以使用相同的文法,在任何支持LINQ的語言中編寫相關代碼,以篩選和枚舉多種類型的SQL資料、集合、XML和資料集,以及建立它們的投影。

利用ASP.NET AJAX可以建立更有效、更具互動性、高度個性化的Web體驗,這些體驗在所有最流行的流覽器上都能實現。

用于生成WCF服務的全新Web協定支持,包括AJAX、JSON、REST、POX、RSS、ATOM和若幹新的WS-*標準。

Visual Studio 2008中面向WF、WCF和WPF的完整工具支持,其中包括支持工作流的服務這一新技術。

.NET架構 3.5基類庫 (BCL)中的新類可滿足許多常見的客戶請求。

架構 3.5 SP1

.NET架構 3.5 SP1自動包含.NET架構 2.0 SP2以及.NET架構 3.0 SP2。該版本隨Visual Studio 2008 SP1發布,此版本提供了下列的新功能:

新增的ASP.NET功能包括ASP.NET動態資料和ASP.NET AJAX附加功能,前者提供了無需編寫代碼就可實現資料驅動的快速開發的豐富支架架構,後者為管理流覽器歷史記錄提供了支持(後退按鈕支持)。

ADO.NET Entity Framework。

對SQL Server 2008的資料提供程式支持。

.NET架構客戶端配置文檔是完整版.NET架構的子集,面向客戶端應用程式。這改善了尚未安裝.NET架構的電腦上的安裝體驗。

改進Windows Presentation Foundation的性能,其中包括啓動速度的點陣圖效果性能的提高。為Windows Presentation Foundation增加的功能包括對業務線應用程式的更好支持、本機閃屏支持、DirectX像素著色器支持以及新的WebBrowser控制項。

ClickOnce應用程式發布者可以根據具體情況決定是否取消簽名和散列,開發人員可以以編程方式安裝顯示自定義署名的ClickOnce應用程式,ClickOnce錯誤對話框支持指向網路上特定于應用程式的支持站點的連結。

用于SQL Server的.NET架構資料提供程式 (System.Data.SqlClient)完全支持SQL Server 2008資料庫引擎的所有新功能。有關.NET架構對SQL Server 2008的支持的更多信息,請參見SQL Server中的新功能 (ADO.NET)。ADO.NET資料平台是一種多版本策略,它使開發人員能夠針對概念性實體資料模型進行編程,從而減輕他們的編碼和維護工作。此平台提供了ADO.NET Entity Framework、實體資料模型 (EDM)、對象服務、LINQ to Entities、Entity SQL、EntityClient、ADO.NET資料服務及實體資料模型工具。

Windows Communication Foundation現在提供了改進的互操作性支持,增強了部分信任方案中的調試體驗,並擴展了集成協定支持以更廣泛地套用于Web 2.0應用程式,從而使DataContract串列化程式更易于使用。

Microsoft.VisualBasic.PowerPacks命名空間引入了新的DataRepeater控制項,該控制項以可自定義的列表格式顯示資料。此命名空間還包含新的矢量形狀。

架構 4.0

.NET架構 4.0主要增加了並行支持,英文版于2010年4月12日推出。

企業基礎 .NET提供開發軟體的獨立平台,自帶高度安全的網路系統,相當倚重軟體組件以及組件導向程式。在這方面它完全取代前者(COM)

架構 4.5

.NET架構 4.5 是 .NET架構 4 高兼容性的就地更新 (in-place update)。 搭配 C# 或 Visual Basic 程式語言使用 .NET架構 4.5,即可編寫 Windows Store 風格的應用程式。 .NET架構 4.5 可提升性能、可靠度及安全性。于2012年8月15日推出。但請註意,.NET架構 4.5不支持Windows XP作業系統。

.NET 控制項

.NET標準控制項根據具體套用平台分為一下幾類:

Windows Form控制項:主要用于Windows應用程式的開發。所有的Windows控制項都是從Control類中派生來的,該類包含了所有使用者介面的Windows Form組件,其中也包括Form類。Control類中封裝了很多為所有控制項所共享的屬性、事件和方法,比如BackColor、ForeColor、Font、Click事件等。典型的WinForms控制項包括復選框、文本框、按鈕、標簽、圖像列表等。

ASP.NET控制項:主要用于Web應用程式的開發。它是專門針對Asp.NET窗體設計的伺服器控制項。Web窗體控制項包含在命名空間System.Web.UI.WebControls中,當使用者使用Visual Studio建立Web窗體頁面時,會自動在後台代碼檔案中增加引用該命名空間的Using語句。

WPF控制項:WPF是.NET Framework 3.0以後推出的全新桌面應用程式開發平台。同時推出的還有silverlight。它與WinForms類似,都是用于開發桌面應用程式的平台。不同的是,WPF通過XAML視圖套用開發中前端介面和後台業務邏輯相分離。讓專業的設計團隊隻負責介面部分,而軟體開發團隊負責後台邏輯和編碼工作。但是這一構想並沒有推廣開來。不過WPF相比較與WinForms還是有不少好處,比如介面更加美觀,動畫效果更容易實現,控制項的定製系更強等等。

Silverlight控制項:與WPF同時推出,也採用XAML處理前端介面的開發。它的誕生最主要的是想取代Flash,通過C#代碼為使用者提供豐富的流覽器客戶端體驗。不過微軟已經于2013年宣布停止維護Silverlight產品了。這基本上宣布了Silverlight的死刑。但是Silverlight平台下的控制項並沒有停止維護。比如ComponentOne就在2014的RoadMap中宣布,為了保證已經使用其Silverlight控制項的客戶的利益,將會繼續維護和發布加入客戶需求的Silverlight控制項產品。

WinRT XAML控制項:Windows 8開始,微軟推出WinRT平台。這一平台目標客戶是使用移動設備的個人電子消費者。WinRT控制項就是在這樣的平台中運行的產品。能夠幫助微軟套用商店的開發者們快速完成APP。

除此以外,還有Windows Phone控制項。不過目前使用者有限,不再贅述。

隨著軟體和信息產業的發展,.NET控制項的需求不斷大幅提升。微軟提供的基本控制項已經無法滿足使用者的需求。因此.NET控制項領域涌現出一批第三方控制項提供者。他們將.NET控制項細分為介面控制項、業務資料互動、資料可視化、報表生成等領域。

CLR與CLI

所有CIL都可經由.NET自我表述。CLR檢查元資料以確保正確的方法被調用。元資料通常是由語言編譯器生成的,但開發人員也可以通過使用客戶屬性建立他們自己的元資料。.NET的初級組成是CLI和CLR。CLI是一套運作環境幫助,包括一般系統、基礎類庫和與機器無關的中間代碼,全稱為通用中間語言(CIL)。CLR則是確認操作密碼符合CLI的平台。在CIL運行前,CLR必須將指令及時編譯轉換成原始機器碼。

如果一種語言實現生成了CLI,它也可以通過使用CLR被調用,這樣它就可以與任何其他.NET語言生成的資料相互動。CLR也被設計為作業系統無關性。

當一個匯編體被載入時,CLR運行各種各樣的測試。其中的兩個測試是確認與核查。在確認的時候,CLR檢查匯編體是否包含有效的元資料和CIL,並且檢查內部表的正確性。核查則不那麽精確。核查機製檢查代碼是否會運行一些“不安全”的操作。核查所使用的演算法非常保守,導致有時一些“安全”的代碼也通不過核查。不安全的代碼隻有在匯編體擁有“跳過核查”許可的情況下才會被運行,通常這意味著代碼是安裝在在地上的。

通過.NET,你可以用SOAP和不同的web服務進行互動。

標準化和著作權

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架構內並不為ECMA/ISO標準涵蓋的範圍,這包括了:Windows Forms、ADO.NET及ASP.NET。微軟對上述部件所持有的專利,使開發者未必能夠為非微軟平台開發出一套完整的作品。

.NET開源

微軟宣布.NET開源可不是一時興起,畢竟壟斷對于任何人來說,都意味著巨大的財富,而放棄壟斷,無疑是將手裏的蛋糕分了出去。.NET是微軟手中的一張王牌,而就是憑借這張牌,微軟才在這個領域立于不敗之地。

因為.NET的親爹是微軟,所以即便.NET在很多方面不如Java,依然擁有龐大的市場份額,這點依舊證明了壟斷的好處:量變帶來的質變,微軟旗下的Windows平台能夠完美支持.NET環境下開發的應用程式,而針對Windows平台開發的Java程式能不能順利運行還是個問題。

不過,在移動網際網路時代,Java的風頭卻很快蓋過.NET,而微軟卻因為固步自封而接連失去在各行業中的領先地位,隱隱約約有了衰敗的痕跡。WP手機失敗了,順帶把諾基亞也拉著墊背,Windows 8作業系統失敗了,為了Windows 10,微軟把曾經的功臣Windows XP親手送進墳墓,在業界看來,微軟正面臨著黔驢技窮的窘境。

相關詞條

相關搜尋

其它詞條