.NET實(shí)踐之旅/C#篇

出版時間:2010年9月6日  出版社:科學(xué)出版社  作者:黃凱波  頁數(shù):456  
Tag標(biāo)簽:無  

前言

早就答應(yīng)給這本書寫篇序,但~直忙于別的事情,寫序的事就被拖下來。凱波很淡定,也不催我。時間一長,我倒不好意思了,見到凱波就繞開走。終于,凱波的耐心贏了。五年前我回國,進(jìn)入了軟件外包行業(yè),因此跟凱波成為了同事。我還記得第一次同凱波開會,他跟我談了很多工程中的事。那時越來越多的微軟工程被放到中國來做.每一個工程都需要有經(jīng)驗(yàn)的軟件工程師。雖然國內(nèi)每年有大量的軟件專業(yè)的畢業(yè)生,但馬上就能上手的并不多,即使是那些有幾年編程經(jīng)驗(yàn)的也未必能勝任微軟的工作。凱波在如何培訓(xùn)新員工、如何組織項(xiàng)目團(tuán)隊、提高工作效率等方面有很多建議。他是個肯動腦子、很有想法的人。我有時在想,凱波思想活躍應(yīng)該跟他酷愛攝影有關(guān)。攝影能教會人去觀察、比較、總結(jié)。更不要說,在野外攝影時隨時會遇到困難,要能隨機(jī)應(yīng)變、迅速解決問題,才能堅持到最后。十幾年前我也編寫了一本介紹C語言的書,在美國出版,我深知寫作的艱辛。有時作者一不留神。由著自己的性子,信馬由韁,那邊讀者就不高興了。記得最初我高估了老美的數(shù)學(xué)基礎(chǔ),書中用了很多國內(nèi)中學(xué)就學(xué)到的數(shù)學(xué)知識,結(jié)果被編輯打回,告知要重寫。凱波比我要幸運(yùn)多了,他的讀者群在數(shù)學(xué)方面的功底一定比較強(qiáng)。更重要的是.凱波通過模擬的工程,不但把C#和.NET Framework的基本概念介紹給讀者,而且把實(shí)際工作中的流程以及團(tuán)隊的協(xié)作在書中做了一番演示,以便大家在實(shí)際的工作中能很快上手,很快出成績。

內(nèi)容概要

本書通過一個模擬的實(shí)例,逐步介紹解決問題的思路、方法和良好的習(xí)慣,幫助剛?cè)胄械娜藛T拿起手邊簡單的武器解決所遇到的問題。同時采用比較的方法介紹.NET Framework 4.0(C#4.0)的一些重要知識點(diǎn)。    本書分為主輔兩大部分:第一部分為主線,講述一個足夠“大”(同時也是足夠“小”)的模擬工程;第二部分為輔線,介紹C#以及.NET Framework的基礎(chǔ)和特性,采用結(jié)合實(shí)際工程的方式來引入這些重要的知識點(diǎn),說明為什么用它們以及怎么使用,并且闡述這些技術(shù)的限制,以幫助讀者形成自己的技術(shù)判斷能力,這些知識也是公司比較喜歡的面試題。兩個部分相互索引,相輔相成,讓讀者了解實(shí)際工作中可能遇到的問題和所需的知識點(diǎn),也可以反過來學(xué)習(xí)這些技術(shù)在實(shí)際工作中是如何選擇和應(yīng)用的。    最重要的是,本書將作者工作時的心得體會穿插在章節(jié)之中。書中所有的關(guān)鍵技術(shù)術(shù)語也會在括號中給出對應(yīng)的英文單詞,以方便讀者閱讀及搜索外文資料。    本書針對因工作等需要使用C#(.NET Framework)來完成軟件項(xiàng)目的人群,可供C#編程人員參考,也可作為大中專院校使用C#進(jìn)行編程課程的教材。

書籍目錄

PART 01  工程實(shí)戰(zhàn)Chpater 01  工程開始(Project Kickoff)  1.1  —個工作上的小問題  1.2  問題的快速分析  1.3  關(guān)鍵技術(shù)調(diào)研    1.3.1  查找已存在的方案    1.3.2  動手寫第一個程序(第一個原型)    1.3.3  進(jìn)一步研究的成果(第二個原型)    1.3.4  代碼整理  1.4  本章總結(jié)Chpater 02  需求分析和工程計劃  2.1  頭腦風(fēng)暴法(Brainstorming)  2.2  把功能歸類  2.3  關(guān)鍵路徑法(Critical Path Method)  2.4  本章總結(jié)Chpater 03  糧草先行  3.1  命名規(guī)范(Naming Notations)  3.2  編碼約定(Codjng Conventions)  3.3  版本控制(Revision Control)  3.4  本章總結(jié)Chpater 04  快速原型  4.4  計劃變更及分析  4.2  實(shí)現(xiàn)搜索局域網(wǎng)內(nèi)機(jī)器的功能  4.3  單元測試與調(diào)試基礎(chǔ)    4.3.1  使用MbUnit    4.3.2  使用NUnit    4.3.3  組合參數(shù)測試  4.4  功能整合    4.4.1  設(shè)計簡單的用戶界面    4.4.2  整合搜尋局域網(wǎng)內(nèi)機(jī)器的功能    4.4.3  整合發(fā)消息功能  4.5  本章總結(jié)Chapter 05  重構(gòu)之上:多線程  5.1  .NET Framework的多線程編程  5.2  使用子線程來搜索IP地址  5.3  依據(jù)CPU個數(shù)創(chuàng)建多線程  5.4  使用線程池(Thread P001)  5.5  使用異步編程模型(APM)  5.6  使用并行擴(kuò)展(Parallel Extensions)  5.7  優(yōu)化算法  5.8  本章總結(jié)Chapter 06  重構(gòu)之下:設(shè)計  6.1  程序設(shè)計簡述  6.2  Object-oriented思想    6.2.1  封裝(Encapsulation)    6.2.2  繼承(Inheritance)    6.2.3  多態(tài)(Polymorphism)  6.3  O-O設(shè)計的原則    6.3.1  Open-closed Principle(OCP)    6.3.2  Liskov Substitution Principle(LSP)    6.3.3  Dependency Inversion Principle(DIP)    6.3.4  Interface Segregation Principle(ISP)    6.3.5  Single-Responsibility Principle(SRP)    6.3.6  Composition/Aggregation Principle(CARP)    6.3.7  Law of Demeter(LoD)    6.3.8  Inversion of Control(IoC)  6.4  設(shè)計模式基礎(chǔ)    6.4.1  Designing from Context(依據(jù)應(yīng)用設(shè)計)    6.4.2  動機(jī)A.(工廠方法模式)    6.4.3  動機(jī)B.(抽象工廠模式)    6.4.4  動機(jī)C.(生成器)    6.4.5  動機(jī)D.(單件)    6.4.6  動機(jī)E.(反射對單件的擴(kuò)展)    6.4.7  動機(jī)F.(配置對工廠的擴(kuò)展)    6.4.8  動機(jī)G.(IDisposable)    6.4.9  動機(jī)H.(泛型擴(kuò)展)  6.5  本章總結(jié)Chapter 07  .NET的診斷(Diagnostics)  7.1  簡要介紹  7.2  Debugger類  7.3  Debug類  7.4  Trace類  7.5  定制化診斷信息    7.5.1  TraceSource類    7.5.2  配置監(jiān)聽器(TraceListeners)  7.6  用Trace還是TraceSource  7.7  設(shè)計更靈活的監(jiān)聽機(jī)制    7.7.1  OutputDebugString的運(yùn)行機(jī)制    7.7.2  程序?qū)崿F(xiàn)  7.8  本章總結(jié)PART 02  .NET Framework基礎(chǔ)Chapter 08  C#語言基礎(chǔ)  8.1  字符串操作(String Operation)    8.1.1  String    8.1.2  StringBuilder    8.1.3  字符串操作的效率    8.1.4  正則表達(dá)式(Regular Expression)  8.2  C#的數(shù)據(jù)類型    8.2.1  值類型(Value Type)    8.2.2  引用類型(Reference Type)    8.2.3  類型的賦值與參數(shù)傳遞    8.2.4  裝箱、拆箱(Boxing/Unboxing)    8.2.5  可為空類型(Nullable Types)    8.2.6  匿名類型(Anonymous Types)  8.3  自定義類型    8.3.1  命名空間(namespace)    8.3.2  結(jié)構(gòu)(struct)    8.3.3  接口(interface)    8.3.4  類(class)    8.3.5  枚舉(enum)    8.3.6  自定義擴(kuò)展方法  8.4  集合(CoIIections)    8.4.1  System.Array    8.4.2  System.Collections    8.4.3  System.Collections.Generic    8.4.4  容器使用的算法    8.4.5  多核線程中的集合  8.5  文件I/O與流    8.5.1  文件及目錄操作    8.5.2  文件讀寫    8.5.3  異步文件讀寫    8.5.4  MemoryMappedFiles    8.5.5  文件壓縮    8.5.6  Environment  8.6  預(yù)處理器指令    8.6.1  分隔代碼段落    8.6.2  條件編譯指令    8.6.3  開/關(guān)編譯信息    8.6.4  Conditional與#if/#end比較Chapter 09  .NET Framework的特性  9.1  C#板的支持    9.1.1  模板類型和模板方法    9.1.2  模板的優(yōu)勢    9.1.3  C#模板的約束    9.1.4  C#模板的類型轉(zhuǎn)換  9.2  平臺調(diào)用服務(wù)    9.2.1  調(diào)用非托管的DLL函數(shù)    9.2.2  托管與非托管的數(shù)據(jù)類型映射    9.2.3  映射非托管的結(jié)構(gòu)(struct)    9.2.4  MarshalAs輔助類    9.2.5  PIatform lnvoke的錯誤處理    9.2.6  (U)IntPtr和SafeHandIe    9.2.7  CER(執(zhí)行區(qū)域)    9.2.8  小結(jié)  9.3  Object的生命周期    9.3.1  垃圾回收器(Garbage Collector)    9.3.2  構(gòu)造器(Constructor)    9.3.3  析構(gòu)器(Destructor)    9.3.4  影響和控制GC    9.3.5  GC的性能    9.3.6  優(yōu)化Object的使用  9.4  應(yīng)用程序域    9.4.1  創(chuàng)建應(yīng)用程序域    9.4.2  創(chuàng)建沙箱(SandBox)程序域  9.5  特性(Attribute)    9.5.1  特性的簡化符號    9.5.2  定制自己的特性  9.6  反射(RefIection)    9.6.1  加載托管程序集    9.6.2  實(shí)例化Object和訪問類成員(私有,優(yōu)化)    9.6.3  Reflection.Emit    9.6.4  序列化  9.7  委托和事件    9.7.1  委托(deIegate)的使用    9.7.2  匿名方法(Arlonymous Method)和Lambda表達(dá)式    9.7.3  事件的使用    9.7.4  委托的協(xié)變與反變  9.8  XML    9.8.1  XML DOM    9.8.2  用XPath查詢    9.8.3  使用LlNQ to XML    9.8.4  XML序列化(XML SerializatiorI)  9.9  動態(tài)語言支持(DLR)    9.9.1  用dynamic代替var    9.9.2  dynamic的原理    9.9.3  自定義dynamlc的派發(fā)過程  9.10  WinForm與WPF的消息    9.10.1  WinForm的消息機(jī)制    9.10.2  WPF的“消息機(jī)制”參考資源  參考書目(排名不分先后)  網(wǎng)絡(luò)資源

章節(jié)摘錄

插圖:本章介紹筆者在實(shí)踐過程中最樸素實(shí)用的計劃制定的原則和一些方法的細(xì)節(jié)。當(dāng)讀者進(jìn)入一個公司并到特定的小組開始工作就會發(fā)現(xiàn),每個公司甚至小組所采用的具體細(xì)節(jié)都會有差別。小的差別可能是術(shù)語的稱謂,大的會涉及到范疇。有的可能不會把技術(shù)納入工程計劃考慮的范疇。也許是因?yàn)榧夹g(shù)架構(gòu)已經(jīng)很完善而無須考慮,這是件好事。比較糟糕的情況是工程經(jīng)理不太懂技術(shù),他漢法預(yù)測,工程中的高級技術(shù)人員(做了門,年技術(shù),自以為厲害的)也無法預(yù)估時間,或者懶得預(yù)估時間,又或者怕估錯時間到時候被責(zé)難。一旦工程延期,大家都會拿所有武器“自衛(wèi)”。這也是為什么筆者強(qiáng)調(diào)時間預(yù)估不是承諾。作為剛加入公司的新血液。我們是無法改變這些現(xiàn)狀。這套方法可以用來評估自己的工作量??醋约旱娜蝿?wù)是否合理:自己是否能在限期之內(nèi)完成任務(wù):看自己是不是在關(guān)鍵路徑上:看整個團(tuán)隊是不是有潛在的風(fēng)險等??梢詫τ媱澨峁┮恍┯幸娴慕ㄗh,最糟糕的情況也能做到心中有數(shù),早做準(zhǔn)備。

編輯推薦

《NET實(shí)踐之旅:C#篇》介紹一個剛剛?cè)胄械穆殘鲂氯巳绾文闷鹗诌吅唵蔚奈淦鹘鉀Q所遇到的問題,度過第一年的“黑暗”時光。同時采用比較的方法介紹.NET Framework 4.0(C#4.0)的一些重要知識?!禢ET實(shí)踐之旅:C#篇》介紹每個關(guān)鍵環(huán)節(jié)中一些非常簡單、實(shí)用的技巧,對問題的分析以及最終解決的思路針對新手的特點(diǎn),采用實(shí)例的方式,結(jié)合實(shí)際項(xiàng)目來引入.NET Framework重要的知識點(diǎn),說明為什么用它們,怎么使用,并且闡述這些技術(shù)的限制,以幫助讀者形成自己的技術(shù)判斷能力。全球外包100強(qiáng)企業(yè)文思創(chuàng)新資深副總裁張濤幫你應(yīng)對最新開發(fā)平臺的挑戰(zhàn)VisualStudio2010+C#4.0足夠“大”又足夠“小”的實(shí)例完整開發(fā)流程,進(jìn)行思維訓(xùn)練結(jié)合必備知識與解決問題的方法《NET實(shí)踐之旅:C#篇》幫助你解決的問題。作為團(tuán)隊的新丁,我該做什么,不該做什么?遇到一個解決不了的技術(shù)問題,該怎么辦?技術(shù)發(fā)展得太快,我該怎么學(xué)習(xí)?我最怕被問及什么時候能完成某個任務(wù)!我最煩做計劃!編寫原則:學(xué)習(xí)應(yīng)該從某個工具的缺陷開始,稱為“邊際學(xué)習(xí)法”The Law of Leaky Abstract|ons(抽象缺失定律,由Joel Spolsky于2002年提出)軟件開發(fā)周期的關(guān)鍵環(huán)節(jié)|關(guān)鍵技術(shù)調(diào)研|計劃制定|架構(gòu)設(shè)計|需求變更|重構(gòu)|軟件測試|錯誤診斷。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    .NET實(shí)踐之旅/C#篇 PDF格式下載


用戶評論 (總計2條)

 
 

  •   已工作多年,看到特價活動,順手買的,翻了翻,當(dāng)復(fù)習(xí)一下知識也是好的,畢竟不貴。要提出的是不知快遞員怎么回事,一起到的幾本書全部弄得和舊書一樣,包裝也開了,希望下次能改進(jìn)一下。
  •   書還好 剛剛到手 還沒有好好看過呢 但是那個配送員態(tài)度真的是差得要命 上次買送來的不是這個傻B 這次的傻B讓他等一下就不耐煩的要死 說什么再不到他就要走了 我真擔(dān)心等下馬克思看不爽真把他帶走怎么辦哦 我給他卡刷卡 他冷不丁的冒一句 現(xiàn)金 說出這兩個字時眼珠子都快冒出來了 就跟那個什么魚的那個什么眼睛似的 還說以后不要選什么pos機(jī)刷卡 哪里來那么多pos機(jī)給你刷卡卡 收完錢 補(bǔ)錢給我 我還沒有得看到底是多少錢就跑了 真是比那個狗跑得還快呀 哎~~
 

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

京ICP備13047387號-7