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