【正文】
。 ? 線程和同步類:這些類用于創(chuàng)建多線程程序。 ? 通用基礎(chǔ)類:這些類提供了一組極為強大的工具,可以應(yīng)用 到廣泛的編程任務(wù)中,比如 字符串操作、安全和加密。)在寫自己的程序時,可以使用這些豐富的代碼。 基類庫 .NET 框架提供了一個廣泛的基礎(chǔ)類庫.很自然地,它被稱為基類庫 (Base Class Library,BCL)。這意味著每個可執(zhí)行程序都可以訪問程序生成時使用的那個版本的 DLL。 簡化的部署 部署為 .NET 框架編寫的程序比以前容易很多,這是由于以下幾點原因: ? .NET 程序不需要使用注冊表注冊,這意味著在最簡單的情形下,一個程序只需要被復(fù)制到目標(biāo)機器上便可以運行。 ? 注冊表: COM 應(yīng)用必須在系統(tǒng)注冊表中注冊,注冊表保存了與操作系統(tǒng)的配置和應(yīng)用程序有關(guān)的信息。 .NET 不使用HRESULT。在 .NET 中, GC 記錄引用情況并只在合適的時候刪除對象。在 .NET 中,程序的類型信息和代碼一起被保存在程序文件中。相反,所有 .NET 對象都繼承一個名為 object 的類.接口編程仍是 .NET 中的一個重要部分,但不再是中心主題了。作為一個 C程序員,不需要使用 COM,因而也不需要下面這些內(nèi)容。 ? .NET 框架還允許與 COM 的互操作。 – 正因為它能夠很容易地集成不同編程語言生成的模塊, .NET 架有時被稱為語言無的。 ? .NET 語言的互操作性允許在用不同的 .NET 語言編寫的軟件模塊間無縫地交互。這可不是個小特性,因為檢查內(nèi)存泄漏可能非常困難而且耗時。 ? GC 自動從內(nèi)存中刪除程序不再訪問的對象。它還為桌面應(yīng)用程序、移動應(yīng)用程序和 Web 開發(fā)提供了軟件開發(fā)接口,涉及的對象范圍很廣,從計算機服務(wù)器到手機。 面向?qū)ο蟮拈_發(fā)環(huán)境 CLR、 BCL 和 C被設(shè)計得完全面向?qū)ο?,并形成良好的集成環(huán)境。 較之以前的 Windows 編程環(huán)境, .NET 框架為程序員帶來了相當(dāng)大的改進。CLR 在運行期管理程序的執(zhí)行,包括以下內(nèi)容。 ? 安全性:該系統(tǒng)能提供更加安全的執(zhí)行環(huán)境,即使有來源可疑的代碼存在。 ? 多平臺:該系統(tǒng)可以在廣泛的計算機上運行,包括從服務(wù)器、桌面機到 PDA和移動電話。 .NET框架是一種比 MFC 或 COM 編程技術(shù)更一致并面向?qū)ο蟮沫h(huán)境。為滿足這個需求,微軟宣布開發(fā)一個代碼執(zhí)行環(huán)境和一個可以實現(xiàn)這些目標(biāo)的代碼開發(fā)環(huán)境。那時,Web 編程還是以后的事情,而且看起來和桌面編程 非常不同。 COM 雖然概念上簡單,但它的實際代碼復(fù)雜,并且需要很多丑陋的、不雅的底層基礎(chǔ)代碼。純 Win32 API 不是面向?qū)ο蟮?,而且使用它的工作量比MFC 的更大。其他人已經(jīng)轉(zhuǎn)向了 COM (Component Object Model,組件對象模型 )。大多數(shù)程序員在使用 Visual Basic (VB)、 C 或 C++。這只是為了確保你從正確的一步開始,讓我借此機會提醒你一件可能顯 而易見的事情: C的發(fā)音為 see sharp。 C and the .NET Framework The C programming language was designed for developing programs for Microsoft’s .NET Framework. This chapter will take a brief look at where .NET came from, and its basic architecture. Just to make sure you’re starting on the right foot, let me take this opportunity to remind you of what is hopefully the obvious: C sharp is pronounced see sharp. In the late 1990s, Windows programming using the Microsoft platform had fractured into a number of branches. Most programmers were using Visual Basic (VB), C, or C++. Some C and C++ programmers were using the raw Win32 API, but most were using the Microsoft Foundation Classes (MFC). Others had moved to the Component Object Model (COM). All these technologies had their own problems. The raw Win32 API was not objectoriented, and using it required a lot more work than MFC. MFC was objectoriented, but was inconsistent and getting old. COM, although conceptually simple, was plex in its actual coding, and required