[書訊]《.NET 依賴注入》 (2014-12-08 更新)


 

書 名:.NET 依賴注入
頁 數:235 
格 式:PDF、EPUB、MOBI
難易度:中階至進階
出版日期:2014 年 12 月 8 日
ISBN:9789574320684


簡介

本書內容是關於 .NET 相依性注入(dependency injection;簡稱 DI)的相關議題。透過本書,您將會了解:

  • 什么是 DI、它有什么優點、何時使用 DI、以及可能碰到的陷阱。
  • 如何運用 DI 應付容易變動的軟體需求,設計出更彈性、更好維護的程式碼。
  • 與 DI 有關的設計模式。
  • DI 於.NET 應用程序中的實務應用(如 ASP.NET MVC、ASP.NET WEB API、WCF 等等)。
  • 如何在應用程序中使用現成的 DI 框架來協助實現 DI。本書支持的 DI 框架主要是 

    Unity,部分章節有提供 Autofac 的范例(如第 5 章、第 6 章)。

本書的范例皆以 C# 撰寫,讀者無須具備任何 DI 背景知識。

點我下載樣章

 

如何購買

您可以至下列平台購買(都有樣章可以免費下載試閱): 

購書時,您可在網頁上自行調整價格滑動桿,以本書的最低價格結賬。當然,如果您要給予作者更多鼓勵,也可以直接用建議售價或更高的價錢來購買。 

 

更新通知

訂購此書時,只要有輸入 e-mail 地址,將來有新版本發布時,您就會收到更新通知和下載連結。  

 

Table of Content

序
    關於本書
    誰適合閱讀本書
    如何閱讀本書
    書寫慣例
    需要准備的工具
    更新與支持
        范例程序與補充材料
    致謝
Part I:基礎篇
    第 1 章:導論
        為什么需要 DI?
            可維護性
            寬松耦合
            可測試性
            平行開發
        什么是 DI?
            入門范例—非 DI 版本
            入門范例—DI 版本
                提煉接口(Extract Interface)
                控制反轉(IoC)
        何時該用 DI?
        本章回顧
    第 2 章:DI 用法與模式
        設計模式梗概
            小引-電器與接口
            Null Object 模式
            Decorator 模式
            Composite 模式
            Adapter 模式
            Factory 模式
        注入方式
            構造函數注入
                已知應用例
                用法
                范例程序
            屬性注入
                已知應用例
                用法
                范例程序
            方法注入
                已知應用例
                用法
                范例
        Ambient Context 模式
            已知應用例
            范例程序(一)
            范例程序(二)
        Service Locator 模式
        過猶不及-再談構造函數注入
            半吊子注入
                阻止相依蔓延
                解決「半吊子注入」
            過度注入
                重構成參數對象
                重載構造函數
                重構成 Façade 模式
        本章回顧
    第 3 章:DI 容器
        DI 容器簡介
            對象組合
        自制 DI 容器
            自制 DI 容器—2.0 版
            現成的 DI 容器
        對象組合
            使用 XML
            使用代碼
            自動注冊
            自動匹配
            深層解析
        對象生命周期管理
            內存泄漏問題
            生命周期選項
        攔截
            使用 Decorator 模式實現攔截
        本章回顧
Part II:實戰篇
    第 4 章:DI 與 ASP.NET MVC 分層架構
        分層架構概述
            Repository 模式
        MVC 分層架構范例 V1-緊密耦合
            領域模型
            數據訪問層
            應用層
            表示層
            檢視目前設計
        MVC 分層架構范例 V2-寬松耦合
            領域模型
            數據訪問層
            應用層
            表示層
            組合對象
                切換 Controller 工廠
            檢視目前設計
            避免過度設計
        MVC 分層架構范例 V3-簡化一些
            數據訪問層
            應用層
            表示層
            檢視目前設計
            一個 HTTP 請求搭配一個 DbContext
        ASP.NET MVC 5 的 IDependencyResolver
            實現自定義的 IDependencyResolver 組件
        本章回顧
    第 5 章:DI 與 ASP.NET Web API
        ASP.NET Web API 管線
            Controller 是怎樣建成的?
            注入對象至 Web API Controller
        抽換 IHttpControllerActivator 服務
            純手工打造
            使用 DI 容器:Unity
        抽換 IDependencyResolver 服務
            IDependencyResolver 與 IDependencyScope
            純手工 DI 范例
                步驟 1:實現 IDependencyResolver 接口
                步驟 2:替換默認的類型解析器
            使用 DI 容器:Unity
            使用 DI 容器:Autofac
        本章回顧
    第 6 章:更多 DI 實現范例
        共享代碼
        DI 與 ASP.NET MVC 5
            練習:使用 Unity
                Step 1:建立新項目
                Step 2:設定 Unity 容器
                Step 3:建立 Controller
        DI 與 ASP.NET Web Forms
            問題描述
            解法
            練習:使用 Unity
                Step 1:建立新項目
                Step 2:注冊類型
                Step 3:編寫 HTTP Handler
                Step 4:注冊 HTTP Handler
                Step 5:編寫測試頁面
            練習:使用 Unity 的 BuildUp 方法
            練習:使用 Autofac
                Step 1:建立新項目
                Step 2:注冊類型
                Step 3:編寫 HTTP Handler
                Step 4:注冊 HTTP Handler
                Step 5:編寫測試頁面
        DI 與 WCF
            問題描述
            解法
            練習:使用 Unity
                Step 1:建立 WCF 服務
                Step 2:編寫自定義的 ServiceHostFactory
                Step 3:編寫自定義的 ServiceHost
                Step 4:實現 IContractBehavior 接口
                Step 5:實現 IInstanceProvider 接口
                Step 6:設定 Unity 容器
                Step 7:修改 Web.config
                Step 8:編寫客戶端程序
            練習:使用 Autofac.Wcf 套件
                Step 1:建立 WCF 服務
                Step 2:編寫自定義的 ServiceHostFactory
                Step 3:設定 Autofac 容器
                Step 4:修改 Web.config
                Step 5:編寫客戶端程序
        本章回顧
Part III:工具篇
    第 7 章:Unity 學習手冊
        Unity 快速入門
            Hello, Unity!
            注冊類型對應
            注冊現有對象
            解析
                解析一個對象:Resolve
                具名注冊與解析
                解析多個對象:ResolveAll
            注冊與解析泛型
            檢查注冊
            使用配置文件來設定容器
                Unity 配置文件基本格式
                加載配置文件設定
        注冊與解析-進階篇
            共享的范例程序
                情境
                設計
                代碼
            自動注冊
                解決重復類型對應的問題
                AllClasses 類型
                WithMappings 類型
            自動匹配
                自動匹配規則
            手動匹配
                循環參考問題
            注入參數
            注入屬性
            延遲解析
                使用 Lazy
                使用自動工廠
            注入自定義工廠
        對象生命周期管理
            默認的生命周期
            指定生命周期
                Transient vs. Per-Resolve
                Per-Request 生命周期
            階層式容器
            選擇生命周期管理員
        攔截
            使用 Unity 容器實現攔截
                Step 1:加入 Unity 的攔截擴展包
                Step 2:實現攔截行為
                Step 3:注冊攔截行為
        結語
附錄一:DI 容器實務建議
    容器設定
        避免對同一個組件(DLL)重復掃描兩次或更多次
        使用不同類型來注冊不同用途的組件
        使用非靜態類型來建立與設定 DI 容器
        不要另外建立一個 DLL 項目來集中處理依賴關系的解析
        為個別組件加入一個初始化類型來設定依賴關系
        掃描組件時,盡量避免指定組件名稱
    生命周期管理
        優先使用 DI 容器來管理對象的生命周期
        考慮使用子容器來管理 Per-Request 類型的對象
        在適當時機調用容器的 Dispose 方法
    組件設計相關建議
        避免建立深層的巢狀對象
        考慮使用泛型來封裝抽象概念
        考慮使用 Adapter 或 Façade 來封裝 3rd-party 組件
        不要一律為每個組件定義一個接口
        對於同一層(layer)的組件,可依賴其具象類型
    動態解析
        盡量避免把 DI 容器直接當成 Service Locator 來使用
        考慮使用對象工廠或 Func 來處理晚期綁定
附錄二:初探 ASP.NET 5 的自帶 DI 容器
    練習步驟
        步驟 1:建立項目
        步驟 2:加入必要組件
        步驟 3:將 Web API 組件加入 ASP.NET 管線
        步驟 4:加入 API Controller
        步驟 5:編寫測試用的服務類型
        步驟 6:注入相依對象至 Controller 的構造函數
    結語

 

下載范例程式與補充資料

本書的完整范例程式與相關補充資料都放在 github 網站上。網址如下:
https://github.com/huanlin/di-book-support 

意見反饋

如有任何疑問或建議,歡迎在此留言指教,或與作者本人聯系。謝謝~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM