精通C#編程

出版時(shí)間:2011-10  出版社:電子工業(yè)出版社  作者:鄭阿奇 主編,袁永福,張小勇 編著  頁數(shù):664  

內(nèi)容概要

  本書以C#編程為基礎(chǔ),系統(tǒng)介紹C#高級(jí)編程技術(shù),主要包括圖形開發(fā)、XML開發(fā)及.NET框架的反射等內(nèi)容。C#圖形開發(fā)主要包括圖形開發(fā)基礎(chǔ)、桌面圖形開發(fā)和Web圖形開發(fā)。XML技術(shù)開發(fā)包括XML基礎(chǔ)、安全獲取數(shù)據(jù)、XML/XSLT開發(fā)和基于XSLT的代碼生成器等。.NET框架的反射技術(shù)包括使用反射和特性構(gòu)造ORM框架、基于反射和動(dòng)態(tài)編譯的快速ORM框架。其他方面包括高性能ASP.NET樹狀列表控件、驗(yàn)證碼技術(shù)、可快速綁定數(shù)據(jù)源程序框架和基于動(dòng)態(tài)編譯的VB.NET腳本引擎,以及C#服務(wù)端程序的編程和文檔對(duì)象模型等。本書所有實(shí)例在VS.NET
2010專業(yè)版環(huán)境下開發(fā),所有源代碼文件、工程文件和同步教學(xué)課件包含在本書配套的光盤中,書中所有的源代碼均可在VS.NET
2005、2008版環(huán)境下運(yùn)行。

書籍目錄

第1章 C#圖形開發(fā)基礎(chǔ) 
 1.1 Windows圖形 
 1.1.1 圖形子系統(tǒng)基本原理 
 1.1.2 圖形設(shè)備上下文 
 1.1.3 用戶界面事件 
 1.1.4 圖形用戶界面閃爍 
 1.2 C#圖形開發(fā)基礎(chǔ) 
 1.2.1 GDI+概述 
 1.2.2 矢量圖和位圖 
 1.2.3 圖形坐標(biāo)系統(tǒng) 
 1.2.4 圖形開發(fā)基本原理 
 1.2.5 C#圖形開發(fā)基礎(chǔ) 
 1.3 C#畫圖初步 
 1.3.1 畫布 
 1.3.2 畫筆 
 1.3.3 畫刷 
 1.3.4 顏色 
 1.3.5 繪制直線 
 1.3.6 繪制矩形 
 1.3.7 繪制橢圓 
 1.3.8 繪制圓弧 
 1.3.9 繪制多邊形 
第2章 自定義圖形交互按鈕 
 2.1 功能需求 
 2.2 軟件設(shè)計(jì) 
 2.3 軟件開發(fā) 
 2.3.1 新建Visual C# 的Windows應(yīng)用程序工程 
 2.3.2 新增按鈕控件 
 2.3.3 定義按鈕的屬性 
 2.3.4 繪制控件用戶界面 
 2.3.5 響應(yīng)鼠標(biāo)事件,實(shí)現(xiàn)動(dòng)態(tài)效果 
 2.3.6 觸發(fā)Click事件 
 2.3.7 測(cè)試控件 
 2.4 完成開發(fā) 
 小結(jié) 
第3章 自定義數(shù)據(jù)網(wǎng)格控件 
 3.1 功能需求 
 3.2 軟件設(shè)計(jì) 
 3.2.1 文檔對(duì)象模型 
 3.2.2 視圖控件 
 3.3 軟件開發(fā) 
 3.3.1 建立表格文檔對(duì)象模型 
 3.3.2 創(chuàng)建視圖控件類型 
 3.3.3 加載數(shù)據(jù) 
 3.3.4 內(nèi)容排版 
 3.3.5 繪制用戶界面 
 3.3.6 處理鼠標(biāo)事件 
 3.3.7 復(fù)制數(shù)據(jù) 
 3.3.8 系統(tǒng)預(yù)定義顏色 
 3.3.9 折射效應(yīng) 
 3.4 測(cè)試控件 
 小結(jié) 
第4章 鼠標(biāo)簽名 
 4.1 功能需求 
 4.2 軟件設(shè)計(jì) 
 4.2.1 文檔對(duì)象模型 
 4.2.2 視圖控件 
 4.3 軟件開發(fā) 
 4.3.1 PointArrayList 軌跡點(diǎn)坐標(biāo)數(shù)據(jù)列表 
 4.3.2 PenMarkInfo簽名信息對(duì)象 
 4.3.3 PenMarkInfoDocument簽名信息文檔對(duì)象 
 4.3.4 PenMarkControl簽名視圖控件 
 小結(jié) 
第5章 C# Web圖形開發(fā)基礎(chǔ) 
 5.1 Web開發(fā)和桌面圖形開發(fā)比較 
 5.2 C# Web圖形開發(fā)基本原理 
 小結(jié) 
第6章 帶超鏈接的餅圖設(shè)計(jì) 
 6.1 概述 
 6.2 關(guān)鍵技術(shù) 
 6.2.1 map標(biāo)簽 
 6.2.2 Session對(duì)象 
 6.2.3 GraphicsPath類 
 6.2.4 Guid結(jié)構(gòu) 
 6.2.5 Math類 
 6.3 軟件設(shè)計(jì) 
 6.3.1 文檔對(duì)象模型 
 6.3.2 程序結(jié)構(gòu)設(shè)計(jì) 
 6.3.3 HTML設(shè)計(jì) 
 6.3.4 模擬扇形幾何算法 
 6.4 軟件開發(fā) 
 6.4.1 新建ASP.NET應(yīng)用程序項(xiàng)目 
 6.4.2 餅圖項(xiàng)目類 
 6.4.3 餅圖項(xiàng)目列表類 
 6.4.4 餅圖文檔類 
 6.4.5 主頁面 
 6.4.6 臨時(shí)文件頁面 
 6.4.7 訂單信息頁面 
 6.4.8 圖片數(shù)據(jù)服務(wù)頁面 
 小結(jié) 
第7章 XML基礎(chǔ) 
 7.1 XML發(fā)展歷史 
 7.2 XML基本內(nèi)容 
 7.2.1 XML介紹 
 7.2.2 XML衍生標(biāo)準(zhǔn) 
 7.2.3 國際標(biāo)準(zhǔn) 
 7.3 微軟.NET框架對(duì)XML的支持 
 7.3.1 流式處理模型 
 7.3.2 DOM處理模型 
 7.3.3 其他處理模型 
 7.4 XML對(duì)Web開發(fā)的意義 
 7.4.1 XML和HTML 
 7.4.2 XML和WebService 
 7.4.3 XML/XSLT提供一種全新的開發(fā)模式 
 小結(jié) 
第8章 安全獲取數(shù)據(jù)庫數(shù)據(jù)記錄 
 8.1 概述 
 8.1.1 功能需求 
 8.1.2 需求分析 
 8.2 基礎(chǔ)知識(shí) 
 8.2.1 XmlDocument類 
 8.2.2 XmlElement類 
 8.2.3 XmlTextWriter類 
 8.2.4 DBNull類 
 8.2.5 Response 
 8.2.6 using 
 8.3 關(guān)鍵技術(shù) 
 8.3.1 設(shè)置HTTP輸出類型 
 8.3.2 XmlTextWriter與XmlDocument類輸出XML文檔 
 8.4 軟件開發(fā) 
 8.4.1 新建ASP.NET應(yīng)用程序項(xiàng)目 
 8.4.2 index頁面設(shè)計(jì) 
 8.4.3 UseXmlTextWriter頁面設(shè)計(jì) 
 8.4.4 UseXmlDocument頁面設(shè)計(jì) 
 小結(jié) 
第9章 XML/XSLT開發(fā) 
 9.1 概述 
 9.2 基礎(chǔ)知識(shí) 
 9.2.1 XmlNode類 
 9.2.2 XmlNodeList類 
 9.2.3 StringWriter類 
 9.2.4 XslCompiledTransform類 
 9.2.5?。紁ages>標(biāo)記與@Page指令 
 9.2.6 XPath介紹 
 9.2.7 XSLT介紹 
 9.2.8 ML/XSLT在Web開發(fā)中的應(yīng)用 
 9.3 關(guān)鍵技術(shù) 
 9.4 軟件開發(fā) 
 9.4.1 新建ASP.NET應(yīng)用程序項(xiàng)目 
 9.4.2 index頁面設(shè)計(jì) 
 9.4.3 head.xml文件設(shè)計(jì) 
 9.4.4 table.xml文件設(shè)計(jì) 
 9.4.5 table2.xml文件設(shè)計(jì) 
 9.4.6 UseXmlDocument頁面設(shè)計(jì) 
 9.4.7 UseXmlTextWriter頁面設(shè)計(jì) 
 9.4.8 TestXPath頁面設(shè)計(jì) 
 小結(jié) 
第10章 基于XSLT的代碼生成器 
 10.1 基礎(chǔ)知識(shí) 
 10.1.1 序列化 
 10.1.2 XmlSerializer類 
 10.1.3 特性(Attribute) 
 10.1.4 XmlNamespaceManager類 
 10.1.5 StringCollection類 
 10.1.6 CommandBehavior枚舉 
 10.1.7 CollectionBase類 
 10.1.8 ICloneable接口 
 10.1.9 嵌套類 
 10.2 軟件設(shè)計(jì) 
 10.2.1 代碼生成器 
 10.2.2 數(shù)據(jù)來源 
 10.2.3 代碼生成模板 
 10.3 軟件開發(fā) 
 10.3.1 FieldInfo類的設(shè)計(jì) 
 10.3.2 TableInfo類的設(shè)計(jì) 
 10.3.3 DataBaseInfo類的設(shè)計(jì) 
 10.3.4 Default頁面設(shè)計(jì) 
 10.3.5 XSLT模板 
 小結(jié) 
第11章 高性能ASP.NET樹狀列表控件 
 11.1 樹狀列表控件 
 11.1.1 分析問題 
 11.1.2 解決問題 
 11.1.3 運(yùn)行軟件 
 11.2 基礎(chǔ)知識(shí) 
 11.2.1 HtmlGenericControl類 
 11.2.2 自定義控件 
 11.3 軟件設(shè)計(jì) 
 11.3.1 結(jié)構(gòu)設(shè)計(jì) 
 11.3.2 目標(biāo)HTML代碼設(shè)計(jì) 
 11.3.3 腳本設(shè)計(jì) 
 11.3.4 節(jié)點(diǎn)XML文檔設(shè)計(jì) 
 11.3.5 XSLT文檔設(shè)計(jì) 
 11.4 軟件開發(fā) 
 11.4.1 SkyTreeNode類設(shè)計(jì) 
 11.4.2 SkyTreeNodeList類設(shè)計(jì) 
 11.4.3 SkyTreeViewControl文件設(shè)計(jì) 
 11.4.4 SkyTreeViewControl.xslt文件設(shè)計(jì) 
 11.4.5 部署控件 
 11.4.6 Default頁面設(shè)計(jì) 
 11.4.7 TreeViewNodeXml頁面設(shè)計(jì) 
 小結(jié) 
第12章 驗(yàn)證碼技術(shù) 
 12.1 概述 
 12.2 關(guān)鍵技術(shù) 
 12.2.1 Size與SizeF結(jié)構(gòu) 
 12.2.2 Font類 
 12.2.3 StringFormat類 
 12.2.4 StringBuilder類 
 12.3 驗(yàn)證碼原理 
 12.3.1 枚舉字典安全攻擊 
 12.3.2 驗(yàn)證碼防御 
 12.3.3 驗(yàn)證碼技術(shù)概念 
 12.4 軟件設(shè)計(jì) 
 12.5 軟件開發(fā) 
 12.5.1 新建ASP.NET應(yīng)用程序項(xiàng)目 
 12.5.2 驗(yàn)證碼圖片類 
 12.5.3 驗(yàn)證碼圖片服務(wù)頁面 
 12.5.4 登錄頁面 
 小結(jié) 
第13章 使用反射和特性構(gòu)造ORM框架 
 13.1 ORM背景 
 13.2 基礎(chǔ)知識(shí) 
 13.2.1 反射與特性 
 13.2.2 Object類 
 13.2.3 Hashtable類 
 13.2.4 TypeConverter類 
 13.2.5 TypeDescriptor類 
 13.2.6 IFormattable接口 
 13.2.7 PropertyInfo類 
 13.2.8 BindingFlags枚舉 
 13.2.9 IEnumerable接口 
 13.2.10 Activator類 
 13.3 軟件設(shè)計(jì) 
 13.4 軟件開發(fā) 
 13.4.1 BindTableAttribute類的設(shè)計(jì) 
 13.4.2 BindFieldAttribute類的設(shè)計(jì) 
 13.4.3 MyORMFramework類的設(shè)計(jì) 
 13.4.4 DB_Employees類的設(shè)計(jì) 
 13.4.5 Default.aspx頁面設(shè)計(jì) 
 13.5 部署ORM框架 
 小結(jié) 
第14章 基于反射和動(dòng)態(tài)編譯的快速ORM框架 
 14.1 動(dòng)態(tài)編譯技術(shù) 
 14.2 基礎(chǔ)知識(shí) 
 14.2.1 Assembly類 
 14.2.2 CSharpCodeProvider類 
 14.2.3 CompilerResults類 
 14.2.4 CompilerParameters類 
 14.2.5 StringCollection類 
 14.2.6 DefaultValueAttribute類 
 14.3 軟件設(shè)計(jì) 
 14.4 軟件開發(fā) 
 14.4.1 RecordORMHelper類設(shè)計(jì) 
 14.4.2 IndentTextWriter類設(shè)計(jì) 
 14.4.3 MyFastORMCodeGenerater類設(shè)計(jì) 
 14.4.4 MyFastORMFramework類設(shè)計(jì) 
 14.4.5 Default.aspx頁面設(shè)計(jì) 
 14.5 部署快速ORM框架 
 小結(jié) 
第15章 可快速綁定數(shù)據(jù)源程序框架 
 15.1 數(shù)據(jù)源綁定信息 
 15.2 微軟.NET框架的設(shè)計(jì)時(shí)支持 
 15.2.1 屬性列表過濾 
 15.2.2 屬性值只讀 
 15.2.3 屬性默認(rèn)值 
 15.2.4 屬性說明文本 
 15.2.5 屬性類別 
 15.2.6 使用擴(kuò)展屬性值編輯器 
 15.2.7 自定義擴(kuò)展屬性值編輯器 
 15.3 軟件設(shè)計(jì) 
 15.3.1 數(shù)據(jù)庫處理層 
 15.3.2 系統(tǒng)字典 
 15.3.3 數(shù)據(jù)源模塊 
 15.3.4 數(shù)據(jù)源事件廣播器 
 15.4 用戶界面層設(shè)計(jì) 
 15.4.1 設(shè)計(jì)時(shí)支持模塊 
 15.4.2 運(yùn)行時(shí)支持模塊 
 15.5 軟件測(cè)試 
 15.5.1 測(cè)試用的數(shù)據(jù)庫 
 15.5.2 窗體 
 15.5.3 程序移植 
 小結(jié) 
第16章 基于動(dòng)態(tài)編譯的VB.NET腳本引擎 
 16.1 腳本的原理 
 16.1.1 VB.NET腳本原理 
 16.1.2 VB.NET腳本引擎設(shè)計(jì) 
 16.2 軟件開發(fā) 
 16.2.1 參數(shù)控制屬性 
 16.2.2 編譯腳本 
 16.2.3 調(diào)用腳本 
 16.3 Window全局對(duì)象 
 16.3.1 成員屬性 
 16.3.2 延時(shí)調(diào)用和定時(shí)調(diào)用 
 16.3.3 映射應(yīng)用程序主窗體 
 16.3.4 顯示消息框 
 16.4 測(cè)試腳本引擎 
 16.4.1 文檔對(duì)象 
 16.4.2 創(chuàng)建全局對(duì)象容器 
 16.4.3 初始化腳本引擎 
 16.4.4 編輯腳本 
 16.4.5 運(yùn)行腳本 
 16.4.6 演示用的腳本代碼 
 16.5 部署腳本引擎 
 小結(jié) 
第17章 開發(fā)Windows Service程序 
 17.1 Windows Service概念介紹 
 17.2 C#編寫Windows服務(wù)的基本過程 
 17.3 軟件功能需求 
 17.4 軟件設(shè)計(jì) 
 17.4.1 命令行參數(shù)設(shè)計(jì) 
 17.4.2 數(shù)據(jù)庫設(shè)計(jì) 
 17.4.3 文件系統(tǒng)監(jiān)視功能設(shè)計(jì) 
 17.4.4 客戶端設(shè)計(jì) 
 17.5 軟件說明 
 17.5.1 客戶端主界面 frmClient 
 17.5.2 系統(tǒng)配置對(duì)話框 dlgConfig 
 17.5.3 系統(tǒng)配置信息對(duì)象 MyConfig 
 17.5.4 文件系統(tǒng)監(jiān)視服務(wù) 
 17.5.5 管理數(shù)據(jù)庫連接 
 17.5.6 啟動(dòng)程序 
 小結(jié) 
第18章 文檔對(duì)象模型 
 18.1 文檔對(duì)象模型定義 
 18.1.1 文檔 
 18.1.2 結(jié)構(gòu)化文檔 
 18.1.3 編程接口 
 18.1.4 頁面呈現(xiàn) 
 18.2 理解文檔對(duì)象模型 
 18.2.1 XMLDom研究 
 18.2.2 DOM概念內(nèi)涵 
 18.2.3 DOM概念外延 
 小結(jié)

章節(jié)摘錄

版權(quán)頁:插圖:開發(fā)人員需要仔細(xì)設(shè)計(jì)相關(guān)算法,使得應(yīng)用程序能夠計(jì)算出盡可能小的臟矩形,使得這個(gè)臟矩形“多一分則太胖,少一分則太瘦”,剛剛好能夠用于完整的維護(hù)用戶界面而又避免浪費(fèi)。正是這種斤斤計(jì)較提高了軟件繪制用戶界面的速度,緩解和避免了閃爍現(xiàn)象。3.雙緩存技術(shù)雙緩存技術(shù)是解決用戶界面閃爍的最方便可靠的方法。閃爍是由于應(yīng)用程序繪制用戶界面過程緩慢造成的,但并不是應(yīng)用程序所有的軟件模塊運(yùn)行緩慢都會(huì)造成閃爍,僅僅是繪圖過程緩慢才會(huì)造成閃爍。開發(fā)人員可以在內(nèi)存中建立一個(gè)位圖圖像用于緩存用戶界面樣式,然后所有的繪圖操作都在這個(gè)內(nèi)存中的位圖中進(jìn)行,繪圖操作完成后就可以將這個(gè)位圖圖像快速輸出到實(shí)際的顯存中,從而顯示到計(jì)算機(jī)顯示器中。應(yīng)用程序在內(nèi)存中的位圖圖像中繪制圖形,相當(dāng)于操作一個(gè)二維數(shù)組。這只是應(yīng)用程序內(nèi)部的數(shù)據(jù)處理,不會(huì)導(dǎo)致顯存數(shù)據(jù)的改變,也不會(huì)導(dǎo)致計(jì)算機(jī)屏幕像素值的改變,閃爍也無從談起。當(dāng)繪圖操作完成,內(nèi)存中的位圖圖像準(zhǔn)備完畢,應(yīng)用程序就可以調(diào)用操作系統(tǒng)將位圖數(shù)據(jù)填充到顯存中。這是一個(gè)很簡(jiǎn)單很高速的內(nèi)存塊復(fù)制過程,足以在一個(gè)顯卡刷新周期內(nèi)完成操作,應(yīng)用程序“運(yùn)籌于帷幄之中,決勝于千里之外”,從而避免了閃爍,雙緩沖技術(shù)能夠方便有效地解決閃爍問題,但這個(gè)技術(shù)不能濫用。首先,雙緩存技術(shù)實(shí)際上加大了應(yīng)用程序繪制用戶界面的工作量,整個(gè)繪圖時(shí)間延長了,雖然沒有閃爍,但用戶界面響應(yīng)比較遲鈍。其次,雙緩存技術(shù)需要在內(nèi)存中創(chuàng)建一個(gè)比較大的位圖圖像對(duì)象,這將額外占用大量的內(nèi)存,是一種以空間換速度的做法,在某些情況下并不一定是最好的做法。濫用雙緩存技術(shù)最大的壞處就是它使人懶惰,它使得開發(fā)人員放松了對(duì)軟件速度的要求,掩蓋了軟件性能問題。這是一種“掩耳盜鈴”的做法,不利于鍛練出優(yōu)秀的圖形軟件開發(fā)人員。通常,在軟件的開發(fā)過程中不可以使用雙緩存技術(shù),開發(fā)人員靠真本事解決用戶一界面閃爍問題,只有等到軟件對(duì)用戶發(fā)布了才可以使用雙緩存技術(shù)實(shí)現(xiàn)良好的用戶體驗(yàn)。這里講的“開發(fā)人員的真本事”就是指設(shè)計(jì)合理的算法,精心的調(diào)試,以提高軟件繪圖速度來盡量降低閃爍。

編輯推薦

《魅力·實(shí)踐·發(fā)現(xiàn):精通C#編程》:展現(xiàn)精英高手發(fā)現(xiàn)之旅,站在最新平臺(tái)開發(fā)實(shí)踐,介紹流行軟件神奇魅力。

圖書封面

評(píng)論、評(píng)分、閱讀與下載


    精通C#編程 PDF格式下載


用戶評(píng)論 (總計(jì)4條)

 
 

  •   非常棒的一本書,案例不少,深度也有,全面,值得提高者學(xué)習(xí)
  •   公司買的,比市場(chǎng)上便宜而且質(zhì)量也很好
  •   還沒看內(nèi)容 不過應(yīng)該不錯(cuò)吧
  •   書的質(zhì)量很好,內(nèi)容也是精通C#所需掌握的內(nèi)容
 

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

京ICP備13047387號(hào)-7