您好,登錄后才能下訂單哦!
從.Net Framework 1.0到現在的.Net Framework 4.0,版本在不斷升級,那么,這些版本升級了什么東西?在哪些方面進行了增加或者增強?它們之間有什么相同之處和不同之處呢?
.Net Framework從出現到現在的.Net Framework 4.0,其框架結構沒什么大的變化,都是CLR在OS上面,基類庫在CLR上面,再之上是ADO.NET,XML等,再之上是asp.net ,window form,最上層就是我們經常用到的各種.Net開發工具了.框架圖如下:
Microsoft .NET Framework由應用程序開發技術、Microsoft .NET Framework 類庫、基類庫和公共語言運行庫(CLR)4個部分組成。這4個部分如圖所示,每個較高的層都使用一個或多個較低的層。
1.應用程序開發技術
應用程序開發技術位于框架的最上方,是應用程序開發人員開發的主要對象。它包括ASP .NET技術和WinFroms技術等高級編程技術。
2.Microsoft .NET Framework 類庫
Microsoft .NET Framework 類庫是一個綜合性的類型集合,用于應用程序開發的一些支持性的通用功能。開發人員可以使用它開發多種模式的應用程序,可以是命令行形式,也可以圖形界面形式的應用。Microsoft .NET Framework 中主要包括以下類庫:數據庫訪問(ADO .NET等)、XML支持、目錄服務(LDAP等)、正則表達式和消息支持。
3.基類庫
基類庫提供了支持底層操作的一系列通用功能。Microsoft .NET 框架主要覆蓋了集合操作、線程支持、代碼生成、輸入輸出(IO)、映射和安全等領域的內容。
4.公共語言運行庫(CRL)
公共語言運行庫是Microsoft .NET Framework 的基礎內容,也是Microsoft .NET程序的運行環境,用于執行和管理任何一種針對Microsoft .NET平臺的所有代碼。CLR可以為應用程序提供很多核心服務,如內存管理、線程管理和遠程處理等,并且還強制實施代碼的安全性和可靠性管理。
下面簡要介紹Microsoft .NET 框架的一些核心技術特點,以便讀者能夠更深入地了解 C# 程序后臺運行的原理。
(1) 多語言支持。在Microsoft .NET 平臺上,所有的語言都是等價的,它們都是基于公共語言運行庫(CLR)的運行環境進行編譯運行。所有Microsoft .NET 支持的語言,不管是Visual Basic .NET 、Visual C++、C# 還是Jscript .NET,都是平等的。用這種語言編寫的代碼都被編譯成一種中間代碼,在公共語言運行庫中運行。在技術上這種語言與其他語言相比沒有很大的區別,用戶可以根據自己熟悉的編程語言進行操作。在本書中使用 C# 進行編程,因為C# 是一種優秀的程序開發語言,它簡潔、高效且便于使用。主要用于Microsoft .NET框架中面向組件的領域。
(2) 多平臺支持。Microsoft .NET框架的另一個重要特點就是多平臺支持。不過相對于 Java 技術能夠跨越 UNIX、Linux 和Windows 等眾多平臺,目前Microsoft .NET 的跨平臺性僅限于各種 Windows 操作系統,如Windows 95/98、Windows NT、Windows 2000 和 Windows XP 等。
(3) 性能。Microsoft .NET的基本設計目標之一就是具有強大的性能和可伸縮性。對于 Microsoft .NET 來說,要具備很好的性能要靠公共語言運行庫來執行中間代碼。為了確保最佳性能,在某種意義上公共語言運行庫將所有引用程序代碼都編譯成本機代碼。這種轉換既可以在應用程序運行時完成,也可以在應用程序首次安裝時完成。
有了公共語言運行庫,就可以很容易地設計出對象能夠跨語言交互的組件和應用程序。也就是說,用不同語言編寫的對象可以互相通信,并且它們的行為可以緊密集成。例如,可以定義一個類,然后使用不同的語言從原始類派生出另一個類或調用原始類的方法。還可以將一個類的實例傳遞到用不同的語言編寫的另一個類的方法。這種跨語言集成之所以成為可能,是因為基于公共語言運行庫的語言編譯器和工具使用由公共語言運行庫定義的通用類型系統,而且它們遵循公共語言運行庫關于定義新類型以及創建、使用、保持和綁定到類型的規則。圖1.32列出了各種程序與CLR之間的關系。
公共語言運行庫具有以下一些優點。
改進了性能。
能夠輕松使用其他語言開發的組件。
類庫提供的可擴展類型。
公共語言運行庫的執行模型包括以下幾種。
將源代碼(VB、CS)編譯成托管代碼塊。托管代碼塊由中間語言和元數據組成。
將托管代碼合并成程序集。
加載公共語言運行庫
我們平時用csc.exe 編譯器編譯后的程序都是MSIL形式的,包括window form和asp.net中的.exe和.dll軟件或者組件.這些軟件和組件在CLR環境下由CLR環境的JIT編譯器編譯成本地代碼,之后本地代碼在CLR托管環境下
運行.CLR負責內存管理,垃圾回收等工作,同時負責與OS通信,包括OS上的其他非托管軟件.
何為托管代碼和非托管代碼?
托管代碼是在.NET基礎上開發出來的代碼,這些代碼經編譯成MSIL后,在CLR的JIT即時編譯后在CLR托管下運行,故這些代碼稱為托管代碼.而沒在.NET的基礎上開發出來的代碼,如C/C++/vb開發出來的COM組件或者API,它們一旦編譯后就編譯成基于OS的本地代碼,它們直接與OS通信,中間沒有經過CLR這個中間者,而且內存等管理是手動管理的,此類代碼稱之為非托管代碼.
前面講的是.Net Framework各版本之間相同之處,即主要框架結構模型是相同的,那么,他們之間的最主要的區別是什么呢?先看看.Net Framework3.0的框架圖:
可以看到,3.0還是用的2.0的基類庫和CLR,只不過在2.0的原有asp.net 2.0,window forms2.0技術的基礎上增加了WCF,WPF,WWF等新技術,其底層還是和2.0一樣,故如果3.0開發編譯后的東西沒有用到新的基類庫的話,一樣可以在2.0上運行.
這里需要再說明下CLR的JIT是如何加載編譯程序集的.JIT并非所有using引用的程序集都加載編譯的,它只加載編譯要用到的程序集,故把一個類作為一個類文件編譯成一個組件或者說是程序集,比并把幾個類寫成一個文件編譯成一個程序集,可以減少很多的加載編譯量,所以最好一個功能,一個類單獨寫成一個程序集.
.Net 3.5在3.0的基礎上對之前功能的增強外,還新增加了幾個新技術..NET 3.5并未對.NET 2.0現存的技術進行任何改動,包括ASP.NET、ADO.NET和WinForm在內的主要技術都保持原樣,這對熟練掌握.NET 2.0的技術人員是個好消息,他們所掌握的技術仍然很有價值。根據微軟.NET平臺發展趨勢來看,.NET 2.0平臺將為.NET 3.5提供基礎類庫,.NET 3.5將著重引入語法,數據訪問和Web客戶端上的一些創新。可以把.NET 3.5看做是.NET 2.0的超集,是對.NET 2.0的一次補充。
如果開發者是從.NET 1.0或1.1遷移到3.5,那么需要考慮代碼的兼容性問題,盡管.NET框架已經盡力保證向后兼容性,不過由于一些安全方面的改進,仍然有少數重要操作存在不兼容的現象。從.NET 2.0到3.5則完全不存在這個問題,因為.NET Framework 3.5 的所有組件都可在支持 .NET Framework 3.5 的平臺上運行。
.NET 3.5還增加了LINQ(語言整合查詢)和ASP.NET的OR/M框架(ASP.NET Entity Framework)等新功能。這些新功能增強了VB和C#等語言的作用,為.NET環境提供了OR/M框架,它們都可以和WPF/WCF和WF共同工作,創建強大的應用程序。
net framework 2.0,3.0與3.5三個版本之間關系如下:
.net framework 2.0 = CLR 2.0 + FCL(framework class library)
.net framework 3.0 = .net framework 2.0 + SP1 + WPF + WCF + WF + CardSpace
.net framework 3.5 = ..net framework 3.0 + SP2 + new compiler
這三個版本framework的CLR都是2.0,因此,asp.net的runtime還是只有1.1和2.0,像Linq這些新功能其實只是用新的編譯器加上一些新的類庫來實現的,3.5版本并沒有對CLR做大的升級。
VS2008支持在2.0,3.0和3.5三種版本下開發項目,VS2005的項目可以平穩的升到VS2008上,在VS2008下做VS2005的項目,用的編譯器和類庫同VS2005都是一樣的,但是提供了更好的開發環境。
Framework 3 SP1除了修正了一些Framework 2的bug之外,主要的擴展是加了3W框架,分別是WPF,WCF,WWF。F3.5和F3類似,在修正之前的Bug之外,主要的擴展是:LINQ,WF,WCF,Add-in(今后會被MEF替代)。Framework 3.5 SP1,又添了幾個新東東:MVC,Dynamic Data,Entity Framework,Data Services等。當然這里面我們也不能忽略了Framework 3在語言上進行的改進,例如Linq,Lambda,擴展函數,var類型的使用等等。
現在看看Framework 4.0又給我們帶來了什么?
.NET Framework 4與 Framework 3.5 SP1并行工作。在舊版的Framework中可以運行的應用程序,將繼續能夠運行在.NET Framework 4上。
在Visual Basic和C #語言中有所創新,例如聲明lambdas 、隱線continuations 、動態調度、并命名/可選參數等。
在ADO.NET實體框架中增加了許多新的功能,通過提高抽象層次,從而簡化開發人員的關系數據庫的程序。這些新功能包括:持續忽略、POCO支持、延遲加載,測試驅動開發的支持、功能模型以及新的LINQ運營商等。
一、以下是ASP.NET中的改進:
改進JavaScript用戶界面模板和AJAX中的數據綁定功能;
改進ASP.NET的圖表控制;
二、以下是WPF中的改進:
在WPF中增加Windows 7多觸控、ribbon控制、任務欄擴展功能支持;
在WPF中增加Surface 2.0 SDK支持;
新的業務線控制,包括圖表控制,智能編輯,數據網格,以及其他能夠提高“建立數據中心的應用程序”的開發者經驗的控制。
提高性能和可擴展性;
在文字、像素布局、本地化和互操作性中添加可視化改進;
三、Windows Workflow(WF)中的改進讓開發者能夠更好地控制工作流程,具體改進如下:
改善活動規劃模型;
改進設計體驗;
一個新的流程建模方式;
擴大調色板的活動范圍;
工作流程規則一體化;
新郵件相關的功能。
四、.NET框架還為基于WF的工作流程提供重大的性能改進:
改進Windows通訊基礎( WCF )構架,例如流服務相關支持,雙向通信的持久性等。
.NET框架4還提供了新的WCF功能,例如服務發現、路由器服務、簡化配置、REST支持、診斷和性.
visual studio 2005 是IDE, 就是集成開發環境,只是一個工具,你可以理解為一個功能強大的編輯器(記事本?)
.net framework2.0 是運行環境, .net framework2.0 sdk是開發環境,沒有前者,你就不能運行.net程序,沒有后者,你就不能做.net開發。
通常vs會自帶.net framework sdk, 但做.net開發一定要明白什么是什么。其實即使沒有vs2005之類的ide,在純命令行下都可以用.net sdk做開發的。
我是做java的,沒裝vs,但是概念肯定是這樣。這就好比eclipse和jre和jdk的關系。
.NET Framework與.NET Framework SDK的區別,以及使用上的不同
1、.NET Framework與.NET Framework SDK有區別
2、什么是.NET Framework
.NET Framework是微軟開發的運行于各個操作系統之上的.NET軟件運行平臺,相對獨立于微軟的各個操
作系統之上。只要安裝了.NET Framework,則從Windows 98到Windows XP都可以運行.NET程序。
3、是否要安裝.NET Framework
同時對于基于.NET Framework開發的程序,必須運行在.NET Framework的平臺上。目前至少有超過20%的
自己開發的應用程序是基于.NET Framework開發的,所以一般建議安裝Microsoft的各種操作系統之后,
安裝.NET Framework。
4、.NET Framework的功能
.NET Framework是一種新的軟件運行平臺,提供了.NET程序運行時支持和功能強大的類庫。可以從微軟網站免費下載。
5、.NET Framework版本
目前包括的版本包括.NET Framework V1.1版、目前包括的版本包括.NET Framework V2.0版、目前包括的版本包括.NET Framework V3.5版,最新版本為目前包括的版本包括.NET Framework V4版。其中1.1版和2.0版之間有本質差別,可能出現不兼容情況。一般使用V2.0以上版本就夠了。
二、.NET Framework與.NET Framework SDK的區別,以及使用上的不同
1、.NET Framework與.NET Framework SDK的區別
只有一句話,如果只安裝了.NET Framework,只能運行.NET應用程序,而不能開發.NET應用程序。
2、什么是.NET Framework SDK
.NET Framework SDK 包括了微軟提供的.NET 語言編譯器(如C#編譯器CSC.exe和VB.NET編譯器VBC.exe
),完整的.NET Framework文檔,以及各種工具(如AL.exe和SN.exe等),大概有110多MB。好像只有兩個版本:.NET Framework SDK V1.1版、.NET Framework SDK V2.0版3、.NET Framework SDK可以干什么用?
裝了這兩個東西之后,你就可以用記事本來編寫代碼,然后在DOS窗口中手動編譯.NET程序啦。
4、開發人員是否必須安裝.NET Framework SDK
開發人員不必安裝.NET Framework SDK,Visual Studio的各個版本中基本都自帶了,除非一些特殊的情況,才需要安裝.NET Framework SDK。
首先我要講一點C#的程序的可移植性還不夠強大,目前,在微軟以外的操作系統上運行我還沒有看到。一般C#程序只能運行在Windows操作系統上,或者經微軟授權的相在系統上。C#編譯的文件是EXE文件。但他和C++的exe文件是有區別的。C#的exe文件是運行在.net構架之上的。沒有.net構架,C#程序將無法運行。C#的exe文件有點于類似于匯編語言。這種匯編語言叫中間語言。在運行這種EXE文件時,要.net進行解釋。所以這種程序即編譯又解釋
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。