| “你站在橋上看風景,看風景的人在樓上看你”。 技術(shù)探求,正是如此的富有哲理。在.NET世界里,每個程序設(shè)計者都是站在橋頭的守望者,渴望品味所有的美景,將技術(shù)的各個方面盡收眼底。而現(xiàn)實往往是,你看到的并非全部真實的,技術(shù)的理解往往也需要輔助一個望遠鏡才能看得更加透徹。這本《你必須知道的.NET》既是一本技術(shù)的風景畫卷,涵蓋了.NET基本知識的幾乎所有的重點內(nèi)容;又為你送上手中的望遠鏡,與作者一起力求對每個技術(shù)要點的探討都更進一步。 走近這幅畫卷,除了品味每一處風景,還應(yīng)學會撥開表象、認識本質(zhì)、探求細微,更重要的是在這個過程中,你將能收獲如何為自己搭建一處技術(shù)美景。在樓上看你的人,是否會覺得風景這邊獨好,就看你的技藝精湛與否了。 面對技術(shù),你別無選擇,.NET世界是如此精彩,而我們要做的就是:Thinking More。 本書是什么 對于技術(shù),大部分著作都是從整體角度進行系統(tǒng)性的論述,知識體系一脈相承。拿起這樣的書,我們習慣循規(guī)蹈矩地從前言看到后記,往往會陷入其系統(tǒng)之中,被其思想所固化,而無法找出什么是更值得關(guān)注的要點。本書顯然不是一本系統(tǒng)性論述技術(shù)的專著,因此也無法兼顧.NET技術(shù)的所有概念和知識,但是本書力圖從重點分析與突出把握的角度來闡釋技術(shù),分析問題,將所有.NET開發(fā)人員最關(guān)心、最困惑的技術(shù)內(nèi)容形成體系進行深度遍歷、挖掘和探索。 《你必須知道的.NET》正揭示了這樣的一種訴求,將.NET技術(shù)中的核心內(nèi)容以一個個專題的形式來深度刻畫,然后形成體系。綜觀全書內(nèi)容:一方面,以最少的語言表達最多的技術(shù)、體察更深的本質(zhì)。佛家傳道,以例說理,絲絲入扣,環(huán)環(huán)揭密。本書以“你必須知道”而自詡,唯有意圖達到以實例為基點,以歸納為方法的技術(shù)論述特點:對于技術(shù)的論述和分析,力求做到深入淺出、娓娓道來;對于晦澀艱深的問題以故事性的分析來引導(dǎo);對于典型的問題以對比的角度來揭密;對于知識性的內(nèi)容以歸納總結(jié)形成綱要。作者對每個技術(shù)要點的論述,均結(jié)合淺顯易懂的實例來展開,將復(fù)雜的技術(shù)問題化解在循序漸進的思考中。讓你的“悟”道,快樂而輕松。 另一方面,.NET技術(shù)就是一座美麗的花園,里面開滿了各種各樣的花朵,就像類型系統(tǒng)、內(nèi)存機制、垃圾回收、關(guān)鍵字、泛型、安全性、語言特性、框架格局、面向?qū)ο蟮?#xff0c;一支一朵嬌艷綻放,要想品味整個花園的芬芳,你就必須了解每朵花的美麗。本書不僅告訴你如何來鑒賞這些花朵,而且告訴你如何通過施肥、除草、澆水來經(jīng)營這些美麗,一步一步建立對核心技術(shù)要點的理解,從而“悟”到整個.NET框架體系和運行機制。 .NET技術(shù)正是一個大花園的集合,每個程序開發(fā)者也必須經(jīng)歷一次深入的磨練,在基本認識的水平上,進一步,才能發(fā)現(xiàn)更多。就像練武之人,除了研習一招一式,了解常用的控件,了解典型的框架;還得修煉內(nèi)功,認識運行機制,理解框架類庫,品味設(shè)計架構(gòu)。 這些正是本書呈現(xiàn)于讀者的內(nèi)容,也體現(xiàn)了不同于其他.NET專著的風格。 本書有什么 對于.NET來說,應(yīng)用的范圍千頭萬緒,但至少有一件事必須去做,那就是無限接近和觸摸它的內(nèi)核:CLR,這正是本書所闡述的最核心內(nèi)容。下面,我們來了解一下《你必須知道的.NET》由哪些絢麗的色彩組成: 第一部分:淵源,探討面向?qū)ο蠡疽睾驮O(shè)計原則,建立一個程序設(shè)計的基礎(chǔ)架構(gòu)思維,并結(jié)合.NET技術(shù)來實現(xiàn)相關(guān)的面向?qū)ο髾C制,進而探求相關(guān)的面向?qū)ο笤瓌t。從底層角度認識高層本質(zhì),是深入理解的不二法門。 第二部分:本質(zhì),在梳理IL基本內(nèi)容的基礎(chǔ)上,了解和掌握探求.NET本質(zhì)的方法;品味類型系統(tǒng),了解值類型與引用類型的底層奧秘,揭示參數(shù)傳遞的不惑之解;深入內(nèi)存管理,認識垃圾回收,以循序漸進的分析,通曉運行時底層機制。 第三部分:格局,將.NET關(guān)鍵字逐個把玩,深入淺出了解你不知道的關(guān)鍵字秘密;實現(xiàn)巔峰對決,將const和readonly、class和struct、is和as、特性和屬性、接口和抽象類、覆寫和重載、淺拷貝和深拷貝、靜態(tài)與非靜態(tài)以及集合,這些技術(shù)重災(zāi)區(qū)一一澄清,走出理解誤區(qū);通過框架詮釋,揭開.NET基本技術(shù)的本質(zhì),深度詮釋Object、對象判等、String、枚舉、委托和異常等.NET核心話題;最后以命名空間為主線建立對.NET框架的全局縱覽,通過梳理命名空間和典型類型,把握.NET框架類庫的心臟和骨架。 第四部分:拾遺,通過對.NET泛型的理解和深入,著重把握建立泛型編程的思維方式;并適度介紹.NET安全性的主要角落,通過對代碼訪問安全和基于角色的安全論述,來鋪陳.NET在安全編程方面的技術(shù)體驗。 第五部分:未來,以.NET 3.0/3.5新特性為基點,全面闡述.NET新特性的方方面面,在引導(dǎo)性的論述中建立對C# 3.0、LINQ、WCF、WPF、WF等新技術(shù)和Visual Studio 2008工具的基本認知和學習指導(dǎo),吹響新技術(shù)的號角。 ? 通過5個部分的全面講述,將基本建立對于面向?qū)ο笤O(shè)計與原則,.NET框架體系與運行時機制、.NET框架類庫格局與高級特性、.NET安全與新特性的深入理解,對于.NET的認識將在底層把握和設(shè)計應(yīng)用上更進一步。 本書為誰而寫 本書起源于作者在國內(nèi)最專注的.NET技術(shù)網(wǎng)站博客園(http://www.cnblogs.com)的寫作經(jīng)歷,并在博客園的2007年末大盤點Top10的五大排行榜中位列其中3個榜單。作者的系列文章深受大家的關(guān)注和討論,因此本書的內(nèi)容反應(yīng)了最直接的技術(shù)關(guān)注話題,適合于對.NET技術(shù)有意進一步提高的所有學習者和開發(fā)者。 本書涵蓋.NET基本知識的幾乎所有的重點內(nèi)容,如果讀者有以下問題、需求或者困惑,那么選擇本書非你莫屬: ? 本書并不是從“什么是.NET”這一概念開始的,對于想要了解.NET基礎(chǔ)的讀者來說,全書以一個個的專題形式來展開,可以快速建立起對.NET基本概念的切入。 讀完了大部頭的.NET巨著,還意猶未盡,抑或是不知所措。本書給你補充未盡的本質(zhì),解答未知的困惑,為你迅速進入.NET底層研究,提供最好的入口。 你已經(jīng)做得夠好了,系統(tǒng)地學習了C#或者VB.NET語言的基礎(chǔ),了解了基本的應(yīng)用規(guī)則,但還是覺得游離于技術(shù)之外,并未接觸本質(zhì)。基礎(chǔ)研究和高級教程之間往往存在著斷層,想在基礎(chǔ)之上更進一步,本書可以為你提供更多思考和研究的平臺,為你揭開CLR的神秘面紗打好基礎(chǔ)。 對.NET框架的體系架構(gòu)和運行機制,有意補充認知的讀者,可以通過本書建立起快速的理解。 本書沒有ASP.NET,沒有Web Service,也沒有.NET Remoting,然而本書的內(nèi)容對于深刻的理解所有.NET應(yīng)用大有裨益。只有從本質(zhì)上抓住這些基礎(chǔ)內(nèi)容,才能在.NET應(yīng)用領(lǐng)域游刃有余,從方法學的角度來看,這才是最有效的技術(shù)學習曲線。 本書是一部方法論,除了探討.NET的基本問題,對.NET的學習方法和學習工具均有所涉獵。了解一種科學的學習方法,有助于你以更好的質(zhì)量讀完本書,并取得收獲。 本書是應(yīng)對技術(shù)面試的圣經(jīng),綜合了來自現(xiàn)實世界的問題和答案,為你快速成長提供了良好的輔助教材。 本書并非想創(chuàng)造新的技術(shù)和技巧,而是將技術(shù)以簡單的方式更深一步的講明白。如果你總是對學習的方法充滿了困惑和懷疑,那么以本書作為起點會找到一個更好的方法。 對于每個問題的探討,本書力求深入淺出,讓人有胃口讀完所關(guān)注的話題,并展開思考和討論。對于厭倦了枯燥論述的讀者而言,本書的輕松論述不會讓你心感疲憊。 ? 本書如何閱讀 關(guān)于.NET,本書著眼于基礎(chǔ)、本質(zhì)和方法,對于閱讀本書的讀者而言,帶著思考進行基礎(chǔ)和本質(zhì)的探索,同時也能體驗技術(shù)學習的有效方法。作者在論述大部分的知識要點時,都會總結(jié)和歸納其重要的規(guī)律和注意事項,這些歸納為實際的編程提供了良好的遵守法則,讀者應(yīng)該花必要的精力熟練掌握所有的歸納內(nèi)容。 技術(shù)之間是有聯(lián)系的,平鋪直敘的寫作和由前到后的閱讀都是沒有意義的,本書把握從技術(shù)的聯(lián)系點來入手闡述基本知識,從技術(shù)的關(guān)聯(lián)中形成有層次的認知角度,能夠更加清晰的了解.NET框架的全局。所以,閱讀本書應(yīng)該在不同的章節(jié)間切換,按照作者指引的關(guān)聯(lián)進行跳躍式的閱讀,能夠收獲更多的心得。 關(guān)于語言,本書以C#語言實現(xiàn)所有的代碼示例,這是因為全書雖然以.NET為核心來論述,但也無可避免的對C#語言的某些特性進行了分析。從廣義的角度來看,C#語言本身也是.NET體系中不可分割的一部分,對于某些語言特性的了解也能從更全面的角度來透視.NET框架。 關(guān)于代碼,讀者可以通過http://www.broadview.com.cn或http://book.anytao.com來下載本書的源代碼,解壓縮之后按照代碼使用說明,通過Visual Studio工具進行編譯和調(diào)試。 支持 雖然作者、審稿和編輯花費了大量的時間對書稿進行了反復(fù)的修改和推敲,但是限于時間和水平,仍難避免失誤或錯誤。為了使本書能更好地服務(wù)于讀者,請您將關(guān)于本書的任何錯誤信息發(fā)至以下任何鏈接: ? 作者個人郵箱:anytao@live.com 本書支持網(wǎng)站:http://book.anytao.com/ 博文視點網(wǎng)絡(luò):http://www.broadview.com.cn/ ? 我們將竭力解決所有的問題,并向您的指正致謝。讀者可以在本書的支持網(wǎng)站中查找相應(yīng)的勘誤表來避免錯誤。您也可以通過郵件或者作者博客(http://anytao.cnblogs.com/)進一步取得技術(shù)支持聯(lián)系。 本書支持網(wǎng)站提供了所有代碼資源、工具資源及其他導(dǎo)航信息支持,這些資源和信息是對全書內(nèi)容的有效補充與最佳輔助。 致謝 首先感謝為本書審稿的蔣金楠,他的技術(shù)功底和專業(yè)素質(zhì)令我欽佩,他的審閱和建議為本書增色不少,這本書有他的心血和付出。 本書的出版離不開我在博客園的成長和鍛煉,感謝杜勇(dudu)站長為.NET技術(shù)人員提供了難得的純學術(shù)環(huán)境和氛圍,感謝所有在博客園中與我笑談技術(shù)、品論人生的朋友;感謝蔣金楠與我一起創(chuàng)建和支持CLR研究團隊;感謝杜勇、李會軍、程杰、劉彥博、張大磊幾位朋友在百忙中對本書的審閱及點評;感謝裝配腦袋、Jeffrey Zhao、Bruce Zhang對我的指導(dǎo)和幫助;感謝阿不、宋國安、Volnet、Justin、EagleFish、劉榮華、Jill Zhang、隨風流月等對本書的建議和關(guān)注;還要感謝我的朋友吳宏杰、管偉、高澤東、黨明對我一直以來的支持。 將最重要的感激送給養(yǎng)育我的父母和伴我成長的妹妹王佳,慈母嚴父是我人生的燈塔,激勵我努力前行。感謝岳父岳母對我的關(guān)心和愛護,并將愛送給Emma,感謝她每天在身邊的鼓勵與關(guān)懷,品嘗她愈發(fā)爐火純青的廚藝,讓我的思緒在邏輯和理性間飛舞。 最后要感謝電子工業(yè)出版社孫學瑛編輯,正是她的不懈努力和不斷支持才使我的寫書過程充滿了自信和快樂。還有對本書投入精力、提出建議的胡辛征編輯和其他博文視點同仁,他們的專業(yè)素質(zhì)和敬業(yè)精神令我感動,才使得本書有機會服務(wù)于大眾。 這本《你必須知道的.NET》送給所有技術(shù)之路上的同伴,讓我們一起遠航。進一步,你便是大內(nèi)(dotnet)高手。 王濤 2008年1月,于北京 |