精通 C# 5.0 與 .NET 4.5 高級編程-LINQ, WCF, WPF 和 WF
內容描述
<內容簡介>
.NET 4.5框架集成了對Windows窗體、Windows Phone、Windows Server和Windows Azure等各個方向的開發類庫。《精通C#5.0與.NET4.5高級編程——LINQ\WCF\WPF和WF》由張敬普、丁士鋒等編著,借助Visual Studio 2012開發工具,詳細介紹了.NET框架中的4大開發利器:LINQ、WPF、WF和WCF。 本書共分為5篇28章。第1篇為C#面向對象開發基礎,主要讓讀者瞭解基於框架的開發語言C#;第2篇為C#中的LINQ開發,介紹瞭如何使用LINQ在對象和數據之間建立一種對應關係,然後通過訪問內存對象的方式查詢數據集合;第3篇為WPF開發,詳細介紹瞭如何利用WPF這個圖形平臺,改變傳統Windows程序員的開發觀念和開發方式;第4篇為WF工作流開發,介紹了實現工作流應用程序時所需要實現的一些機制,比如持久化、補償、跟蹤機制等;第5篇為WCF開發,學習如何利用遠程通信技術,實現托管、服務實例管理、異步、安全、事務管理、離線隊列等功能。 《精通C#5.0與.NET4.5高級編程——LINQ\WCF\WPF和WF》實例具有代表性,編碼規範,講解詳細,適合想系統學習C#開發和.NET 4.5平臺的技術人員研讀,也可作為特定技術開發人員的參考書程。對於.NET程序員,本書不失為一本極佳的案頭必備手冊。
<目錄>
第1篇 C#面向對象開發基礎第1章 .NET框架和VisualStudio2012開發工具 1.1.NET4.5框架一覽 1.1.1框架包含的開發語言 1.1.2C#開發語言的特點 1.1.3C#的運行機制 1.1.4C#的類庫框架 1.2VisualStudio2012開發界面 1.2.1VisualStudio2012界面一覽 1.2.2菜單欄 1.2.3工具欄 1.2.4工具箱 1.2.5屬性窗口 1.2.6解決方案資源管理器 1.2.7服務器資源管理器 1.3創建C#應用程序 1.3.1控制台應用程序(Console) 1.3.2Windows應用程序(Forms) 1.3.3ASP.NET4.5網站 1.4小結第2章 C#的語法知識 2.1變量、常量和表達式 2.1.1常量 2.1.2變量 2.1.3變量的類型 2.1.4類型轉換 2.1.5變量的作用域和生存周期 2.1.6表達式 2.2運算符 2.2.1算術運算符 2.2.2關係運算符和邏輯運算符 2.2.3賦值運算符 2.2.4?運算符 2.2.5運算符優先級 2.3流程控制語句 2.3.1if語句 2.3.2switch語句 2.3.3for語句 2.3.4foreach語句 2.3.5while語句 2.4方法和函數 2.4.1方法和函數的定義 2.4.2函數的參數 2.4.3函數的返回值 2.4.4函數的重載 2.4.5委託 2.5泛型 2.5.1什麼是泛型 2.5.2泛型的應用範圍 2.6小結
第3章 C#的面向對象特性 3.1面向對象編程概述 3.1.1什麼是類和對象 3.1.2用C#如何創建類 3.1.3用C#如何創建對象 3.1.4什麼是面向對象編程 3.2面向對象的技術 3.2.1接口 3.2.2用C#如何創建接口 3.2.3繼承 3.2.4用C#如何實現繼承 3.2.5多態 3.2.6用C#如何實現多態 3.3面向對象開發的簡單實例 3.3.1面向對象功能設計 3.3.2面向對象的類設計 3.3.3面向對象的應用 3.4小結
第2篇 C#中的LINQ開發第4章 LINQ查詢基礎 4.1LINQ基礎概念 4.1.1什麼是LINQ 4.1.2如何使用LINQ 4.1.3LINQ查詢 4.2LINQ查詢表達式 4.2.1查詢表達式 4.2.2用from子句指定數據源 4.2.3用select子句指定目標數據 4.2.4用where子句指定篩選條件 4.2.5用orderby子句進行排序 4.2.6用group子句進行分組 4.2.7用from子句進行複合查詢 4.2.8用join子句進行聯接 4.2.9用join子句進行內部聯接 4.2.10用join子句進行分組聯接 4.2.11用join子句進行左外部聯接 4.3LINQ查詢方法 4.3.1IEnumerable接口 4.3.2Lambda表達式 4.3.3用Where()方法進行篩選 4.3.4用OrderBy()方法進行排序 4.3.5用Skip()、SkipWhile()跳過元素 4.3.6用Take()、TakeWhile()提取元素 4.3.7用Max()等對元素進行數值計算 4.3.8用Distinct()消除集合中相等的元素 4.3.9用Concat()連接兩個集合 4.3.10用Union()等進行集合操作 4.4小結第5章 LINQtoADO.NET——支持LINQ語言與ADO.NET的交互 5.1LINQtoADO.NET概述 5.1.1LINQtoDataSet概述 5.1.2LINQtoSQL概述 5.2LINQtoDataSet--實現複雜數據查詢 5.2.1使用LINQtoDataSet 5.2.2查詢單個數據表 5.2.3查詢多個數據表 5.2.4用查詢創建數據表 5.2.5修改表中字段數據 5.2.6使用數據視圖DataView 5.3LINQtoSQL--對象模型 5.3.1對象模型的原理 5.3.2生成對象關係設計器 5.3.3對象關係設計器的構成 5.3.4深入LINQtoSQL類 5.3.5通過綁定瀏覽數據庫記錄 5.3.6用LINQ查詢LINQtoSQL類 5.3.7修改數據庫記錄 5.4小結第6章 LINQtoXML--支持LINQ語言與XML語言的交互 6.1LINQtoXML概述 6.1.1什麼是LINQtoXML 6.1.2LINQtoXML與DOM 6.2構造XML樹 6.2.1構造簡單的XML元素 6.2.2構造具有屬性的XML元素 6.2.3構造具有子元素的XML元素 6.2.4用XElement類構造XML樹 6.3查詢XML樹 6.3.1查找具有特定屬性的元素 6.3.2查找具有特定子元素的元素 6.3.3對XML元素進行排序 6.3.4基於上下文查詢元素 6.4操作XML樹 6.4.1加載和保存XML樹 6.4.2添加元素到XML樹 6.4.3移除XML樹的元素和屬性 6.5小結
第3篇 WPF美輪美奐技術第7章 WPF編程入門 7.1WPF概述 7.1.1理解Windows圖形系統 7.1.2WPF的功能特點 7.1.3WPF架構簡介 7.1.4WPF的類層次結構 7.2WPF開發工具簡介 7.2.1VisualStudio2012開發工具 7.2.2MicrosoftExpressionBlend設計工具 7.2.3XAMLPad標記文本查看器 7.2.4ZAM3D第三方工具(3D模型) 7.3第一個WPF應用程序 7.4WPF應用程序結構 7.5WPF與.NETFramework4.5平臺 7.5.1WindowsCommunicationFoundation概述 7.5.2WindowsCardSpace概述 7.5.3WindowsWorkflowFoundation概述 7.6小結第8章 XAML標記語言 8.1理解XAML 8.1.1XAML是什麼 8.1.2用C#模擬XAML實現的內容 8.1.3XAML的種類 8.2XAML基礎 8.2.1命名空間 8.2.2代碼後置文件 8.2.3使用簡單的屬性和類型轉換器 8.2.4屬性語法與屬性元素語法 8.2.5標記擴展特性 8.2.6附加屬性 8.2.7特定的字符和空白 8.2.8在XAML中使用事件 8.2.9使用其他命名空間中的類型 8.2.10加載和編譯XAML 8.3小結第9章 Application全局應用程序類 9.1應用程序生命周期 9.1.1創建Application對象 9.1.2創建一個自定義的Application類 9.1.3關閉應用程序 9.1.4應用程序事件 9.2事件執行周期 9.2.1Startup應用程序啟動事件 9.2.2Activated和Deactiveated事件——激活與取消激活 9.2.3DispatherUnhandledException事件——處理應用程序未處理的異常 9.2.4SessionEnding事件——註銷或關閉系統 9.2.5Exit事件——退出應用程序 9.3Application類的任務 9.3.1處理命令行參數 9.3.2訪問當前的應用程序 9.3.3單實例應用程序 9.4小結第10章 WPF佈局 10.1理解WPF佈局 10.1.1WPF的佈局原理 10.1.2佈局的過程 10.1.3佈局容器 10.2使用StackPanel進行簡單地佈局 10.2.1StackPanel示例 10.2.2StackPanel佈局屬性 10.3使用WrapPanel和DockPanel 10.3.1使用WrapPanel控件佈局 10.3.2使用DockPanel控件佈局 10.3.3簡單對話框的實現 10.4Grid控件 10.4.1創建Grid控件 10.4.2調整行列尺寸 10.4.3編程創建Grid控件 10.4.4合併行和列 10.4.5窗體分割 10.4.6共享尺寸組 10.4.7使用UniformGrid控件 10.5基於坐標佈局的Canvas 10.5.1Canvas控件的使用方法 10.5.2Canvas的Z軸 10.5.3InkCanvas介紹 10.6小結第11章 內容控件 11.1理解內容控件 11.1.1什麼是內容控件 11.1.2Content屬性介紹 11.1.3內容的對齊屬性 11.2內容容器控件 11.2.1ScrollViewer滾動條控件 11.2.2GroupBox組合框和TabItem標籤頁控件 11.2.3Expander可摺疊控件 11.3裝飾控件 11.3.1Border邊框控件 11.3.2Viewbox自動縮放控件 11.4小結第12章 WPF依賴屬性和事件路由 12.1WPF中的樹 12.1.1邏輯樹和視覺樹 12.1.2編程遍歷樹結構 12.2理解依賴屬性 12.2.1依賴屬性的概念 12.2.2定義依賴屬性 12.2.3依賴屬性示例 12.2.4共享依賴屬性 12.2.5註冊附加屬性 12.3理解事件路由 12.3.1路由事件的概念 12.3.2定義和註冊路由事件 12.3.3事件路由策略 12.3.4RoutedEventArgs類型的參數 12.3.5附加事件 12.4WPF中的事件 12.4.1生命周期事件 12.4.2鍵盤事件 12.4.3鍵盤焦點 12.4.4鍵盤狀態 12.4.5鼠標事件 12.4.6捕捉鼠標 12.4.7鼠標拖放編程 12.4.8文件拖放示例 12.5小結第13章 標準控件 13.1控件基礎 13.1.1背景色和前景色畫刷 13.1.2透明度設置 13.1.3更改字體 13.1.4更改鼠標光標 13.2內容控件 13.2.1Label標籤控件 13.2.2Button控件 13.2.3CheckBox和RadioButton控件 13.2.4ToolTip提示控件 13.2.5使用ToolTipService對象ToolTip 13.2.6使用Popup控件 13.3文本控件 13.3.1TextBox控件 13.3.2選擇文本 13.3.3PasswordBox密碼框控件 13.3.4TextBlock控件 13.4列表控件 13.4.1ListBox列表框控件 13.4.2獲取ListBox選定項 13.4.3在ListBox中進行多選 13.4.4ComboBox下拉列表框控件 13.5範圍控件 13.5.1ProgressBar進度條控件 13.5.2Slider滑動條控件 13.6小結第14章 窗口與導航 14.1Windows類簡介 14.1.1Window類的基本屬性 14.1.2窗口的生命周期 14.1.3模式與非模式窗口 14.1.4窗口的定位和尺寸 14.1.5保存和恢復窗口位置 14.2對話框窗口 14.2.1窗口的宿主 14.2.2對話框模型 14.2.3MessageBox消息框 14.2.4通用對話框 14.3非矩形窗口 14.3.1圓角窗口 14.3.2圖形窗口 14.3.3調整非矩形窗口尺寸 14.4一個簡單的導航應用程序示例 14.5基於頁面的用戶界面 14.5.1Page類簡介 14.5.2使用Hyperlink超級鏈接 14.5.3片段導航 14.5.4NavigationWindow導航窗口 14.5.5Frame頁面框架 14.5.6導航歷史記錄 14.6NavigationService導航服務 14.6.1編程控制導航 14.6.2導航生命期事件 14.6.3導航記錄管理 14.6.4使用頁函數PageFunction 14.7XAML瀏覽器應用程序 14.7.1XBAP的特點 14.7.2創建XBAP應用程序 14.8小結第15章 WPF資源、樣式和控件模板 15.1程序集資源 15.1.1添加資源 15.1.2獲取程序集資源 15.2對象資源 15.2.1資源集合 15.2.2靜態和動態資源 15.2.3非共享資源 15.2.4編程訪問資源 15.2.5應用程序資源 15.2.6系統資源 15.2.7使用資源字典組織資源 15.3樣式基礎 15.3.1創建一個樣式對象 15.3.2在樣式中設置屬性 15.3.3根據指定的類型自動應用樣式 15.3.4多級樣式 15.3.5綁定事件處理器 15.4樣式觸發器 15.4.1創建簡單觸發器 15.4.2創建事件觸發器 15.4.3數據觸發器 15.5控件模板 15.5.1理解控件模板 15.5.2一個按鈕模板示例 15.5.3模板的綁定 15.5.4模板觸發器 15.6小結第16章 形狀、變換和畫刷 16.1WPF圖形 16.1.1Shape類 16.1.2Rectangle和Ellipse類 16.1.3Stretch屬性 16.1.4Line直線對象 16.1.5Polyline多段線對象 16.1.6Polygon多邊形對象 16.1.7線帽和線連接點 16.1.8繪製虛線 16.2畫刷 16.2.1LinearGradientBrush線性漸變畫刷 16.2.2RadialGradientBrush徑向漸變畫刷 16.2.3ImageBrush圖像畫刷 16.2.4VisualBrush可視化對象畫刷 16.2.5OpacityMask不透明蒙板 16.3WPF變換 16.3.1應用變換 16.3.2TranslateTransform移動變換 16.3.3RotateTransform旋轉變換 16.3.4ScaleTransform縮放變換 16.3.5SkewTransform扭曲變換 16.3.6TransformGroup組合變換 16.4位圖效果 16.4.1模糊 16.4.2凹凸效果 16.4.3浮雕效果 16.4.4發光和陰影 16.5小結第17章 幾何圖形、圖像和可視化層 17.1路徑和幾何圖形 17.1.1線型、矩形和橢圓幾何圖形 17.1.2使用GeometryGroup組合形狀 17.1.3使用CombinedGeometry結合形狀 17.1.4認識PathGeometry對象 17.1.5用PathGeometry對象繪製直線1 17.1.6用PathGeometry對象繪製弧線1 17.1.7用PathGeometry對象繪製貝塞爾曲線2 17.1.8使用幾何迷你語言 17.1.9幾何圖形的裁切 17.2繪圖 17.2.1繪製形狀 17.2.2繪製圖像 17.2.3組合繪製 17.3可視化層 17.3.1在Visual上繪圖 17.3.2DrawingVisual宿主容器 17.3.3使用命中測試 17.4小結第18章 WPF數據綁定 18.1數據綁定基礎 18.1.1綁定到元素屬性 18.1.2使用程序代碼創建綁定 18.1.3綁定多個屬性 18.1.4綁定的方向 18.1.5綁定更新 18.1.6綁定到非元素的對象 18.2數據庫綁定 18.2.1創建數據訪問組件 18.2.2實現數據實體對象 18.2.3顯示綁定對象 18.2.4更新數據庫 18.3小結
第4篇 WF工作流編程第19章 WF編程入門 19.1WF基礎 19.1.1WF簡介 19.1.2WF的開發環境 19.1.3第一個工作流示例程序 19.1.4WF架構簡介 19.2使用WorkflowRuntime和WorkflowInstance類 19.2.1理解WorkflowRuntime工作流引擎 19.2.2理解WorkflowInstance工作流實例 19.3工作流類型和創建模式 19.3.1WF工作流的類型 19.3.2一個簡單的狀態機工作流示例 19.3.3WF工作流的創建模式 19.4小結第20章 WF活動 20.1理解WF活動 20.1.1活動的類層次結構 20.1.2活動條件類型 20.2使用WF的基本活動 20.2.1使用IfElseActivity活動 20.2.2使用WhileActivity活動 20.2.3使用ParalleActivity活動 20.2.4使用ReplicatorActivity活動 20.2.5使用ConditionedActivityGroup活動 20.2.6使用InvokeWorkflowActivity活動 20.2.7使用TerminateActivity活動 20.2.8使用SuspendActivity活動 20.3本地服務和事件驅動的活動 20.3.1理解和實現本地服務 20.3.2使用本地服務在宿主和工作流之間通信 20.3.3事件驅動的活動簡介 20.3.4EventDrivenActivity和ListenActivity使用示例 20.3.5使用EventHandlingScopeActivity活動 20.4小結第21章 WF服務 21.1WF服務基礎 21.1.1WF服務的分類 21.1.2默認的服務類簡介 21.2WF持久化服務 21.2.1準備數據庫 21.2.2創建工作流 21.2.3使用SqlWorkflowPersistenceService 21.3WF跟蹤服務 21.3.1使用工作流跟蹤服務 21.3.2跟蹤服務配置文件 21.4小結第22章 基於ASP.NET的工作流批核系統 22.1工作流批核系統簡介 22.1.1系統運行效果 22.1.2系統基本結構 22.2Workflows工作流項目 22.2.1基於事件驅動的活動實現 22.2.2UserActivity用戶活動實現 22.2.3SaveWorkItems自定義活動實現 22.2.4ApprovedWorkItemWorkflow工作流實例的實現 22.2.5工作流項目幫助類的實現 22.3ASP.NET宿主應用程序項目 22.3.1初始化工作流運行時引擎 22.3.2創建工作流實例 22.3.3編輯和審核工作申請表單 22.4小結
第5篇 WCF開發第23章 SOA和WCF基礎介紹 23.1SOA架構介紹 23.1.1軟件設計思想發展的簡要介紹 23.1.2什麼是SOA 23.2WCF簡要介紹 23.2.1什麼是WCF 23.2.2WCF體系框架 23.2.3WCF基礎概念介紹 23.3第一個WCF程序 23.3.1HelloWorld服務契約的定義 23.3.2HelloWorld的宿主程序 23.3.3訪問HelloWorld服務的客戶端程序 23.4小結第24章 通道模型和綁定 24.1WCF通道模型 24.1.1WCF通道模型概述 24.1.2消息交換模式和通道形狀 24.1.3數據報模式 24.1.4請求-響應模式 24.1.5雙工模式 24.1.6帶會話的數據報模式、請求-響應模式和雙工模式 24.1.7通道形狀的改變 24.1.8通道形狀和上層服務協議 24.1.9通道管理器 24.1.10ICommunicationObject接口和狀態改變 24.2標準綁定介紹 24.2.1綁定的基本概念 24.2.2標準綁定 24.2.3設置綁定的方式 24.2.4如何選擇綁定 24.3本機WCF-WCF交互的綁定和地址 24.3.1場景概述 24.3.2IPC基本概念 24.3.3使用netNamedPipeBinding 24.3.4netNamedPipeBinding的地址和配置 24.3.5netNamedPipeBinding特點總結 24.4跨主機WCF-WCF交互的綁定和地址 24.4.1場景概述 24.4.2TCP協議概述 24.4.3Net.Tcp埠共享 24.4.4使用netTcpBinding 24.4.5netTcpBinding的地址和配置 24.4.6netTcpBinding特點總結 24.5與WS-IBasicWeb服務進行交互的綁定和地址 24.5.1場景概述 24.5.2SOAP協議概述 24.5.3使用basicHttpBinding 24.5.4basicHttpBinding的地址和配置 24.5.5basicHttpBinding特點總結 24.6與改進Web服務進行交互的綁定和地址 24.6.1場景概述 24.6.2改進Web服務協議概述 24.6.3使用wsHttpBinding 24.6.4wsHttpBinding的地址和配置 24.6.5wsHttpBinding特點總結 24.6.6使用wsDualHttpBinding 24.6.7wsDualHttpBinding的地址和配置 24.6.8wsDualHttpBinding特點總結 24.6.9使用ws2007HttpBinding 24.7使用離線模式進行消息交互的綁定和地址 24.7.1場景概述 24.7.2MSMQ協議概述 24.7.3使用netMsmqBinding 24.7.4netMsmqBinding的地址和配置 24.7.5netMsmqBinding特點總結 24.7.6使用msmqIntegrationBinding 24.7.7msmqIntegrationBinding的地址和配置 24.7.8msmqIntegrationBinding特點總結 24.8小結第25章 定義服務:契約編程 25.1契約定義和分類 25.1.1什麼是契約 25.1.2契約分類 25.2服務契約 25.2.1服務契約和WSDL 25.2.2服務契約的重載問題 25.2.3定義請求-響應操作 25.2.4定義單程操作 25.2.5定義雙程操作 25.2.6WCF中事件的實現 25.3數據契約 25.3.1數據契約和XSD 25.3.2使用DataContract特性定義數據契約 25.3.3數據契約的繼承 25.3.4已知類型的定義 25.3.5數據契約的等效性 25.3.6數據契約的版本控制 25.3.7定義必需的數據成員 25.3.8數據默認值的發送 25.3.9數組和集合的處理 25.4消息契約 25.4.1消息契約基本概念 25.4.2強類型消息 25.4.3弱類型消息 25.5錯誤處理和錯誤契約 25.5.1SOAP消息的錯誤處理 25.5.2服務端未捕獲的異常 25.5.3包含詳細異常信息 25.5.4捕捉服務異常 25.5.5FaultCode和FaultReason的使用 25.5.6使用錯誤契約和FaultException 25.6小結第26章 WCF中的行為 26.1實例管理 26.1.1實例管理的設置 26.1.2PerCall實例策略 26.1.3PerSession實例策略和會話 26.1.4Single實例策略 26.2併發管理 26.2.1併發管理的設置 26.2.2Single併發模式 26.2.3Multiple併發模式 26.2.4Reentrant併發模式 26.3元數據的發布 26.3.1HTTP-GET方式發布元數據 26.3.2MEX終結點方式發布元數據 26.4事務管理 26.4.1事務的基本概念和特性 26.4.2單服務事務 26.4.3分佈式事務 26.4.4事務協議和事務管理器 26.5小結第27章 安全 27.1常用概念介紹 27.1.1身份驗證 27.1.2授權 27.1.3保密性 27.1.4完整性 27.1.5憑據 27.2傳輸安全性 27.2.1傳輸安全性的三要素 27.2.2WCF支持的傳輸安全模式 27.2.3傳輸安全模式的配置 27.2.4Transport安全模式下的憑證 27.2.5Message安全模式下的憑證 27.3局域網內Windows平臺系統的安全性 27.3.1場景分析 27.3.2服務定義 27.3.3身份認證 27.3.4授權 27.4跨Internet系統的安全性 27.4.1場景概述和綁定選擇 27.4.2消息安全 27.4.3身份認證 27.4.4授權 27.5安全機制的日誌和跟蹤 27.6小結第28章 自動點滴管理系統 28.1需求分析 28.1.1系統介紹 28.1.2客戶端功能 28.1.3服務端功能 28.2系統設計 28.2.1服務邊界和接口 28.2.2傳輸和寄宿的設計 28.2.3界面的設計 28.3系統實現 28.3.1服務契約的定義 28.3.2數據契約的定義 28.3.3服務的實現 28.3.4控制台實現 28.3.5客戶端實現 28.4運行和測試 28.5小結