.NET Framework


.NET Framework (简体)

Free Web Hosting with Website Builder

.NET Framework

開發 Microsoft
最近版本 3.5.30729.1 (3.5 SP1) / 2008年8月11日
作業系統 Windows XPSP2或以上版本
類型 系統平臺
許可協議 Proprietary software
網站 www.microsoft.com/net/
檢視  討論  編輯  歷史

.NET Framework 是由微軟開發,一個致力於敏捷軟體開發Agile software development)、快速應用開發(Rapid application development)、平臺無關性和網路透明化的軟體開發平臺。.NET是微軟為下一個十年伺服器桌上型軟體專案邁出的第一步。NET 包含許多有助於InternetIntranet應用迅捷開發的技術。

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

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

Sun公司的Java 編程語言Java 2 Platform, 企業版技術是.NET平臺的競爭對手之一,它們有很多概念也是互通的。

目錄

版本

.NET Framework 1.0

完整版本號 - 1.0.3705

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

.NET Framework 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 應用程式的代碼安全訪問功能。
  • 內建了對 ODBCOracle 資料庫的支援。這在 1.0 版本是以附加功能方式實現的,現在已經整合到框架的內部。
  • .NET Compact Framework- 這是一個用於智慧設備(例如Pocket PC或者SmartPhone)的 .NET 框架的子集。
  • IPv6的支援。
  • 大量的 API 變更。如需要詳細的變更列表,請查閱 GotDotNet: API Changes between versions of the .NET Framework

.NET Framework 2.0

完整版本號 - 2.0.50727.42 發行於2005年10月27日

  • The 2.0 Redistributable Package 免費下載 Microsoft
  • The 2.0 Software Development Kit 免費下載 Microsoft
  • 這些元件都包含在 Visual Studio 2005 和 SQL Server 2005 裡面。測試版免費下載 http://msdn.microsoft.com/getthebetas/ 通過MSDN宇宙版可以免費下載RTM版本。

自 1.1 版本以來的改進:

  • 大量的 API 變更。需要檢視一個詳細的清單的話,請查閱 GotDotNet: API Changes between versions of the .NET Framework
  • 一個新的 API 讓需要管理一個 .NET 運行庫實例的非 .NET 的應用程式可以做到這點。這個新的 API 對 .NET 運行庫的各種功能,包括:多線程,記憶體分配,代碼載入等 (詳細說明) 提供了很好的控制。它最初是為Microsoft SQL Server能夠有效率的使用 .NET 運行庫而設計的,因為Microsoft SQL Server擁有它自己的日程管理器和記憶體管理器。

.NET Framework 2.0 SP1

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

.NET Framework 2.0 SP2

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

.NET Framework 3.0

主條目:.NET Framework 3.0

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

WPFWindows Presentation Foundation
提供更佳的用戶體驗, 用來開發Windows Forms程式以及流覽器應用程式(參見WPF/E).
WCFWindows Communication Foundation
提供SOA(面向服務的軟體構架)支援的安全的網路服務(Web Service)框架.
WWFWindows Workflow Foundation
提供一個設計與發展工作流程導向 (Workflow-oriented) 應用程式基礎支援的應用程式介面。
Windows CardSpace 
提供一個 SSO 的解決方案,每個使用者都有各自的 Card。

.NET Framework 3.0 SP1

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

.NET Framework 3.0 SP2

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

.NET Framework 3.5

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

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

  • 擴展方法(Extension Method)屬性(Attribute),用於為擴展方法提供支援
  • LINQ 支援,包括 LINQ to Object、LINQ to ADO.NET 以及 LINQ to XML
  • 運算式目錄樹(Expression Tree),用於為 Lambda 運算式 提供支援
  • ASP.NET AJAX

.NET Framework 3.5 SP1

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

  • ASP.NET 動態資料。
  • ADO.NET Entity Framework。
  • 對 SQL Server 2008 的資料提供程式支援。
  • 對 .NET Framework 客戶端配置檔案(Client Profile)的支援。

.NET Framework 4.0

.NET Framework 4.0 主要增加了並行支援,目前處於 CTP 測試版本,隨 Visual Studio 2010 CTP 版本共同發布。


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

CLR 與 CLI

CLI運作圖

.NET的初級組成是CLI和CLR。CLI是一套運作環境說明,包括一般系統、基礎類庫和與機器無關的中間代碼,全稱為通用中間語言(CLI)。CLR則是確認操作密碼符合CLI的平臺。在CIL執行前,CLR必須將指令及時編譯轉換成原始機器碼。

所有CIL都可經由.NET自我表述。CLR檢查元資料以確保正確的方法被調用。元資料通常是由語言編譯器生成的,但開發人員也可以通過使用客戶屬性創建他們自己的元資料。

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

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

通過.NET,你可以用SOAP和不同的Web services進行互動。

標準化和版權

2000年8月,微軟惠普英特爾共同制定CLI和C#程式語言的標準規格。2001年12月,以上兩者通過並成為ECMA標準規格。(ECMA 335ECMA 334)。ISO亦於2003年4月跟隨(ISO/IEC 23271ISO/IEC 23270)。

這會有一定的風險,但它可以鼓勵標準聯合的實現,以提供一座橋樑來把非Windows的軟體轉變為微軟.NET。將此推廣為標準的一個團體是國際.NET聯合會(INETA)。

儘管微軟及其他合作夥伴持有CLI及C#的專利,ECMA和ISO要求所有專利都應該遵守「合理與非歧視準則」。除此之外,這些公司亦同意讓使用者免費使用這兩項專利。

不過,這並不包括.NET Framework內並不為ECMA/ISO標準涵蓋的範圍,這包括了:Windows FormsADO.NETASP.NET。微軟對上述部件所持有的專利,使開發者未必能夠為非微軟平臺開發出一套完整的作品。

.NET vs. Java EE

公共語言基礎(CLI),公共中間語言(CIL)以及 C# 與 Sun 的 Java 虛擬機和 Java 之間有不少的相似之處,因此它們無疑是強烈的競爭者。它們兩者都使用它們各自的中間碼(在微軟,它們叫做公共中間語言(CIL),而在 Sun,它們叫位元組碼)。CIL 被設計來即時編譯(JIT), 而 Java 的位元組碼在最初的時候則是設計成用於解釋運行,而非即時編譯。.NET 現在只在 Windows 上被完美地支援,而 Java 則可在很多平臺上被完好支援。然而,現在一些正在開發中的實現版本例如Mono或者Shared source CLI可以用於在類 Unix 作業系統例如LinuxFreeBSDMac OS X上運行 .NET 應用程式。Sun 的一個產品,J2EE提供與微軟的一些捆綁於 Windows 中的技術例如COM+(先前的MTS)和MSMQ等效的功能。

Java和.NET可經由IKVM, 一個在.NET平臺上實作的Java虛擬機作更多的溝通。

Java有其專門的遠端程式呼叫技術RMI(Remote Method Invocation), RMI的另一版本RMI-IIOP更可相容CORBA

.NET vs. COM

不要將網域名稱中的.com.net與這裡的COM、.NET混淆在一起.

前一版軟體元件技術由 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 & XML WebServices

.NET remoting 屬於行程(process)內溝通的抽象方法。 Microsoft® .NET Remoting提供一個豐富可擴充的框架給存在兩個不同 AppDomain 中的 Object,使得在不同行程(行程)和不同機器中能夠進行無縫地溝通。.NET Remoting 提供一種強大但簡單的可程式化模型並且在執行階段支援資料交換。

XML Web services 將基礎的功能區塊佈署到網路的不同電腦上。開放標準的通訊協定以及人和應用程式可以透過 Web Services 整合應用程式的環境來合作。應用程式可以從不同的來源使用多個XML Web Services 來建構應用程式而不需要知道他們在哪裡以及如何來運作。

.NET 的語言

CLI被設計成支援任何物件導向的程式語言,分享共同物件模型與大型共同類別庫。.NET支援超過40種程式語言。這些編譯器大都是免費的(廠商賣的是IDEs)。

大部分的語言都做了重大改變以搭配.NET Framework。廠商通常利用這個機會來同時改變語言的其他特性。

微軟開發的.NET平臺編程語言

  • C#,一個以C++Java語法為基礎開發的一個全新的物件導向語言,是.NET開發的首選語言。
  • Visual Basic .NET,一個加強了物件導向支援的,支援多線程Visual Basic版本。
  • C++/CLI,一個C++的 .NET 平臺版本變種。
  • JScript .NET,一個編譯版本的 MicrosoftJScript語言。
  • J#,一個對應於Java和 J++(微軟自己開發的Java變種)的 .NET 平臺版本。

第三方使用 .NET 的編程語言

ASP.NET & ADO.NET

主條目:ASP.NET

ASP.NET 是內含於 .NET Framework 中,專門用來發展 Web 應用程式的一組類別庫集。

主條目:ADO.NET

ADO.NET 是內含於 .NET Framework 中,專門處理與資料來源溝通的資料存取類別庫集,被 Windows FormsASP.NET 應用程式大量使用,可說是 .NET Framework 中唯一的資料存取介面。

可供選擇的實現版本

微軟的 .NET Framework 是 .NET 技術的旗艦級實現版本,在此之外還有一些其他實現版本。

  • 微軟的Shared Source Common Language Infrastructure是微軟的 .NET Framework 的一個源碼共用的實現版本。它可運行於Windows XPFreeBSD,和Mac OS X10.2。
  • Mono是一個開源的 .NET 運行時和開發庫實現版本。Mono 現正由XimianNovell的一部分)和開源軟體發展社區負責開發。它正迅速發展成熟,現已經包含了對 ASP.NET 和 ADO.NET 的支援,同時也正在加強對Windows Forms庫的支援。它提供了一個 C# 編譯器,而一個 VB.NET 編譯器現在也已經處於 pre-beta 階段。Mono 項目還包含了一些新的庫和技術的開發:
    • Gtk: 一個GTK+GUI工具包的 .NET 封裝。
    • xSP: 一個用 C# 編寫的支援運行 ASP.NET 應用程式的網頁伺服器軟體。
    • MonoDevelop:SharpDevelop的一個移植版本, 是一個符合GPL標準的面向 Gtk# 和 Mono 的 .NET 整合開發環境。
    • Novell.Directory.Ldap 類庫:Lightweight Directory Access Protocol(LDAP) for .NET 的一個免費的實現版本。
    • SerialPortNet: Aserial portlibrary for .Net & Mono implementing .NET 2.0 specifications.
  • DotGNUPortable.NET不及 Mono 成熟,這得歸咎於 Portable.NET 並不是在最初的時候就使用了微軟的開發框架。

參考


參見

外部鏈結

官方

非官方

  • (简体中文)中國著名的 .NET 開發 Blog 站點部落格堂
  • (简体中文)中國專注於 .NET 技術的 Blog 站點部落格園






Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History