前 言
C#是Microsoft于2000年7月推出.NET Framework的第1版時提供的一種全新語言。C#從那時起迅速流行開來,成為使用.NET Framework的桌面和Web開發人員無可爭議的選擇。他們喜歡C#的一個原因是其派生于C/C++的簡潔明了的語法,這種語法簡化了以前一些給程序員帶來困擾的問題。盡管做了這些簡化,但C#仍保持了C++原有的功能,所以現在沒理由不從C++轉向C#。C#語言并不難,也非常適合于學習基本編程技術。易于學習,再加上.NET Framework的功能,使C#成為開始您編程生涯的絕佳方式。
C#的最新版本C# 5是.NET Framework 4.5的一部分,它建立在已有的成功基礎之上,還添加了一些更吸引人的功能。Visual Studio的最新版本Visual Studio 2012和開發工具的Visual Studio Express 2012系列也有許多變化和改進,這大大簡化了編程工作,顯著提高了效率。
本書將全面介紹C#編程的所有知識,從該語言本身一直到桌面和Web編程,再到數據源的使用,最后是一些新的高級技術。我們還將學習Visual Studio 2012的功能和利用它開發應用程序的各種方式。
本書文筆優美流暢,闡述清晰,每一章都以前面章節的內容為基礎,便于讀者掌握高級技術。每個概念都會根據需要來介紹和討論,而不會突然冒出某個技術術語來妨礙讀者的閱讀和理解。本書盡量減少使用的技術術語數量,但如果需要,將根據上下文進行正確的定義和布置。
本書的作者都是各自領域的專家,都是C#語言和.NET Framework的愛好者,沒有人比他們更有資格講授C#了,他們將在您掌握從基本規則到高級技術的過程中為您保駕護航。除了基礎知識外,本書還有許多有益的提示、練習、完全成熟的示例代碼(可從p2p.wrox.com上下載),在您的職業生涯中一定會反復用到它們。
本書將毫無保留地傳授這些知識,希望讀者能通過閱讀本書成為最優秀的程序員。
0.1 本書讀者對象
本書主要針對想學習如何使用.NET Framework編寫C#程序的所有人。本書針對的是想要通過學習一種干凈、現代、優雅的編程語言來掌握程序設計的完完全全的初學者。但是,對于熟悉其他語言、想要探索.NET平臺的人們,以及想要了解Microsoft .NET使用的旗艦語言的.NET開發人員,本書同樣有用。
0.2 本書內容
本書前面的章節介紹該語言本身,讀者不需要具備任何編程經驗。以前對其他語言有一定了解的開發人員,會覺得這些章節的內容非常熟悉。C#語法的許多方面都與其他語言相同,許多結構對所有的編程語言來說都是相通的(例如,循環和分支結構)。但是,即使是有經驗的程序員也可以從這些章節中獲益,理解這些技術應用于C#的特征。
如果讀者是編程新手,就應從頭開始學習,了解基本的編程概念,并熟悉C#和支持C#的.NET平臺。如果讀者對.NET Framework比較陌生,但知道如何編程,就應閱讀第1章,然后快速跳讀后面幾章,這樣就能掌握C#語言的應用方式了。如果讀者知道如何編程,但以前從未接觸過面向對象的編程語言,就應從第8章開始閱讀以后的章節。
如果讀者對C#語言比較了解,就可以集中精力學習那些詳細論述最新.NET Framework和C#語言開發的章節,尤其是集合、泛型和C#語言的新增內容(第11~14章),或者完全跳過本書的第I部分,從第15章開始學習。
本書章節的編排方式可以達到兩個目的:可以按順序閱讀這些章節,將其視為C#語言的一個完整教程;還可以按照需要深入學習這些章節,將其作為一本參考資料。
除核心內容外,從第3章開始,每章末尾還包含一組習題,完成這些習題有助于讀者理解所學的內容。習題包括簡單的選擇題、判斷題以及需要修改或建立應用程序的較難問題。附錄A給出了全部習題的答案,還可在www.wrox.com/remtitle.cgi?isbn=9781118314418上的Download Code部分找到這些習題。
本書特別注重與C# 5、.NET 4.5的一致性。每一章都進行了徹底的檢查,刪掉了不太相關的內容,增加了新材料。所有代碼都在最新版本的開發工具上進行了測試,所有屏幕截圖都在Windows 8上重新截取,以提供最新的窗口和對話框。
盡管我們不喜歡承認失誤,但還是修訂了前幾版中的錯誤,處理了許多其他的讀者評論。我們希望不要出現太多的新錯誤,但一旦發現了錯誤,我們的Web專家就會聯機修改它們。
本版本的亮點包括:
增加并改進了代碼示例。
對桌面應用程序的討論從使用原來的方式(Windows Forms)改為使用新方式(Wiondows Presentation Foundation),讓你緊跟技術的發展。
涵蓋C# 5和.NET 4.5的所有新內容,包括如何創建Windows Store應用程序。
十分合理地介紹高級技術,重點是適合于新手、較容易理解的內容。
0.3 本書結構
本書分為6個部分。
前言:概述本書的內容。
C#語言:介紹了C#語言的所有內容,從基礎知識到面向對象的技術,一應俱全。
Windows編程:介紹如何用C#編寫桌面和Windows Store應用程序,如何部署它們。
Web編程:描述Web應用程序的開發和部署。
數據訪問:介紹如何在應用程序中使用數據,包括存儲在硬盤文件中的數據、以XML格式存儲的數據和數據庫中的數據。
其他技術:講述使用C#和.NET Framework的一些額外方式,包括由.NET 3.0引入然后經.NET 4和.NET 4.5改進的WCF和WF技術。
下面介紹本書5個重要部分中的章節。
0.3.1 C#語言(第1~14章)
第1章介紹C#及其與.NET的關系,了解在這個環境下編程的基礎知識,以及Visual Studio 2012(VS)與它的關系。
第2章開始介紹如何編寫C#應用程序,學習C#的語法,并將C#和示例命令行、Windows應用程序結合起來使用。這些示例將說明C#如何快速輕松地啟動和運行,并附帶介紹VS開發環境以及本書將要使用的基本窗口和工具。
接著將學習C#的基礎知識。第3章介紹變量的含義以及如何操縱它們。第4章將用流程控制(循環和分支)改進應用程序的結構,第5章介紹一些高級變量類型,如數組。第6章開始以函數形式封裝代碼,這樣就更易于執行重復的操作,使代碼更容易讓人理解。
從第7章開始將運用C#語言的基礎知識,調試應用程序。這包括在運行應用程序時輸出跟蹤信息,使用VS查找錯誤,在強大的調試環境中找出解決問題的辦法。
第8章將學習面向對象編程(Object-Oriented Programming,OOP)。首先了解這個術語的含義,回答“什么是對象?”OOP初看起來是較難的問題。我們將用一整章的篇幅來介紹它,解釋對象的強大之處。直到該章的最后才會真正使用C#代碼。
第9章將理論知識應用于實踐,開始在C#應用程序中使用OOP時,這才體現出C#的真正威力。在第9章介紹如何定義類和接口之后,第10章將探討類成員(包括字段、屬性和方法),在這一章的最后將開始創建一個撲克牌游戲應用程序,這個應用程序將在幾章中開發完成,它非常有助于理解OOP。
學習了OOP在C#中的工作原理后,第11章將介紹幾種常見的OOP場景,包括處理對象集合、比較和轉換對象。第12章討論.NET 2.0中C#引入的一個非常有用的特性—— 泛型,利用它可以創建非常靈活的類。第13章通過一些其他技術(主要是事件,它在Windows編程中非常重要)繼續討論C#語言和OOP。最后,第14章介紹C# 3.0、4和5中引入的新特性。
0.3.2 Windows編程(第15~18章)
第15章開始介紹Windows編程概念,理解在VS中如何實現Windows編程。該章主要關注如何使用WPF以圖形化方式構建桌面應用程序,以及用最少的時間和精力創建高級應用程序。你將首先學習WPF編程的基礎知識,然后在該章和第16章逐漸拓展相關知識。第16章介紹了在應用程序中如何使用.NET Framework提供的豐富控件。
第17章介紹了如何創建Windows 8中新增的Windows Store應用程序。Windows Store應用程序是一種令人興奮的新應用程序類型,可以為用戶提供愉悅的全屏體驗。該章還將介紹如何準備應用程序以便在Windows Store中進行銷售。
第18章討論應用程序的部署,包括建立安裝程序,以便用戶快速安裝和運行應用程序。
0.3.3 Web編程(第19~20章)
該部分的結構與桌面編程部分類似。首先,第19章描述了構成最簡單Web應用程序的控件,如何把它們組合在一起,讓它們使用ASP.NET執行任務。接著介紹了更高級的技術、ASP.NET AJAX、各種控件、Web上下文下的狀態管理以及Web標準的遵循。
然后,第20章探討Web應用程序和服務的部署,尤其是可以通過單擊按鈕把應用程序發布到Web上的VS特性。
0.3.4 數據訪問(第21~24章)
第21章介紹了應用程序如何將數據保存到磁盤以及如何檢索磁盤上的數據(作為簡單的文本文件或者更復雜的數據表示方式)。該章還將討論如何壓縮數據,如何操縱舊數據(例如CSV文件),如何監視和處理文件系統的變化。
第22章學習數據交換的事實標準XML。之前的章節接觸過XML幾次,而該章將討論XML的基本規則,論述XML的所有功能。
該部分其余章節介紹LINQ(這是內置于.NET Framework最新版本中的查詢語言)。第23章簡要介紹LINQ。第24章使用LINQ訪問數據庫和其他數據。
0.3.5 其他技術(第25和第26章)
本書最后一部分將討論.NET Framework最新版本中出現的幾項新技術。第25章介紹Windows Communication Foundation(WCF),它為在企業級以編程方式跨本地網絡和Interent訪問信息和功能提供了許多工具。該章將介紹如何以平臺無關的方式使用WCF,向Web應用程序和桌面應用程序公開復雜的數據和功能。
本書最后一章是第26章,介紹了Windows Workflow Foundation(WF),它允許在應用程序中執行工作流功能,因此可以定義一些操作,這些操作由外部的交互操作控制,按特定順序執行,這對許多類型的應用程序都很有幫助。
0.4 使用本書的要求
本書中C#和.NET Framework的代碼和描述都適用于C# 5和.NET 4.5。除了Framework之外,不需要其他東西就可以理解本書的這個方面,但許多示例都需要使用開發工具。本書將Visual Studio 2012作為主要開發工具,但是,如果沒有安裝此工具,可以使用免費的Visual Studio Express 2012產品系列。在本書的第I部分,可使用Visual Studio Express 2012 for Windows Desktop創建桌面和控制臺應用程序。對于其余章節,可使用Visual Studio Express 2012 for Windows 8創建Windows Store應用程序,使用Visual Studio Express for Web創建Web應用程序,并在需要訪問數據庫的應用程序中使用SQL Server Express 2012。一些功能只能在Visual Studio 2012中使用,但這不會妨礙練習本書的示例。
0.5 本書約定
為了幫助讀者在閱讀本書的過程中獲取最多信息,并隨時了解當前處理的事項,本書使用了許多約定。
本書通過兩種方式來顯示代碼:
對于大多數代碼示例,使用沒有突出顯示的等寬字體來表示。
對在當前上下文中特別重要的代碼,用粗體字來強調顯示。
0.6 源代碼
在讀者學習本書中的示例時,可以手工輸入所有的代碼,也可以使用本書附帶的源代碼文件。使用Search工具或使用書名列表就可以找到本書。接著單擊本書細目頁面上的Download Code鏈接,就可以獲得所有的源代碼。
提示:
由于許多圖書的標題都很類似,所以按ISBN搜索是最簡單的,本書英文版的ISBN是978-1-118-31441-8。
在下載了代碼后,只需用自己喜歡的解壓縮軟件對它進行解壓縮即可。
0.7 勘誤表
盡管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但是錯誤總是難免的,如果您在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助于提供更高質量的信息。
要與作者和同行討論,請加入P2P論壇。這個論壇是一個基于Web的系統,便于您張貼與Wrox圖書相關的消息和相關技術,與其他讀者和技術用戶交流心得。該論壇提供了訂閱功能,當論壇上有新的消息時,它可以給您傳送感興趣的論題。Wrox作者、編輯和其他業界專家和讀者都會到這個論壇上來探討問題。
提示:
不加入P2P也可以閱讀論壇上的消息,但要張貼自己的消息,就必須加入該論壇。
加入論壇后,就可以張貼新消息,響應其他用戶張貼的消息。可以隨時在Web上閱讀消息。如果要讓該網站給自己發送特定論壇中的消息,可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖標。
關于使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作情況以及P2P和Wrox圖書的許多常見問題。要閱讀FAQ,可以在任意P2P頁面上單擊FAQ鏈接。