C#高級編程

出版時(shí)間:2005年6月  出版社:清華大學(xué)出版社  作者:Simon Robinson Christian Nagel  頁數(shù):1027  字?jǐn)?shù):1695000  譯者:李敏波 黃靜 張少華  
Tag標(biāo)簽:無  

內(nèi)容概要

對于開發(fā)人員來說,把C#語言及其相關(guān)環(huán)境.NET Framework描述為多年來最重要的新技術(shù)一點(diǎn)都不夸張。.NET提供了一種新環(huán)境。在這個(gè)環(huán)境中,可以開發(fā)出運(yùn)行在Windows上的幾乎所有應(yīng)用程序,而C#是專門用于.NET的新編程語言。例如,使用C#可以編寫出動(dòng)態(tài)Web頁面、XML Web服務(wù)、分布式應(yīng)用程序的組件、數(shù)據(jù)庫訪問組件或傳統(tǒng)的Windows桌面應(yīng)用程序。本書介紹.NET Framework 1.1,即.NET Framework的第2版,但本書的大部分內(nèi)容也適用于.NET Framework 1.0。如果使用1.0版本進(jìn)行編碼,就需要作一些修改,本書將在需要修改的地方指出要修改的內(nèi)容。    不要被.NET這個(gè)名稱所愚弄,這個(gè)名稱僅強(qiáng)調(diào)Microsoft相信分布式應(yīng)用程序是未來的趨勢,即處理過程分布在客戶機(jī)和服務(wù)器上,但C#不僅僅是編寫Internet或與網(wǎng)絡(luò)相關(guān)的應(yīng)用程序的一種語言,它還提供了一種編寫Windows平臺(tái)上幾乎任何類型的軟件或組件的方式。另外,C#和.NET都對編寫程序的方式進(jìn)行了革新,更易于實(shí)現(xiàn)在Windows上編程。    這是一個(gè)相當(dāng)重要的聲明。畢竟,我們都知道計(jì)算機(jī)技術(shù)的發(fā)展速度非???,每年Microsoft都會(huì)推出新軟件、新的編程工具或Windows的新版本,并宣稱這些對開發(fā)人員都非常有用,.NET和C#也不例外。    .NET和C#的重要性    為了理解.NET的重要性,考慮一下近10年來出現(xiàn)的許多Windows技術(shù)的本質(zhì)會(huì)有一定的幫助。盡管所有的Windows操作系統(tǒng)在表面上看來完全不同,但從Windows 3.1(1992年)到Windows Server 2003,在內(nèi)核上都有相同的Windows API。在我們轉(zhuǎn)而使用Windows的新版本時(shí),API中增加了非常多的新功能,但這是一個(gè)演化和擴(kuò)展API的過程,并非是替換它。    開發(fā)Windows軟件所使用的許多技術(shù)和架構(gòu)也是這樣。例如,COM (Component Object Model,組件對象模型)是作為OLE (Object Linking and Embedding,對象鏈接和嵌入)開發(fā)出來的,那時(shí),它在很大程度上僅是把不同類型的辦公文檔鏈接在一起,所以利用它可以把一個(gè)小Excel電子表格放在Word文檔中。之后,它逐步演化為COM、DCOM (Distributed COM,分布式組件對象模型)和最終的COM+。COM+是一種復(fù)雜的技術(shù),它是幾乎所有組件通信方式的基礎(chǔ),實(shí)現(xiàn)了事務(wù)處理、消息傳輸服務(wù)和對象池。    Microsoft選擇這條道路的原因非常明顯:它關(guān)注向后的兼容性。在過去的這些年中,第三方廠商編寫了相當(dāng)多的Windows軟件,如果Microsoft每次都引入一項(xiàng)不遵循現(xiàn)有代碼基礎(chǔ)的新技術(shù),Windows就不會(huì)獲得今天的成功。    向后兼容性是Windows技術(shù)的極其重要的特性,也是Windows平臺(tái)的一個(gè)長處,但它有一個(gè)很大的缺點(diǎn)。每次某項(xiàng)技術(shù)進(jìn)行演化,增加了新功能后,都會(huì)比它以前更復(fù)雜。很明顯,對此必須進(jìn)行改進(jìn)。Microsoft不可能一直擴(kuò)展這些開發(fā)工具和語言,使它們越來越復(fù)雜,既要保證能跟上最新硬件的發(fā)展步伐,又要與20世紀(jì)90年代初開始流行的Windows產(chǎn)品向后兼容。如果要得到一種簡單而專業(yè)化的語言、環(huán)境和開發(fā)工具,讓開發(fā)人員輕松地編寫優(yōu)秀的軟件,就需要一種新的開端。    這就是C#和.NET的作用。粗略地說,.NET是一種在Windows上編程的新架構(gòu)—— 一種新API。C#是一種新語言,它可以利用.NET Framework及其開發(fā)環(huán)境中的所有新特性,以及在最近20年來出現(xiàn)的面向?qū)ο蟮木幊谭椒ā?   在繼續(xù)介紹前,必須先說明,向后兼容性并沒有在這個(gè)演化進(jìn)程中失去。現(xiàn)有的程序仍可以使用,.NET也兼容現(xiàn)有的軟件。軟件組件在Windows上的通信,現(xiàn)在幾乎都是使用COM實(shí)現(xiàn)的。因此,.NET能夠提供現(xiàn)有COM組件的包裝器(wrapper),以便.NET組件與之通信。    Microsoft已經(jīng)擴(kuò)展了C++,提供了一種新語言J#,還對VB進(jìn)行了很多改進(jìn),把它轉(zhuǎn)變成為功能更強(qiáng)大的VB.NET,并允許把用這些語言編寫的代碼用于.NET環(huán)境。但這些語言都因有多年演化的痕跡,所以不能完全用現(xiàn)在的技術(shù)來編寫。    本書將介紹C#編程技術(shù),同時(shí)提供.NET體系結(jié)構(gòu)工作原理的必要背景知識。我們不僅會(huì)介紹C#語言的基礎(chǔ),還會(huì)給出使用各種相關(guān)技術(shù)的應(yīng)用程序示例,包括數(shù)據(jù)庫訪問、動(dòng)態(tài)的Web頁面、先進(jìn)的圖形技術(shù)和目錄訪問等。惟一的要求是用戶至少熟悉一門在Windows上使用的高級語言,例如C++、VB或J++。 .NET的優(yōu)點(diǎn)    前面闡述了.NET的優(yōu)點(diǎn),但并沒有說它會(huì)使開發(fā)人員的工作更易于完成。在本節(jié)中,我們將簡要討論.NET的改進(jìn)特性。    ●    面向?qū)ο蟮木幊蹋?NET Framework和C#從一開始就完全是基于面向?qū)ο蟮摹?   ●    優(yōu)秀的設(shè)計(jì):一個(gè)基類庫,它是以一種非常直觀的方式設(shè)計(jì)出來的。    ●    語言的無關(guān)性:在.NET中,VB.NET、C#、J#和Managed C++等語言都可以編譯為通用的中間語言(Intermediate Language)。這說明,語言可以用以前沒有的方式交互操作。    ●    對動(dòng)態(tài)Web頁面的支持:ASP具有很大的靈活性,但效率不是很高,這是因?yàn)樗褂昧私忉屝缘哪_本語言,且缺乏面向?qū)ο蟮脑O(shè)計(jì),從而導(dǎo)致ASP代碼比較凌亂。.NET使用一種新技術(shù)ASP.NET,它為Web頁面提供了一種集成式的支持。使用ASP.NET,可以編譯頁面中的代碼,這些代碼還可以使用.NET高級語言來編寫,例如C#、J#或VB.NET。    ●    高效的數(shù)據(jù)訪問:一組.NET組件,總稱為ADO.NET,提供了對關(guān)系數(shù)據(jù)庫和各種數(shù)據(jù)源的高效訪問。這些組件也可以訪問文件系統(tǒng)和目錄。.NET內(nèi)置了XML支持,可以處理從非Windows平臺(tái)導(dǎo)入或?qū)С龅臄?shù)據(jù)。    ●    代碼共享:.NET引入了程序集的概念,替代了傳統(tǒng)的DLL,可以完美無暇地修補(bǔ)代碼在應(yīng)用程序之間的共享方式。程序集有解決版本沖突的正式系統(tǒng),程序集的不同版本可以同時(shí)存在。     ●    增強(qiáng)的安全性:每個(gè)程序集還可以包含內(nèi)置的安全信息,這些信息可以準(zhǔn)確地指出誰或哪種類型的用戶或進(jìn)程可以調(diào)用什么類的哪些方法。這樣就可以非常準(zhǔn)確地控制程序集的使用方式。    ●    對安裝沒有任何影響:有兩種類型的程序集,分別是共享程序集和私有程序集。共享程序集是可用于所有軟件的公共庫,私有程序集只用于某個(gè)軟件。私有程序集功能完備,所以安裝過程非常簡單,沒有注冊表項(xiàng),只需把相應(yīng)的文件放在文件系統(tǒng)的相應(yīng)文件夾中即可。    ●    Web服務(wù)的支持:.NET集成了對開發(fā)Web服務(wù)的完全支持,用戶可以開發(fā)出任何類型的應(yīng)用程序。    ●    Visual Studio .NET 2003:.NET附帶了一個(gè)開發(fā)環(huán)境Visual Studio .NET,它可以很好地利用C++、C#、J#、VB.NET和ASP.NET進(jìn)行代碼編寫。Visual Studio .NET集成了Visual Studio 6環(huán)境中各種語言專用的所有最佳功能。    ●    C#:是使用.NET的一種面向?qū)ο蟮男抡Z言。    第1章將詳細(xì)討論.NET體系結(jié)構(gòu)的優(yōu)點(diǎn)。    .NET Framework 1.1中的新增特性    .NET Framework的第1版(1.0版)在2002年發(fā)布,贏得了許多人的喝彩。.NET Framework的最新版本1.1在2003年發(fā)布,它被認(rèn)為是對該架構(gòu)進(jìn)行了較小的改進(jìn)。即使是較小的改進(jìn),新版本仍有一些非常明顯的變化和新增的內(nèi)容,值得我們探討一番。    在對.NET Framework 1.1版本進(jìn)行的所有改進(jìn)中,Microsoft試圖確保對使用1.0版本編寫的代碼改動(dòng)盡可能少。即使做了這樣的努力,但在新版本中仍有一些顯著的變化。許多代碼的改進(jìn)是為了增強(qiáng)安全性。讀者可以在Microsoft的GotDotNet Web站點(diǎn)(http://www.gotdotnet.com)上查看完整的改進(jìn)列表。    下面詳細(xì)論述.NET Framework 1.1版本中的一些改進(jìn)和Visual Studio .NET 2003(.NET Framework 1.1的開發(fā)環(huán)境)的新增特性。 可移動(dòng)性    在使用.NET Framework 1.0和Visual Studio .NET 2002時(shí),要?jiǎng)?chuàng)建可移動(dòng)應(yīng)用程序,就必須下載Microsoft Mobile Internet Toolkit(MMIT)。而現(xiàn)在,有了.NET Framework 1.1和Visual Studio .NET 2003,就可以直接創(chuàng)建可移動(dòng)應(yīng)用程序,不需要下載其他工具包了。    在使用Visual Studio .NET 2003創(chuàng)建新項(xiàng)目時(shí),這是顯而易見的。例如,在查看可以創(chuàng)建的C#項(xiàng)目類型列表時(shí),會(huì)看到ASP.NET Mobile Web Application和Smart Device Application。ASP.NET Mobile Web Application項(xiàng)目類型可以用于建立基于Web的可移動(dòng)應(yīng)用程序。Smart Device Application項(xiàng)目類型可以創(chuàng)建用于Pocket PC或其他Windows CE設(shè)備的應(yīng)用程序。為Windows CE設(shè)備建立的第三方客戶應(yīng)用程序利用的是Compact Framework,這是.NET Framework的刪節(jié)版本。    打開任何一種可移動(dòng)項(xiàng)目類型,系統(tǒng)就會(huì)在Visual Studio .NET工具箱中列出一組可用的可移動(dòng)服務(wù)器控件,然后用戶就可以使用這些控件創(chuàng)建應(yīng)用程序。 新的數(shù)據(jù)提供程序    在新的架構(gòu)中,另一個(gè)大的變化是ADO.NET。ADO.NET是訪問和處理數(shù)據(jù)的.NET方式,現(xiàn)在它有兩個(gè)新的數(shù)據(jù)提供程序,其中一個(gè)用于ODBC,另一個(gè)用于Oracle。    在使用.NET Framework 1.0時(shí),就可以使用ODBC數(shù)據(jù)提供程序,但它需要單獨(dú)下載。另外,一旦下載,這個(gè)數(shù)據(jù)提供程序的命名空間就是Microsoft.Data.Odbc。    而在.NET Framework 1.1中,ODBC數(shù)據(jù)提供程序是內(nèi)置的,不需要單獨(dú)下載。而且可以通過System.Data.Odbc命名空間來使用ODBC數(shù)據(jù)源,訪問ODBC數(shù)據(jù)連接、數(shù)據(jù)適配器和數(shù)據(jù)讀取器對象。    另一個(gè)新的數(shù)據(jù)提供程序用于處理Oracle數(shù)據(jù)庫。該數(shù)據(jù)庫在企業(yè)中的應(yīng)用非常廣泛,缺乏Oracle數(shù)據(jù)提供程序常常是.NET進(jìn)入企業(yè)的一大障礙。為了使用這個(gè)新的數(shù)據(jù)提供程序,需要在項(xiàng)目中引用System.Data.OracleClient命名空間。 新的語言:Visual J#     在安裝Visual Studio .NET 2003時(shí),注意該版本提供了一種新語言Visual J#,可用于建立.NET應(yīng)用程序。在此版本之前,Visual Studio .NET 2002需要單獨(dú)安裝該語言。Visual J#簡稱為J#(讀作J-Sharp),是Visual J++語言的新版本。它非常類似于Java語言,Java開發(fā)人員通過它將很容易遷移到.NET中。J#開發(fā)人員將使用.NET類庫來代替Java運(yùn)行   時(shí)庫。    在.NET平臺(tái)上,J#開發(fā)人員將擁有與C#開發(fā)人員相同的能力。使用J#,也可以建立.NET類、Windows窗體應(yīng)用程序、ASP.NET Web應(yīng)用程序和XML Web服務(wù)。另外,還可以像使用其他.NET兼容語言那樣,以跨語言的方式使用J#。例如,可以創(chuàng)建一個(gè)J#類,并在C#應(yīng)用程序中使用這個(gè)J#類,或者可以創(chuàng)建一個(gè)C#類,并在J#應(yīng)用程序中使用這個(gè)C#類。 與其他語言一樣,在.NET Framework中也有用于J#的內(nèi)置編譯器。所有的編譯器都位于C:\Windows\Microsoft .NET\Framework\v1.1.xxxx目錄下。C#的編譯器是csc.exe,VB.NET的編譯器是vbc.exe,J#的編譯器是vjc.exe。 并發(fā)執(zhí)行    并發(fā)執(zhí)行side-by-side execution是指在同一個(gè)服務(wù)器上運(yùn)行應(yīng)用程序的多個(gè)版本,其中不同的應(yīng)用程序版本使用不同的運(yùn)行庫版本。Microsoft一直都向開發(fā)人員承諾提供這個(gè)功能,但該功能總是很難可視化,因?yàn)橹荒苁褂肍ramework的一個(gè)版本。在發(fā)布了Framework的第2版.NET Framework 1.1后,就可以看到Microsoft提供的這個(gè)功能了。現(xiàn)在,可以創(chuàng)建.NET應(yīng)用程序面向.NET Framework 1.1的新版本,同時(shí)還可以讓面向.NET Framework 1.0的舊應(yīng)用程序像以前那樣繼續(xù)運(yùn)行。 支持Internet Protocol 6(IPv6)    最近,許多Internet使用IP 4運(yùn)行,IP4也稱為IPv4。它提供了IP地址,例如255.255.255. 255。.NET Framework 1.1現(xiàn)在支持IPv6,IPv6是在1995年創(chuàng)建的,解決了IPv4所面臨的許多問題。如果人們一直采用IPv4,將很快用盡可用的IP地址。    .NET Framework 1.1通過System.Net命名空間支持IPv6,ASP.NET和XML Web服務(wù)也支持IPv6。    Visual Studio .NET 2003的改進(jìn)    在升級.NET Framework時(shí),還對Visual Studio .NET本身進(jìn)行了升級。注意,在開始頁面上有一些新圖形,該頁面上對象的組織方式也有所不同。另外,新IDE最重大的變化是,一旦安裝,就不是簡單地把Visual Studio .NET 2002升級為Visual Studio .NET 2003,而是安裝了一個(gè)全新的IDE版本。如果機(jī)器上已經(jīng)安裝了Visual Studio .NET 2002,就會(huì)得到兩個(gè)完全獨(dú)立的VS.NET IDE。這樣,如果要?jiǎng)?chuàng)建和使用面向.NET Framework 1.0的應(yīng)用程序,就使用VS.NET 2002;如果要?jiǎng)?chuàng)建和使用面向.NET Framework 1.1的應(yīng)用程序,就使用VS.NET 2003。    還應(yīng)注意,在打開用VS.NET 2002創(chuàng)建的項(xiàng)目時(shí),系統(tǒng)會(huì)詢問是否要把項(xiàng)目升級為VS.NET 2003項(xiàng)目,如果回答“是”,就會(huì)把項(xiàng)目升級為面向.NET Framework 1.1的應(yīng)用程序。注意,這是一個(gè)不可逆的過程。    除了這些較大的變化之外,在VS.NET 2003的IDE中,Intellisense的智能化程度更高,代碼自動(dòng)完成功能更強(qiáng)。本書將使用IDE的這個(gè)版本。 C#的優(yōu)點(diǎn)    C#在某種程度上可以看作是.NET面向Windows環(huán)境的一種編程語言。在過去的十幾年里,Microsoft給Windows和 Windows API添加了許多功能,VB和C++也經(jīng)歷了許多變化。雖然VB和C++最終已成為非常強(qiáng)大的語言,但這兩種語言也存在問題,因?yàn)樗鼈儽A袅嗽瓉淼囊恍﹥?nèi)容。    對于Visual Basic來說,它的主要優(yōu)點(diǎn)是很容易理解,許多編程工作都很容易完成,基本上隱藏了Windows API和COM組件結(jié)構(gòu)的內(nèi)涵。其缺點(diǎn)是Visual Basic從來沒有實(shí)現(xiàn)真正意義上的面向?qū)ο?,所以大型?yīng)用程序很難分解和維護(hù)。另外,因?yàn)閂B的語法繼承于BASIC的早期版本(BASIC主要是為了讓初學(xué)者更容易理解,而不是為了編寫大型商業(yè)應(yīng)用程序),所以不能真正成為結(jié)構(gòu)化或面向?qū)ο蟮木幊陶Z言。    另一方面,C++在ANSI C++語言定義中有其自己的根。它與ANSI不完全兼容,因?yàn)镸icrosoft是在ANSI定義標(biāo)準(zhǔn)化之前編寫C++編譯器的,但已經(jīng)相當(dāng)接近了。遺憾的是,這導(dǎo)致了兩個(gè)問題。其一,ANSI C++是在十幾年前的技術(shù)條件下開發(fā)的,因此不支持現(xiàn)在的概念(例如Unicode字符串和生成XML文檔),某些古老的語法結(jié)構(gòu)是為以前的編譯器設(shè)計(jì)的(例如成員函數(shù)的聲明和定義是分開的)。其二,Microsoft同時(shí)還試圖把C++演變?yōu)橐环N用于在Windows上執(zhí)行高性能任務(wù)的語言—— 在語言中避免添加大量Microsoft專用的關(guān)鍵字和各種庫。其結(jié)果是在Windows中,該語言成為了一種非常雜亂的語言。讓一個(gè)C++開發(fā)人員說說字符串有多少個(gè)定義方式就可以說明這一點(diǎn):char*、LPTSTR、string、CString (MFC 版本)、CString (WTL 版本)、wchar_t*和 OLECHAR*等。    現(xiàn)在進(jìn)入.NET時(shí)代—— 一種全新的環(huán)境,它對這兩種語言都進(jìn)行了新的擴(kuò)展。Microsoft給C++添加了許多Microsoft專用的關(guān)鍵字,并把VB演變?yōu)閂B.NET,保留了一些基本的VB語法,但在設(shè)計(jì)上完全不同,從實(shí)際應(yīng)用的角度來看,VB.NET是一種新語言。    在這里,Microsoft決定給開發(fā)人員另一個(gè)選擇—— 專門用于.NET、具有新起點(diǎn)的語言, 即Visual C# .NET。Microsoft在正式場合把C#描述為一種簡單、現(xiàn)代、面向?qū)ο?、類型非常安全、派生于C和C++的編程語言。大多數(shù)獨(dú)立的評論員對其說法是“派生于C、 C++ 和Java”。這種描述在技術(shù)上是非常準(zhǔn)確的,但沒有涉及到該語言的真正優(yōu)點(diǎn)。從語法上看,C#非常類似于C++和Java,許多關(guān)鍵字都是相同的,C#也使用類似于C++和Java的塊結(jié)構(gòu),并用括號({})來標(biāo)記代碼塊,用分號分隔各行語句。對C#代碼的第一印象是它非常類似于C++或Java代碼。但在這些表面上的類似性后面,C#學(xué)習(xí)起來要比C++容易得多,但比Java難一些。其設(shè)計(jì)與現(xiàn)代開發(fā)工具的適應(yīng)性要比其他語言更高,它同時(shí)具有Visual Basic的易用性、高性能以及C++的低級內(nèi)存訪問性。C#包括以下一些特性:    ●    完全支持類和面向?qū)ο缶幊?,包括接口和繼承、虛函數(shù)和運(yùn)算符重載的處理。    ●    定義完整、一致的基本類型集。    ●    對自動(dòng)生成XML文檔說明的內(nèi)置支持。    ●    自動(dòng)清理動(dòng)態(tài)分配的內(nèi)存。    ●    可以用用戶定義的特性來標(biāo)記類或方法。這可以用于文檔說明,對編譯有一定的影響(例如,把方法標(biāo)記為只在調(diào)試時(shí)編譯)。    ●    對.NET基類庫的完全訪問權(quán),并易于訪問Windows API。    ●    可以使用指針和直接內(nèi)存訪問,但C#語言可以在沒有它們的條件下訪問內(nèi)存。    ●    以VB的風(fēng)格支持屬性和事件。    ●    改變編譯器選項(xiàng),可以把程序編譯為可執(zhí)行文件或.NET組件庫,該組件庫可以用與ActiveX控件(COM組件)相同的方式由其他代碼調(diào)用。    ●    C#可以用于編寫ASP.NET動(dòng)態(tài)Web頁面和XML Web服務(wù)。    應(yīng)該指出,對于上述大多數(shù)特性,VB.NET和Managed C++也具備。但C#從一開始就使用.NET,對.NET特性的支持不僅是完整的,而且提供了比其他語言更合適的語法。C#語言本身非常類似于Java,但其中有一些改進(jìn),因?yàn)镴ava并不是為應(yīng)用于.NET環(huán)境而設(shè)計(jì)的。    在結(jié)束這個(gè)主題前,還要指出C#的兩個(gè)局限性。其一是該語言不適用于編寫時(shí)間急迫或性能非常高的代碼,例如一個(gè)要運(yùn)行1000或1050次的循環(huán),并在不需要這些循環(huán)時(shí),立即清理它們所占用的資源。在這方面,C++可能仍是所有低級語言中的佼佼者。其二是C#缺乏性能極高的應(yīng)用程序所需要的關(guān)鍵功能,包括保證在代碼的特定地方運(yùn)行的內(nèi)聯(lián)函數(shù)和析構(gòu)函數(shù)。但這類應(yīng)用程序非常少。 編寫和運(yùn)行C#代碼需要的環(huán)境    .NET運(yùn)行在Windows 98、2000、XP和2003上,要使用.NET編寫代碼,需要安裝.NET  SDK,除非使用內(nèi)置了.NET Framework 1.0和1.1的Windows Server 2003。除非要使用文本編輯器或其他第三方開發(fā)環(huán)境來編寫C#代碼,否則一般使用Visual Studio .NET 2003。運(yùn)行托管代碼不需要安裝完整的SDK,但需要.NET運(yùn)行庫。需要把.NET運(yùn)行庫分布到還沒有安裝它的客戶機(jī)上。 本書的內(nèi)容    在本書中,首先在第1章介紹.NET的整體結(jié)構(gòu)體系,給出編寫托管代碼需要的背景知識,此后本書分幾部分介紹C#語言及其在各個(gè)領(lǐng)域中的應(yīng)用。    第一部分(第1~11章)—— C#語言    本部分給出C#語言的背景知識。這部分沒有指定任何語言,但假定讀者是有經(jīng)驗(yàn)的編程人員。首先介紹 C#基本語法和數(shù)據(jù)類型,再介紹C#的面向?qū)ο筇匦?,之后是C#中的一些高級   論題。    第二部分(第12~18章)—— .NET環(huán)境    在本部分中,介紹在.NET環(huán)境中的編程規(guī)則。特別是Visual Studio .NET、安全性、.NET應(yīng)用程序的線程部署,以及把庫生成為程序集的方式。    第三部分(第19~20章)—— Windows窗體    本部分討論傳統(tǒng)Windows應(yīng)用程序的創(chuàng)建,在.NET中這種應(yīng)用程序稱為Windows窗體。Windows窗體是應(yīng)用程序的客戶版本,使用.NET創(chuàng)建這些類型的應(yīng)用程序是實(shí)現(xiàn)該任務(wù)的一種快捷、簡單的方式。除了介紹Windows窗體之外,我們還將論述GDI+,這種技術(shù)可用于創(chuàng)建包含高級圖形的應(yīng)用程序。    第四部分(第21~24章)—— 數(shù)據(jù)    這部分介紹如何使用ADO.NET訪問數(shù)據(jù)庫,以及目錄和Active Directory交互。我們還詳細(xì)說明.NET對XML的支持,以及對Windows操作系統(tǒng)的支持。    第五部分(第25~27章)—— Web編程    這一部分介紹如何編寫在網(wǎng)站上運(yùn)行的組件,如何編寫網(wǎng)頁。其中包括ASP.NET的使用和Web服務(wù)程序的編寫。    第六部分(第28~29章)—— 交互操作    COM的向后兼容性是.NET的一個(gè)重要組成部分,COM+負(fù)責(zé)事務(wù)處理、對象池和消息的排隊(duì)。本部分將介紹.NET對處理COM和COM+的支持,并討論如何編寫與這些技術(shù)交互的C#代碼。    第七部分(第30~32章)—— Windows基本服務(wù)    本部分是本書主要內(nèi)容的總結(jié),介紹如何訪問文件和注冊表,如何通過應(yīng)用程序訪問Internet,以及如何使用Windows服務(wù)。    第八部分—— 附錄(本書僅提供內(nèi)容下載地址)    本部分包含幾個(gè)附錄,詳細(xì)介紹了面向?qū)ο蟮木幊桃?guī)則及C#編程語言專用的信息。這些附錄在本書中并未給出,您可以通過本書提及的Web站點(diǎn)http://www.wrox.com獲得其PDF版本。 如何下載本書的示例代碼    在您學(xué)習(xí)本書的示例時(shí),可以選擇手工輸入所有的代碼,也可以使用與本書有關(guān)的源代碼文件。本書所有的源代碼都可以從http://www.wrox.com/上下載。在您登錄到這個(gè)站點(diǎn)時(shí),只需使用Search工具或使用書名列表就可以找到本書。接著單擊本書信息頁面上的Download Code鏈接,就可以獲得所有的源代碼。 提示:    許多圖書的書名都很相似,所以通過ISBN查找本書是最簡單的,本書的ISBN是0-7645-5759-9。 下載了代碼后,就可以使用自己喜歡的解壓縮工具對它進(jìn)行解壓縮。另外,也可以進(jìn)入Wrox代碼的主下載頁面http://www.wrox.com/dynamic/books/download.aspx,查看本書所用的代碼和其他Wrox圖書。 勘誤表    盡管我們已經(jīng)盡了各種努力來保證本書不出現(xiàn)錯(cuò)誤,但是錯(cuò)誤總是在所難免,如果您在本書中找到了錯(cuò)誤,例如拼寫錯(cuò)誤或代碼錯(cuò)誤,請告訴我們,我們將不勝感激。通過勘誤表,可以讓其他讀者避免受挫,當(dāng)然,這還有助于提供更高質(zhì)量的信息。    要在網(wǎng)站上找到本書的勘誤表,可以登錄http://www.wrox.com,通過Search工具或書名列表查找本書 ,然后在本書的信息頁面上,單擊Book Errata鏈接。在這個(gè)頁面上,可以查看已經(jīng)提交并通過編輯檢查的所有勘誤。包含每本書的錯(cuò)誤勘誤表鏈接的完整圖書列表可通過http://www.wrox.com/misc-pages/booklist.shtml獲得。 如果沒有在Book Errata頁面上找到自己發(fā)現(xiàn)的錯(cuò)誤,可以進(jìn)入http://www.wrox.com/ contact/techsupport.shtml,填寫其上的表單,將您發(fā)現(xiàn)的錯(cuò)誤發(fā)送給我們。我們會(huì)檢查您的信息,如果正確,就把它上傳到該書的勘誤表頁面上,或在本書的后續(xù)版本中采用。 p2p.wrox.com    P2P郵件列表是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox.com上加入P2P論壇。該論壇是一個(gè)基于Web的系統(tǒng),用于傳送與Wrox圖書相關(guān)的信息和相關(guān)技術(shù),與其他讀者和技術(shù)用戶交流。該論壇提供了訂閱功能,當(dāng)論壇上有新貼子時(shí),會(huì)給您發(fā)送您選擇的主題。Wrox作者、編輯和其他業(yè)界專家和讀者都會(huì)在這個(gè)論壇上進(jìn)行討論。    在http://p2p.wrox.com上有許多不同的論壇,幫助讀者閱讀本書,在讀者開發(fā)自己的應(yīng)用程序時(shí),也可以從這個(gè)論壇中獲益。要加入這個(gè)論壇,需執(zhí)行下面的步驟:    (1) 進(jìn)入p2p.wrox.com,單擊Register鏈接。    (2) 閱讀其內(nèi)容,單擊Agree按鈕。    (3) 提供加入論壇所需的信息及愿意提供的可選信息,單擊Submit按鈕。    然后就可以收到一封電子郵件,其中的信息描述了如何驗(yàn)證賬戶,完成加入過程。 提示:    不加入P2P也可以閱讀論壇上的信息,但只有加入論壇后,才能發(fā)送自己的信息。   加入論壇后,就可以發(fā)送新信息,回應(yīng)其他用戶的貼子??梢噪S時(shí)在Web上閱讀信息。如果希望某個(gè)論壇給自己發(fā)送新信息,可以在論壇列表中單擊該論壇對應(yīng)的Subscribe to this Forum圖標(biāo)。    對于如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題解答。要閱讀FAQ,可以單擊任意P2P頁面上的FAQ鏈接。

作者簡介

李敏波,2001年獲清華大學(xué)工學(xué)博士,隨后在新加坡國立大學(xué)從事協(xié)同產(chǎn)品設(shè)計(jì)與門戶的博士后研究。2002年至2004年在金蝶軟件(中國)公司中央研究院擔(dān)任高級研究員?,F(xiàn)任復(fù)旦大學(xué)軟件學(xué)院零售與分銷管理系統(tǒng)研究中心的副主任,從事教學(xué)與科研工作。

書籍目錄

第1章  .NET體系結(jié)構(gòu)   第2章  C#基礎(chǔ)    第3章  對象和類型    第4章  繼承    第5章  運(yùn)算符和類型強(qiáng)制轉(zhuǎn)換    第6章  委托和事件    第7章  內(nèi)存管理和指針    第8章  字符串和正則表達(dá)式    第9章  集合    第10章  反射   第11章  錯(cuò)誤和異常    第12章  Visual Studio.NET    第13章  程序集    第14章  .NET的安全性    第15章  線程    第16章  使用.NET Remoting的分布式應(yīng)用程序    第17章  本地化    第18章  部署    第19章  Windows窗體    第20章  使用GDI+繪圖    第21章  .NET數(shù)據(jù)訪問    第22章  查看.NET數(shù)據(jù)    第23章  處理XML    第24章  使用Active Directory    第25章  ASP.NET頁面    第26章  Web服務(wù)    第27章  用戶控件和定制控件    第28章  COM的互操作性    第29章  Enterprise Services    第30章  文件和注冊表操作    第31章  訪問Internet    第32章  Windows服務(wù)

媒體關(guān)注與評論

  C#與.NET為在Windows平臺(tái)上編程提供了一個(gè)全新的開發(fā)環(huán)境,在此環(huán)境中幾乎可以開發(fā)出所有基于Windows和Web的應(yīng)用程序。本書全面介紹了C#的編程知識,同時(shí)提供了理解.NET體系結(jié)構(gòu)工作原理所必需的背景知識,相對前兩個(gè)版本新增了應(yīng)用程序的部署和本地化等內(nèi)容?! ”緯情_發(fā)人員必備的C#參考資料,是C#和.NET用戶的良師益友。通過對本書的學(xué)習(xí),您將對C#語言的各個(gè)方面有深入細(xì)致的理解,能夠在.NET環(huán)境中應(yīng)用C#,構(gòu)建Windows窗體,用ADO.NET訪問數(shù)據(jù)庫,用ASP.NET編寫組件,利用.NET為COM和COM+提供支持等。  本書主要內(nèi)容:  ·使用面向?qū)ο蟮腃#語言編程;  ·使用C#處理XML的方法;  ·集成COM、COM+和Active Directory;  ·編寫Windows應(yīng)用程序和Windows服務(wù);  ·使用.NET Remoting技術(shù)開發(fā)分布式應(yīng)用程序;  ·理解.NET程序集;  ·用C#創(chuàng)建圖形;  ·控制.NET安全性的方式;  本書讀者對象:  本書適用于已具有C++、Visual Basic或J++編程經(jīng)驗(yàn)的開發(fā)人員,也適合那些希望深入學(xué)習(xí)的C#初級程序員。

編輯推薦

  提升您的編程技能,完善您的職業(yè)生涯。本書全面介紹了C#的編程知識,同時(shí)提供了理解.NET體系結(jié)構(gòu)工作原理所必需的背景知識,新增了應(yīng)用程序的部署和本地化等內(nèi)容。通過對本書的學(xué)習(xí),您將對C#,構(gòu)建Windows窗體,用ADO.NET訪問數(shù)據(jù)庫,用ASP.NET編寫組件,利用.NET為COM和COM+提供支持。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    C#高級編程 PDF格式下載


用戶評論 (總計(jì)10條)

 
 

  •   品質(zhì)非常好,是學(xué)習(xí)C#極好的參考手冊。不清楚為什么都要關(guān)注裝訂問題,一本書我們買的是知識又不是紙張,而且我的書看了一年多了也不怎么精心但現(xiàn)在沒掉一頁。
  •   質(zhì)量不夠好...翻了幾下就散了.懶得換放了好久拉
  •   還沒看,相信是本好書~~~~~~~~~~~~~
  •   書很好,較為深入,就是裝訂質(zhì)量太有問題了,買了一個(gè)月書頁就脫落了100多頁,麻煩啊!
  •   掉了幾頁。書是好書。值得看值得買呀
  •   是本好書,可惜我為什么不買第四版???現(xiàn)在后悔死了,應(yīng)該買第四版的,現(xiàn)在的.NET我一直在使用2.0的。所以應(yīng)該買第四版的。不過,聽說.NET3.0可能也快要出來了,也許明年就要買第五版了。呵呵
  •   這本書的裝訂真的很差,剛看了三章前面的就都脫落了
  •   沒看完一章,就散架了,紙一摞一摞往下掉。去換書經(jīng)不起這個(gè)折騰.
  •   這本書我還沒用多久就發(fā)現(xiàn)已經(jīng)脫頁了。
  •   這本書的裝訂太差,我才看了一小半,就成了幾截,不得興趣再看下去!換書又煩,只有認(rèn)哦!希望當(dāng)當(dāng)能注意!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7