.NET、C#與Silverlight開發圣典——分享15位MVP 的最佳實踐經驗 ( 簡體 字) |
作者:Bill Evjen, Dominick Baier,Gy?rgy Balassy | 類別:1. -> 程式設計 -> .NET -> C# 2. -> 程式設計 -> 網路編程 -> SilverLight |
譯者:王凈、范園芳、李卉 譯 |
出版社:清華大學出版社 | 3dWoo書號: 34086 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:9/25/2012 |
頁數:568 |
光碟數:0 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 |
ISBN:9787302299950 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:本書是由多位作者共同完成的。在一開始計劃編寫本書時,就想編寫一本不同風格的書。如今市面上的很多計算機圖書都是對計算機技術的某一特定領域進行詳細的講述,由一位或少數幾位作者來編寫。不管你感興趣的是C#、ASP.NET、XML(Extensible Markup Language,可擴展標記語言)還是WCF(Windows Communication Foundation,Windows通信基礎),都可以找到從入門到精通各個階段的相關圖書。如今在市面上可以找到很多相關的參考書目。 而本書并非如此,相反,我們的出發點是“匯集當今業界最好的從業人員(Microsoft MVP和Microsoft Regional Director),讓他們就自己最熟悉的領域單獨編寫一章”。 當然,這些作者對.NET都有全面的了解,但是卻只專門編寫自己喜歡和感興趣的部分(也是他們最熟悉的領域)。總的來說,本書由通用領域中的一系列大文章組合而成,覆蓋了.NET Framework的大部分領域。 目前,.NET Framework包含的內容非常龐大,所以在使用時不可能了解所有的內容。這也就是很多軟件開發人員組成開發團隊的原因。他們注重將個人組織在一起成為一個整體,以便可以全面了解將.NET Framework作為工作基礎所產生的強大力量。 當開始處理.NET Framework各個領域中的工作時,你將會發現本書是非常好的資源。當需要完成一些.NET Framework中陌生領域的工作而又未曾花費時間來完全了解該領域時,本書可以作為技術顧問。 讀者對象 本書適合專門使用.NET Framework構建解決方案的中高級開發人員使用。在本書中可以找到從Web開發直至終端開發的所有相關內容。 主要內容 本書覆蓋了許多.NET Framework的核心領域。在講授Silverlight之前,首先通過重點講授ASP.NET來介紹客戶端的相關內容。而在講授ASP.NET時,還介紹了在構建ASP.NET應用程序后如何使用這些應用程序以及如何使用jQuery(jQuery是目前開發Web應用程序最為流行的方法)。除了ASP.NET,還介紹了如何在Silverlight中應用MVVM (Model-View- ViewModel,模型-視圖-視圖模型)等模式。然后,將Silverlight的覆蓋范圍由PC客戶端擴展到手機客戶端。而當處理客戶端時,有一章討論了如何在設計者和開發者之間搭建橋梁。 介紹完客戶端開發工作后,介紹了WCF等通信技術以及一些保證通信安全的方法(如使用WIF,即Windows Identity Foundation,Windows標識基礎)。其中介紹了一些特殊的通信協議(如REST和OData)以及.NET Task Parallel Library(.NET任務并行庫)。 之后的幾章介紹了一個關鍵主題,包括使用Windows工作流和WPF數據綁定。而最后幾章則介紹了開發生命周期的各個方面,其中包括使用用戶故事及利用單元測試進行開發。 總之,本書內容豐富,每章為成功完成手頭的工作提供了有針對性的內容。 使用本書的條件 .NET Framework 4.0可以在Windows XP、Windows 2003、Windows 7及最新的Windows Server 2008 R2中運行。要使用.NET Framework編寫代碼,需要安裝.NET 4 SDK。 此外,除非打算使用文本編輯器或其他一些第三方開發環境編寫C#代碼,否則必定需要使用Visual Studio 2010。運行托管代碼并不需要完整的SDK,但需要.NET運行庫。 同時,雖然本書中用C#來顯示所有的代碼示例,但如果愿意,可以對這些示例進行轉換,并在Visual Basic中完成相同的功能。 源代碼 在練習書中的示例時,可以選擇手動輸入代碼或者使用本書附帶的源代碼文件。書中用到的所有源代碼都可以從www.wrox.com下載。進入站點http://www.wrox.com后,只需要找到本書的書名(使用Search搜索框或書名列表),單擊本書詳細信息頁面上的Download Code鏈接,就可以得到本書所有的源代碼。 注意:因為很多書的書名都相似,所以用ISBN搜索更為容易。本書英文版的ISBN是978-1-118-02196-5。
下載完代碼后,用您喜歡的壓縮工具把它解壓縮。此外,也可以去Wrox的主下載頁面www.wrox.com/dynamic/books/download.aspx 找到本書或Wrox出版的其他書籍的代碼。 勘誤表 盡管我們竭盡所能來確保在正文和代碼中沒有錯誤,但人無完人,錯誤難免會發生。如果您在Wrox出版的書中發現了錯誤(例如拼寫錯誤或代碼錯誤),我們將非常感謝您的反饋。發送勘誤表將節省其他讀者的時間,同時也會幫助我們提供更高質量的信息。 要找到本書的勘誤頁面,可以進入www.wrox.com,使用Search搜索框或書名列表定位本書,然后在本書的詳細信息頁面上單擊Book Errata鏈接。在這個頁面上可以查看為本書提交的、Wrox編輯粘貼上去的所有錯誤。完整的書名列表(包括每本書的勘誤表)也可以從www.wrox.com/misc-pages/booklist.shtml上獲得。 如果您在本書的勘誤頁面上沒有看到您發現的錯誤,可以到wkservice@vip.163.com上填寫表單,把您發現的錯誤發給我們。我們會檢查這些信息,如果屬實,就把它添加到本書的勘誤頁面上,并在本書隨后的版本中更正錯誤。 p2p.wrox.com 如果想和作者或同行進行討論,請加入http://p2p.wrox.com上的P2P論壇。該論壇是一個基于Web的系統,您可以發布有關Wrox圖書及相關技術的消息,與其他讀者或技術人員交流。該論壇提供了訂閱功能,當您感興趣的主題有新帖子發布時,系統會郵件通知。Wrox的作者、編輯、其他業界專家和像您一樣的讀者都會出現在這些論壇中。 在http://p2p.wrox.com網站上,您會找到很多不同的論壇,它們不但有助于您閱讀本書,還有助于您開發自己的應用程序。加入論壇的步驟如下: (1) 進入http://p2p.wrox.com,單擊Register鏈接。 (2) 閱讀使用條款,然后單擊Agree按鈕。 (3) 填寫加入該論壇必需的信息和其他您愿意提供的信息,單擊Submit按鈕。 (4) 您將收到一封電子郵件,描述如何驗證您的賬戶和完成加入過程。 注意:不加入P2P也可以閱讀論壇里的消息。但是如果要發布自己的消息,就必須加入。
加入之后,就可以發布新的消息和回復其他用戶發布的消息。可以隨時在Web上閱讀論壇里的消息。如果想讓某個論壇的新消息以電子郵件的方式發給您,可以單擊論壇列表中論壇名稱旁邊的Subscribe to this Forum圖標。 要了解如何使用Wrox P2P的更多信息,請閱讀P2P FAQ,其中回答了論壇軟件如何使用的問題,以及許多與P2P和Wrox圖書相關的問題。要閱讀FAQ,單擊任何P2P頁面上的FAQ鏈接即可。
|
內容簡介:本書由15位經驗豐富且學識淵博的MVP合著而成,深入探討.NET 4世界,提供了關于如何使用.NET Framework、C#、Silverlight以及Visual Studio建立廣泛的解決方案或增強現有解決方案的無價信息。
|
目錄:第1章 ASP.NET和jQuery 1 1.1 了解Web Forms 2 1.1.1 視圖狀態 2 1.1.2 web.config轉換 4 1.1.3 簡化web.config 4 1.1.4 新的ASP.NET Web Forms模板 4 1.2 ASP.NET MVC 7 1.2.1 MVC的版本 7 1.2.2 MVC的組成部分 8 1.2.3 MVC工具 13 1.2.4 示例應用程序 18 1.2.5 ASP.NET MVC框架小結 26 1.3 jQuery 26 1.3.1 使用jQuery操縱DOM元素 28 1.3.2 使用jQuery調用服務器端代碼 29 1.3.3 jQuery 30 1.4 小結 30 1.5 作者簡介 / 31 第2章 ASP.NET性能 / 33 2.1 了解ASP.NET如何處理頁面請求 / 33 2.2 狀態管理和緩存 / 35 2.2.1 了解.NET中的狀態 / 36 2.2.2 使用會話 / 37 2.2.3 使用輸出緩存 / 41 2.2.4 部分頁面緩存 / 46 2.2.5 查看.NET 4中新的對象緩存選項 / 47 2.3 緩存Web服務 / 49 2.4 硬件注意事項 / 50 2.5 使用性能計數器 / 51 2.6 提示和技巧 / 53 2.6.1 將請求減少到最小值 / 54 2.6.2 使用內容傳遞網絡 / 54 2.6.3 使瀏覽器可以長時間緩存項 / 55 2.6.4 啟用內容壓縮 / 57 2.6.5 頁面中內容的位置 / 58 2.6.6 將JavaScript和CSS外部化 / 58 2.7 小結 / 59 2.8 作者簡介 / 59 第3章 ASP.NET的道德黑客攻擊 / 61 3.1 道德黑客攻擊——這是矛盾修飾法嗎 / 62 3.2 填充工具箱 / 63 3.2.1 Fiddler / 63 3.2.2 Firebug / 65 3.2.3 Internet Explorer 9開發人員工具欄 / 66 3.2.4 Lens / 66 3.3 了解會話管理 / 67 3.3.1 HTTP中的會話管理 / 67 3.3.2 ASP.NET中的會話管理 / 68 3.4 攻擊ASP.NET身份驗證 / 69 3.4.1 深入研究ASP.NET身份驗證 / 69 3.4.2 竊取票證 / 70 3.4.3 篡改票證 / 71 3.4.4 劫持登錄會話 / 72 3.4.5 跨站請求偽造 / 77 3.5 攻擊ASP.NET會話 / 80 3.5.1 幕后的ASP.NET會話 / 80 3.5.2 猜測會話ID / 80 3.5.3 竊取會話cookie / 81 3.5.4 會話固定 / 85 3.6 黑客攻擊視圖狀態 / 87 3.6.1 窺視視圖狀態 / 87 3.6.2 篡改視圖狀態 / 90 3.6.3 轉載視圖狀態 / 90 3.7 欺騙事件處理程序 / 91 3.7.1 事件驗證內部 / 92 3.7.2 黑客攻擊事件驗證 / 92 3.7.3 保護網站免受POST攻擊 / 94 3.8 小結 / 95 3.9 作者簡介 / 95 第4章 如何構建真實世界的 Silverlight 5應用程序 / 97 4.1 為應用程序設置場景 / 98 4.2 先原型后代碼——使用 SketchFlow / 99 4.2.1 SketchFlow簡介 / 100 4.2.2 熟悉SketchFlow / 100 4.2.3 創建應用程序原型 / 101 4.3 數據綁定入門 / 105 4.3.1 Hello,數據綁定 / 105 4.3.2 創建數據綁定屏幕 / 108 4.4 WCF RIA服務的應用 / 110 4.4.1 選擇服務層技術 / 112 4.4.2 Hello,WCF RIA服務 / 112 4.4.3 創建服務器端代碼 / 114 4.4.4 Silverlight項目 / 120 4.5 應用MVVM模式 / 124 4.5.1 不同部分,不同角色 / 125 4.5.2 選擇MVVM方法 / 126 4.5.3 挑選小助手——MVVM Light / 126 4.5.4 重構為MVVM模式 / 126 4.5.5 聽你指揮 / 131 4.5.6 消息傳遞 / 133 4.6 創建自定義控件 / 134 4.7 小結 / 137 4.8 作者簡介 / 137 第5章 Silverlight——業務應用程序 的一線希望 / 139 5.1 入門 / 140 5.1.1 Hello,Business World / 140 5.1.2 項目模板 / 143 5.1.3 XAML是對象XML / 145 5.1.4 托管Silverlight應用程序 / 146 5.1.5 提供卓越的IApplication Service / 147 5.2 選擇合適的Silverlight框架 / 148 5.2.1 獲取SOLID:MVC、MVP和MVVM / 149 5.2.2 依賴注入和控制反轉 / 151 5.2.3 托管擴展框架 / 152 5.2.4 MVVM框架 / 155 5.3 使Silverlight即插即用 / 158 5.3.1 動態加載 / 158 5.3.2 脫離瀏覽器的應用程序 / 159 5.3.3 獨立存儲 / 159 5.3.4 通信 / 160 5.4 Silverlight的未來 / 161 5.5 小結 / 161 5.6 作者簡介 / 162 第6章 針對設計者和開發者的提示和技巧 / 163 6.1 了解Silverlight和WPF之間的區別 / 163 6.1.1 優先選擇XAML / 164 6.1.2 理解關注點分離 / 164 6.2 針對設計者的提示和技巧 / 164 6.2.1 命名對象 / 164 6.2.2 在Photoshop中設計 / 165 6.2.3 從Photoshop中導入資產 / 165 6.2.4 為了更好的設計體驗而使用示例數據 / 166 6.3 針對開發者的提示和技巧 / 167 6.3.1 在Design模式中顯示示例數據 / 168 6.3.2 使用行為以使事情更簡單 / 168 6.4 小結 / 170 6.5 作者簡介 / 170 第7章 Silverlight 4中的MVVM模式 / 171 7.1 開發自己的框架 / 171 7.2 了解MVVM / 172 7.3 創建MVVM框架 / 173 7.3.1 框架目標 / 174 7.3.2 框架技術 / 175 7.3.3 入門 / 176 7.3.4 定義ViewModel / 178 7.3.5 創建新View和ViewModel / 185 7.3.6 注冊View和ViewModel / 187 7.3.7 顯示View / 192 7.3.8 構建復合屏幕 / 197 7.3.9 顯示對話框 / 203 7.3.10 View之間的通信 / 205 7.3.11 使用MVVM框架 / 205 7.4 現有MVVM框架 / 206 7.4.1 Prism / 206 7.4.2 MVVM Light / 207 7.4.3 Caliburn.Micro / 207 7.4.4 其他框架 / 208 7.5 其他注意事項 / 208 7.5.1 數據綁定 / 208 7.5.2 命令 / 209 7.5.3 數據訪問 / 209 7.6 小結 / 210 7.7 作者簡介 / 210 第8章 針對Silverlight開發人員的 Windows Phone “Mango” / 211 8.1 硬件基礎 / 211 8.1.1 Camera API / 211 8.1.2 Sensors API / 215 8.2 軟件基礎 / 217 8.2.1 運行庫的改進 / 218 8.2.2 網絡套接字 / 219 8.2.3 Silverlight/XNA混合應用程序 / 220 8.2.4 本地數據庫 / 221 8.3 應用程序模型 / 222 8.3.1 應用程序的快速切換 / 222 8.3.2 多任務處理 / 224 8.3.3 通知 / 226 8.3.4 后臺傳輸服務 / 227 8.4 集成服務 / 228 8.4.1 次要Tile / 228 8.4.2 推送通知 / 229 8.4.3 聯系人/約會數據訪問 / 230 8.5 小結 / 231 8.6 作者簡介 / 231 第9章 與WCF的實用服務通信 / 233 9.1 示例項目 / 234 9.2 再論面向服務 / 234 9.2.1 分布意味著通信 / 235 9.2.2 面向服務 / 236 9.3 WCF Basics 101 / 237 9.3.1 基本工具箱 / 238 9.3.2 B的能力 / 239 9.3.3 少即是多 / 240 9.4 應用程序方案 / 240 9.4.1 需求 / 241 9.4.2 應用程序體系結構 / 241 9.4.3 應用程序結構 / 242 9.5 建模服務 / 243 9.6 元數據 / 254 9.6.1 Flat WSDL / 255 9.6.2 元數據URL / 257 9.7 實現服務 / 259 9.7.1 驗證 / 259 9.7.2 映射 / 260 9.7.3 跟蹤 / 263 9.8 托管服務 / 266 9.8.1 自定義托管 / 266 9.8.2 使用控制臺主機進行測試 / 267 9.8.3 帶有Windows Service的自托管 / 267 9.8.4 帶有WAS的Web托管 / 270 9.8.5 引導 / 272 9.9 消費服務 / 274 9.9.1 共享契約 / 274 9.9.2 異步調用 / 275 9.9.3 服務代理模式 / 275 9.10 對服務方法的補充 / 279 9.10.1 Web編程模型 / 279 9.10.2 托管與消費 / 281 9.11 優化策略 / 283 9.11.1 調整 / 283 9.11.2 流模式 / 287 9.12 小結 / 289 9.13 作者簡介 / 289 第10章 使用WIF保護WCF服務 / 291 10.1 .NET應用程序中的 身份標識 / 291 10.1.1 基類庫中的身份驗證 / 292 10.1.2 WCF中的身份驗證 / 293 10.1.3 Windows標識基礎 / 294 10.1.4 重述構建基塊 / 298 10.2 WCF和WIF / 298 10.2.1 先決條件 / 299 10.2.2 配置和啟用WIF / 299 10.2.3 轉換和訪問聲明 / 308 10.2.4 授權 / 309 10.2.5 跟蹤 / 312 10.3 保護電影數據庫SOAP服務 的可能解決方案 / 312 10.3.1 內部用戶 / 313 10.3.2 添加外部內容提供商 / 319 10.3.3 訪問解決方案 / 323 10.4 保護電影數據庫REST服務的可能解決方案 / 323 10.4.1 內部用戶 / 324 10.4.2 基于令牌的身份驗證 / 324 10.5 小結 / 326 10.6 作者簡介 / 326 第11章 實用的.NET任務并行庫 / 327 11.1 問題和解決方案 / 328 11.2 使用任務 / 330 11.2.1 Task類 / 330 11.2.2 閉包 / 333 11.2.3 應用任務 / 336 11.3 了解TPL樣式的異常處理 / 340 11.3.1 了解AggregateException / 340 11.3.2 實現異常處理 / 341 11.4 了解取消 / 342 11.4.1 應用取消——基礎知識 / 342 11.4.2 應用取消——注冊操作、互鎖 / 346 11.5 使用并發集合——ConcurrentQueue / 347 11.6 了解延續 / 350 11.6.1 TaskCompletionSource / 352 11.6.2 實現延續 / 353 11.6.3 AsyncState / 356 11.7 使用BlockingCollection類 / 358 11.7.1 使用BlockingCollection / 360 11.7.2 了解SpinWait.SpinUntil / 363 11.8 小結 / 365 11.9 作者簡介 / 366 第12章 WF編程語言 / 367 12.1 入門 / 367 12.1.1 聲明性工作流語法 / 370 12.1.2 變量和參數 / 371 12.1.3 表達式 / 372 12.1.4 屬性 / 373 12.1.5 “動態”屬性 / 373 12.2 控制執行流 / 374 12.2.1 程序性樣式 / 375 12.2.2 流程圖樣式 / 381 12.3 構建自定義活動 / 388 12.3.1 Activity / 388 12.3.2 CodeActivity / 390 12.3.3 AsyncCodeActivity / 391 12.3.4 NativeActivity / 393 12.3.5 了解何時使用自定義 活動 / 395 12.3.6 復合活動 / 396 12.3.7 活動的生命周期 / 396 12.4 使用持久性 / 399 12.5 在Windows AppFabric 中托管工作流 / 400 12.6 進一步閱讀 / 401 12.7 小結 / 402 12.8 作者簡介 / 402 第13章 實用的WPF數據綁定 / 403 13.1 示例應用程序 / 403 13.1.1 使用MVVM / 404 13.1.2 了解示例應用程序 的結構 / 404 13.1.3 了解Model / 405 13.1.4 了解ViewModel / 406 13.1.5 了解View / 408 13.1.6 使用定位器類 / 408 13.2 數據綁定概述 / 413 13.2.1 了解數據上下文 / 414 13.2.2 了解元素到元素的 綁定 / 414 13.2.3 了解綁定模式 / 414 13.2.4 基于接口的綁定 / 415 13.3 使用綁定命令 / 415 13.3.1 使用MVVM和Delegate Command / 416 13.3.2 創建ViewModel / 417 13.3.3 定義ViewModels的命令 / 418 13.3.4 通過XAML代碼綁定命令 / 420 13.4 使用簡單的數據綁定 / 420 13.5 值的轉換 / 422 13.6 綁定多個屬性 / 424 13.7 綁定到列表 / 426 13.7.1 使用CollectionViewSource進行過濾 / 431 13.7.2 顯示列表項的詳細信息 / 433 13.7.3 使用數據模板 / 435 13.7.4 分組 / 436 13.7.5 使用分層數據綁定 / 438 13.7.6 綁定長列表 / 443 13.8 編輯數據 / 446 13.8.1 更新數據 / 446 13.8.2 驗證 / 453 13.8.3 顯示錯誤 / 454 13.8.4 編輯Grid / 456 13.9 小結 / 466 13.10 作者簡介 / 466 第14章 通過用戶故事和BDD 驅動開發 / 467 14.1 通過用戶故事將需求捕捉為功能 / 467 14.1.1 正式需求文檔所存在的問題 / 468 14.1.2 使用用戶故事來專注業務價值并促進溝通 / 468 14.1.3 功能方案和故事驗收標準 / 469 14.2 TDD的不足之處 / 470 14.3 關注帶有BDD的行為 / 470 14.3.1 由外向內開發 / 470 14.3.2 使用BDD框架將功能轉化為代碼 / 472 14.3.3 Tic-Tac-Toe BDD Kata / 475 14.4 通過用戶故事來獲取游戲Tic-Tac-Toe的功能 / 475 14.5 項目入門 / 478 14.5.1 方案:開始編寫游戲 / 480 14.5.2 整合Starting a Game方案 / 491 14.5.3 方案:交替游戲者 / 492 14.5.4 整合交替游戲者方案 / 515 14.5.5 方案:顯示游戲 / 516 14.5.6 整合顯示游戲方案 / 529 14.5.7 方案:獲得游戲勝利的條件:一排上有三個相同的標記 / 529 14.5.8 整合一排成三取得游戲勝利的方案 / 546 14.5.9 完成游戲 / 546 14.6 更進一步 / 546 14.7 小結 / 547 14.8 作者簡介 / 547 第15章 自動化單元測試 / 549 15.1 了解單元測試 / 549 15.1.1 作用域、LEGO和連接部件 / 549 15.1.2 了解測試驅動開發 / 550 15.2 了解測試先行方法的好處 / 551 15.2.1 可測試代碼 / 551 15.2.2 自文檔化代碼 / 551 15.2.3 防御性代碼 / 551 15.2.4 可維護代碼 / 551 15.2.5 代碼味道探測器 / 551 15.3 面向一個基本示例 / 552 15.4 分配、行為、斷言 / 553 15.4.1 分配 / 553 15.4.2 行為 / 553 15.4.3 斷言 / 553 15.5 代碼、測試、框架和運行程序 / 553 15.5.1 代碼 / 554 15.5.2 測試 / 554 15.5.3 測試框架 / 554 15.5.4 測試運行程序 / 555 15.5.5 使用CI服務器和源代碼管理 / 557 15.6 解決方案/項目的結構 / 557 15.7 使用NuGet來混合nUnit和VS 2010 / 558 15.8 帶有虛假和仿造的方法 / 559 15.8.1 虛假依賴注入 / 559 15.8.2 Mocking框架 / 561 15.9 類特性、測試特性和特殊方法 / 562 15.10 測試較難測試的部分——推動邊緣 / 563 15.10.1 MVC / 564 15.10.2 MVP / 564 15.10.3 MVVM / 565 15.11 使用傳感變量來重構非測試性代碼 / 566 15.12 在其他實踐中使用自動化測試 / 567 15.13 小結 / 568 15.14 作者簡介 / 568
|
序: |