官术网_书友最值得收藏!

前言

筆者本科的專業是電力系統及自動化,本與軟件關系不大,但由于機緣偶合,從1994年開始自學計算機專業課程,由此邁入引人入勝的軟件技術世界,迄今已經16年了,而這16年中有一半的時間花在了研究.NET技術上。

回想2001年前后,Java如日中天,我周圍幾乎所有的人都在或準備學習Java,而也是在這個時候,我初次接觸到了C#和.NET,立即被它們吸引,堅信.NET開發平臺日后一定大有發展潛力。9年過去了,事實證實了我當年的預測:.NET不斷汲取最新的軟件技術成果,一步一個腳印,業已成為當今主流的軟件開發平臺之一,與Java平分秋色。2010年發布的.NET 4.0,更是引入了眾多的新技術,堪稱為.NET發展史上具有里程碑意義的版本。

任何一名對.NET技術有一定認識的軟件開發者都承認,以.NET平臺所包容的技術之多、之廣,稱其為“博大精深”并不為過,而且它還處于不斷的發展和變化過程中。.NET技術家族的急速擴充與快速成長給所有.NET開發者帶來了巨大的挑戰,如何跟上技術發展的步伐,迎接新技術的挑戰,是每個.NET軟件工程師所必須面對的問題。

在多年的.NET技術學習、探索和應用過程中,筆者漸漸有了一些體會和感觸,我發現雖然.NET技術一直在變化中,但這種變化是有規律可循的,“變化當中有不變”,把握了這些規律,將不再害怕與抱怨新技術的持續出現和老知識的陳舊與過時,就會以一種更平穩的心態去學習新的東西,去探索新的領域,面對新技術,不再是惶恐,而會代之以興奮。

本書所展示給讀者的,就是這么些年來我對.NET技術學習、探索和應用的心得,我想嘗試著揭開.NET的面紗,告訴讀者:

有些看上去很簡單的東西,其實并不簡單!

有些“司空見慣”的東西,其實你可能忽略掉了許多重要的地方!

有些“新”技術,其實不過是“舊瓶裝新酒”罷了!

有些知識和工具是如此地有用,用好它們,你將不再困惑于在開發中遇到的種種“奇怪”現象!

有些技術是如此地關鍵,不掌握好它們,你將在開發中處處受限!

有些很復雜的技術,一旦你花點時間去了解一些必要的背景知識,一旦你下決心鉆到它內部去探索運作機理,就會發現掌握它其實并沒有想象地那么困難!

……

期望筆者寫的書能幫助讀者更好地理解.NET平臺與技術,更好地理解面向對象的理論,更好地理解軟件開發這件事。

下面,我先就讀者所關心的幾個問題作簡要回答,然后再介紹本書的使用方法。

讀者問答

1.這本書是寫給哪些人看的?

本書分為《基礎篇》與《應用篇》兩卷,以滿足不同類型讀者的閱讀需求。

《基礎篇》不適合于那些對.NET軟件開發技術一無所知的人閱讀。

《基礎篇》最合適的讀者群是擁有1~2年開發經驗的人,無論是在業界還是在學校,也無論是職業程序員還是軟件開發愛好者,只要對.NET平臺的開發技術已經有了一定的感性認識,希望能進一步地提升自己的開發能力,拓展和加深對.NET平臺技術的認識,就適合閱讀。

《應用篇》則選取了在實際開發中有著廣泛應用前景,同時又在.NET 4.0中有著重要創新的“多線程與并行計算”、“托管可擴展性框架”和“動態編程特性”等內容進行深入和系統的介紹,要求讀者必須具備一定的開發經驗,并且切實掌握《基礎篇》所介紹的技術。

2.本書適合的閱讀方式是什么?

《基礎篇》不需要從頭到尾順序閱讀,讀者可以從目錄中直接選擇感興趣的章節閱讀。

每一章的開頭都有一些通過底紋突出顯示的文字,它們是本章的“導讀”部分,介紹本章的核心內容,指出這些內容與其他章節的聯系,特別地,會指出閱讀本章所需要掌握的知識背景,還會給出具體的閱讀建議。

另外,書中多處標有“交叉鏈接”提示文字,告訴讀者與當前所介紹內容相關聯的技術內容分布在本書《基礎篇》和《應用篇》的哪些章節中。

因此,讀者可以從任一部分切入本書《基礎篇》的各個章節

《應用篇》則有所不同,應用篇所介紹的技術都比較復雜,而且包含許多.NET 4.0的新特性,估計不少讀者還不大了解,因此筆者采用了循序漸進的寫作方法,層層推進,系統、全面、深入地介紹這些技術,建議讀者按章節順序閱讀《應用篇》的各章節

本書包括大量的示例,筆者幾乎為每個重要的技術點都設計了相關的可運行示例,為了減少篇幅,在正文中只介紹關鍵的技術點和設計思路,盡量避免貼出大量的代碼,讀者在書中絕對看不到整頁都是代碼的情形,列出的代碼段很少超過20行。如果讀者想深入了解相關的技術細節,在書的旁邊放一臺筆記本電腦是個好辦法。這樣一來,就可以隨時使用Visual Studio打開相應的示例去閱讀完整的示例源碼。

所有的源碼都有詳盡的中文注釋,并且不少例子我都給出了動手修改代碼進行試驗的指導,這些指導有些放在書的正文里,有些則直接寫在示例源碼的注釋里。

3.本書書名中有“.NET 4.0”的字樣,那么還介紹以前版本的技術嗎?如果以后出來了.NET的新版本,這本書還有價值嗎?

有過多年開發經驗的軟件工程師都會有這樣的共識:技術的“新”與“舊”是相對的,無法截然分開,筆者認為:新路接在老路的后頭,很少有與老技術完全無關的新技術。

因此,本書不是.NET 4.0新特性的簡單羅列和堆積,而是一張技術地圖,在這張“地圖”上,筆者“畫”出了某個新的技術源自于哪個老的技術,而它又將通向何方……

所以,即使讀者現在暫時還沒有基于.NET 4.0實際做開發,也可以通過閱讀此書,將書中介紹的大部分內容應用到基于.NET早期版本開發的項目中,凡是.NET 4.0新增的特性書中都有說明。

另外,再次強調,新技術對老技術不是完全地拋棄,在變化中總有不變的地方,哪怕日后.NET 4.5、5.0出來,筆者相信本書的大部分內容將仍然適用,因為書中的許多內容,正是筆者在十多年的技術生涯中所體會到的那些“不變”的東西。

4.本書的內容很多,真正獨特的內容是什么?與其他同類圖書相比,有何特色?

有關.NET的書,無論國內還是國外,都可謂是“汗牛充棟”,其中不乏優秀之作。筆者學識有限,不敢和那些大師之作相比,但也想努力寫出自己的特色來。

論技術,國內比筆者功底深厚的人多了去了,但筆者自覺得有一個長處:那就是我長期在高校一線教學,自認為具有還算可以的語言和文字表達能力;另外,我一直都在琢磨著如何幫助學生以更高的效率去學習新知識和掌握新技能,并且進行了持續的計算機教學改革實踐,我的這些實踐活動還曾經在業界引發過激烈的反響。

所有這一切,都有助于我的寫作。

我期望能寫出深入淺出的技術書籍,“以大白話講述復雜的技術”。可以這么說,只要是我自己弄明白了的技術,我有信心總能找到一個比較合適的方式讓別人也能弄明白它。這個特色也在我的前幾本技術圖書中為讀者所普遍認可。

需要強調的是:

本書不是一本學術著作,而是一本技術普及類圖書,其目的是幫助讀者高效地掌握.NET技術并且能迅速用于實踐,因此,采用了白話的方式表達概念和理論的內涵,而不是引經據典地對它們進行考據。讀者如果需要對某個領域進行更深入的研究與探索,相信本書能為你提供一個基礎和起點。

本書寫作的許多內容是直接使用ildasm和Reflector進行反匯編分析的結果,就我所收集到的資料,目前國內從這個角度系統剖析.NET技術內幕的相關書籍還不多見。

另外,大量的.NET技術書籍都是針對某個特定的技術領域的深入介紹,卻缺少對整個.NET平臺各技術間聯系的介紹,本書則力圖彌補這一缺陷,比如書中同時包容了ASP.NET、Windows Forms、WPF、Silverlight等技術領域的示例和分析,期望能揭示出各個不同技術領域間所客觀存在著的內在聯系,幫助讀者避免陷入“見木不見林”的窘境。

當然,想在一本書里對各項技術都深入介紹是不可能的,因此,本書主要偏重于對.NET平臺“偏底層”的CLR和基類庫中部分組件的分析,另外一些非常重要的技術領域,比如.NET 4.0中蔚為壯觀的各項數據存取技術,比如建構于WCF基礎之上的分布式軟件系統開發技術,本書都未曾涉及,或僅僅只是點到即止。如果讀者還愿意讀我的作品,而我還有時間和精力寫作,以后會努力為讀者奉上相關的技術書籍。

本書使用指南

本書配套資源包的下載網址

讀者可以訪問以下網址下載本書配套資源包:

http://www.broadview.com.cn/11904

資源包中除了按章節組織的本書所有示例源碼外,還包括未放入本書正文的《從面向對象到SOA》一章,介紹了一個完整的四則運算器工具軟件的開發和演化過程(見圖1)。

圖1 四則運算器軟件示例

搭建本書示例的開發與運行環境

本書中的所有示例均在Visual Studio 2010旗艦版+中文Window 7/Vista Sp2下運行通過。

除特別指明外,本書示例的編程語言為C# 4.0。

讀者可以訪問“Visual Studio Developer Center(Visual Studio開發者中心)”下載Visual Studio 2010,其網址為:

http://msdn.microsoft.com/zh-cn/vstudio/default.aspx(中文)

http://msdn.microsoft.com/en-us/vstudio/default.aspx(英文)

2010年4月發布Visual Studio 2010正式版時,所配的Silverlight為3.0,但很快就推出了用于Visual Studio 2010的Silverlight 4安裝包,因此本書中所有的Silverlight示例均基于Silverlight 4開發,運行它們需要讀者下載并且安裝Silverlight 4 Tools For Visual Studio 2010,下載網址為:

http://go.microsoft.com/fwlink/?LinkID=177428

注意需要根據讀者安裝的Visual Studio是英文版還是中文版選擇合適版本的Silverlight 4安裝包。

讀者只需在自己的計算機上安裝Visual Studio 2010+Silverlight 4,即可順利運行《基礎篇》中的絕大部分示例。

第12章有一個LINQtoSQLExample例子用到了LINQ to SQL,其中使用了微軟范例數據庫Northwind,讀者可以在MSDN網站搜索到它的下載地址,為方便起見,本書直接列出其網址:

http://www.microsoft.com/downloads/details.aspx?FamilyId=06616212-0356-46A0-8DA2-EE BC53A68034&displaylang=en

《應用篇》第21章部分示例,要求安裝SQL Server 2008 Express(或SQL Server 2008 R2 Express)和Visual Studio 2010的代碼協定插件。

讀者可以訪問“Microsoft/Express”網站下載SQL Server 2008,其網址為:

http://www.microsoft.com/express/Downloads/

Visual Studio 2010代碼協定插件的下載網址為:

http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx

第23章使用了IronPython動態編程語言,讀者可以訪問以下網址下載其最新版本:

http://ironpython.codeplex.com/

另外,本書大量使用Reflector工具對.NET基類庫中的各個組件進行分析,讀者可以在以下網址下載到Reflector:

http://reflector.red-gate.com/download.aspx?TreatAsUpdate=1

需要提醒讀者的是,由于互聯網一直在變化當中,不能保證上述網址始終可用,當鏈接失效時,讀者可以利用百度、谷歌和必應等搜索引擎找到正確的網址。

致謝

一本書的出版,總是凝聚著許多人的心血。

筆者首先要感謝我的妻子和年邁的父母,他們的支持,給了我一個安靜的港灣,讓我得以在近兩年的時間里專心寫作而不為各種瑣事所打擾。

筆者還要感謝博文視點武漢團隊負責本書出版工作的諸位編輯和設計師,書稿提交給他們時正值三伏,在素有“火爐”之稱的武漢他們辛勤工作,他們表現出來的專業素質與敬業精神讓我感動,在這里,向他們表示我的感謝:盧鶇翔,楊繡國,白愛萍,鄭兆昭,楊小勤,胡文佳,楊詩盈。

作為博文視點武漢團隊的領頭人,著名圖書策劃人周筠女士以其豐富的出版經驗對本書的順利完成起了至關重要的作用,我與她進行了多次的郵件往來、電話交流和面對面的直接溝通,她還特別邀請了業界著名技術作家潘愛民老師和我交流寫作經驗,對我組織素材、構思全書結構、確定寫作風格大有幫助。而她工作的勤奮,對整個團隊高效的管理,對圖書出版事業的熱愛,都給了我深刻的印象,并深表敬佩。

為了給本書作技術上的把關,編輯們還先后邀請了張逸、龐引明、陳黎夫、鄒欣等多位業界專家進行審稿,給出了大量建設性的意見。其中龐引明博士長期關注本書的寫作進展,審讀了本書的部分初稿,并針對內容選取,寫作風格等方面提出了寶貴的意見,還不斷鼓勵作者和編輯共同努力,對提升本書的質量水準非常有幫助。另外,特別要感謝張逸先生在百忙之中抽時間認真地審閱了本書的前6章,給出了非常具體的意見,其認真的態度讓我感動。

編輯們還通過互聯網聯系到了一些熱心的讀者,如蔡華、Zhongmin Yu、陳小鋒、陳寧、黃永泰、浪雪等對書稿進行試讀,讀者的積極反饋給了我很大的鼓勵與啟發。

在此,我要向所有給我幫助與支持的朋友說一聲:謝謝大家!

聯系作者

筆者在自己十多年的技術生涯中,深切地體會到軟件技術的博大精深,深切地體會到個人能力的局限,也深切地體會到個人對某項技術產生錯誤理解的可能性有多么大……雖然筆者和本書的編輯盡了最大的努力,不僅邀請了國內業界一批優秀的專家在技術上進行把關,而且也先后邀請了多名熱心讀者在書出版之前進行試讀,但相信書中一定還存在著各種錯誤和疏漏,甚至可能會包括“漏網的”屬于比較嚴重的技術硬傷。在此敬請讀者海涵,如發現了本書的錯誤,請務必將這些信息反饋給本書作者和編輯。

作者聯系地址:北京理工大學計算機學院軟件研究所

郵政編碼:100081

電子郵件:JinXuLiang@bit.edu.cn

作者個人博客:

1)CSDN:http://blog.csdn.NET/bitfan

2)博客園:http://www.cnblogs.com/bitfan

金旭亮

2010年9月于北京理工大學

主站蜘蛛池模板: 麻城市| 藁城市| 乐安县| 丽江市| 东至县| 丹东市| 六盘水市| 叙永县| 虎林市| 当阳市| 怀柔区| 逊克县| 洛宁县| 蓬莱市| 思茅市| 万年县| 德安县| 改则县| 东方市| 双流县| 兴宁市| 龙口市| 肥西县| 进贤县| 磐石市| 汉沽区| 新宁县| 张北县| 潜江市| 当雄县| 锦屏县| 新源县| 望奎县| 衡东县| 吐鲁番市| 汾阳市| 长兴县| 田东县| 汉源县| 米林县| 略阳县|