所謂的.NET Framework概念,百度一下是這么說的:它是支持生成和運行下一代應用程序和
XML Web services 的內(nèi)部
Windows 組件。
.NET Framework 具有兩個主要組件:公共語言運行庫(CLR)和 .NET Framework 類庫。公共語言運行庫是 .NET Framework 的基礎。可以將運行庫看作一個在執(zhí)行時管理代碼的代理,它提供內(nèi)存管理、線程管理和遠程處理等核心服務,并且還強制實施嚴格的類型安全以及可提高安全性和可靠性的其他形式的代碼準確性。這類似于Java的虛擬機。事實上,代碼管理的概念是運行庫的基本原則。以運行庫為目標的代碼稱為托管代碼,而不以運行庫為目標的代碼稱為非托管代碼。.NET Framework 的另一個主要組件是類庫,它是一個綜合性的面向?qū)ο蟮目芍赜妙愋图希梢允褂盟_發(fā)多種應用程序,這些應用程序包括傳統(tǒng)的命令行或圖形用戶界面 (GUI) 應用程序,也包括基于 ASP.NET 所提供的最新創(chuàng)新的應用程序(如 Web 窗體和 XML Web services)。
看了這些是不是會有點迷糊?其實用過.NET Framework的人就把CLR理解成程序運行的環(huán)境,而.NET類庫無非就是提供了功能支持的封裝。
按照 .NET Framework=CLR+.NET F程序庫的公式類推,.NET Compact Framework和.NET Micro Framework也是由這兩個組件構(gòu)成的。只是針對的開發(fā)領域不同:.NET Framework是傳統(tǒng)的PC機和網(wǎng)絡應用,.NET Compact Framework和.NET Micro Framework針對所謂的嵌入式開發(fā)應用。那么,.NET Compact Framework和.NET Micro Framework又有什么區(qū)別呢?.NET CF針對的是運行著
Windows CE系列OS的硬件平臺,比如安裝了Windows Mobile的手機或者是PPC,以及一些采用CE的工控系統(tǒng)等等。而.NET MF是針對資源更為有限的嵌入式設備(比如沒有MMU的ARM7),它提供了一個可引導的運行時環(huán)境,不需要OS的支持。
這三者所包含的功能架構(gòu)是依次遞減的,這從名字上也很容易看出。.NET CF對 .NET Framework 進行了一些重大的刪減,使它能夠適應 Windows CE 的資源限制。如幾乎刪除了所有方法的重載、不支持打印、刪除了與 GDI+ 相關的功能。而到了.NET MF比起CF更加精簡,在CF的基礎上刪去了組建模型、SQL支持、ADO.NET等。
在開發(fā)上,三者都可被統(tǒng)一到VS2005里頭了。.NET CF支持兩種開發(fā)語言:C# .NET 和 Visual Basic .NET。由于 J# 是后來才添加到 Visual Studio .NET 開發(fā)環(huán)境中的,因此 .NET CF不支持它。.NET CF還有一個語言限制,這是 .NET Framework 所沒有的。在 .NET Framework 中,一個項目可以使用多個語言的組件,而 .NET CF中的項目則限制使用一種語言:C# .NET 或 Visual Basic .NET。解決這一單語言項目限制的方法是使用“類”模板創(chuàng)建其他項目。將可替代的語言代碼添加到模板中,然后只要在應用程序項目中添加對這些類的引用即可。
參考資料:百度百科、MSDN