.NET 相依性注入
书籍进度
本书目前已经开始发行 beta 版,完成进度约 70%。
(我希望这本书不要超过 200 页,目前看起来应该没问题。)
简介
本书内容是关于 .NET 相依性注入(dependency injection;简称 DI)的相关议题。透过本书,您将会了解:
- 什么是 DI、它有什么优点、何时使用 DI、以及可能碰到的陷阱。
- 如何运用 DI 应付容易变动的软体需求,设计出更弹性、更好维护的程式码。
- 与 DI 有关的设计模式。
- DI 于 .NET 应用程式中的实务应用,包括 ASP.NET MVC、ASP.NET Web API 等等(本书第五章还深入剖析了 Web API 的管线架构)。
- 如何使用 DI 容器(例如 Unity)来协助开发宽松耦合的应用程式。
本书的范例皆以 C# 撰写,读者无须具备任何 DI 背景知识。
本書目录




请注意:本书仍在 beta 阶段,这表示内容还会持续更新(已经购买的朋友会收到更新通知,并下载新版本)。
试阅章节
您可至本书主页(https://leanpub.com/dinet-s)免费下载试阅章节,如下图所示。

主页除了下载试阅章节,另外还提供了订阅出版通知以及读者意见回馈的功能。
试阅章节只提供 PDF 档案。购买此书的读者则可下载 PDF、给平板用的 EPUB 档案、以及给 Kindle 用的 MOBI 档案。
如何购买
先到 leanpub.com 注册一个使用者账号,然后利用此账号来买书。
请注意:注册账号时填写的 e-mail 必须是有效的!这很重要,因为往后的书籍改版通知讯息都会发送到这个 e-mail 地址。
接着,请至本书网址在线购买:https://leanpub.com/dinet-s。
目前有折扣活动至八月底,直接点这个连结即可折抵美金 $2.0 元:https://leanpub.com/dinet-s/c/sY5ktjGqRpMv
底下是結帳頁面(恕我偷懒,直接使用繁体中文版的截图):

Leanpub 平台有提供读者 45 天的鉴赏期。购买之后,45 天内如果后悔,可利用平台本身的功能来退还书籍与书款。所以,那个[Buy Now]按钮请放心地点下去吧! ^_^
最后,如果是信用卡付款,就在网页下方接着填入相关资料,如下图:

如果是 PayPal 付款,您有两个选择:
- 直接使用您的 PayPal 账户来结账。
- 或者,若您其实没有 PayPal 帐户,那么PayPal 结账功能本身也提供信用卡付款的功能。但请注意,PayPal 结账页面的信用卡付款功能页面中的 e-mail 字段必须填写有效的 e-mail 地址!
更新通知
订购此书时,只要有输入 e-mail 地址,将来有新版本发布时,您就会收到更新通知和下载连结。
下载范例程式与补充资料
本书的完整范例程式与相关补充资料都放在 github 网站上。网址如下:
https://github.com/huanlin/di-book-support
.NET 相依性注入的更多相关文章
- TDD学习笔记【四】--- 如何隔离相依性 - 基本的可测试性
前言 相信许多读者都听过「可测试性」,甚至被它搞的要死要活的,还觉得根本是莫名其妙,徒劳无功.今天这篇文章,主要要讲的是对象的相依性,以及对象之间直接相依,会带来什么问题.为了避免发生因相依性而导致设 ...
- TDD学习笔记【五】一隔绝相依性的方式与特性
前言 在上一篇文章中,提到了如何通过 IoC 的设计,以及 Stub Object 的方式,来独立测试目标对象. 这一篇文章,则要说明有哪些设计对象的方式,可以让测试或需求变更时,更容易转换. 并说明 ...
- Spring.net 学习IOC------属性注入
我们就完成我们的第一个spring.net学习IOC的"hello world!". 1> 我们新建一个C# 的控制台项目名为Spring,然后引入Spring.Core.d ...
- spring4-2-bean配置-2-属性注入细节
配置 bean,本章节中主要介绍蓝色文字部分. 配置形式:基于 XML 文件的方式:基于注解的方式 Bean 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & 实例工厂方法).F ...
- spring-属性注入(外部bean方式)
xml的配置如下<bean id="userService" class="com.spring5.service.UserService"> &l ...
- [書訊]《.NET 依賴注入》 (2014-12-08 更新)
书 名:.NET 依赖注入 页 数:235 格 式:PDF.EPUB.MOBI难易度:中阶至进阶出版日期:2014 年 12 月 8 日ISBN:9789574320684 简介 本书内容是关于 .N ...
- ASP.NET Web API Controller 是怎么建成的
先看ASP.NET Web API 讯息管线: 註:为了避免图片太大以至于超过版面,上图中的「HTTP 讯息处理程序」区块省略了 HttpRoutingDispatcher 处理路由分派的部分.「控制 ...
- Spring 中设置依赖注入
package com.ysq.vo; public class User { private int uid; private String uname; private String pwd; p ...
- 关于MySQL注入漏洞到获取webshell
关于PHP网站报错性注入拿shell的方法,定位到报错在某个字段上的利用方式: 条件1: 爆出了网站的物理路径 条件2:MySQL具有into outfile权限 SQL语句为: 假如字段为2: un ...
随机推荐
- 使用 Advanced Installer 打包 一键安装Web应用程序
原文:使用 Advanced Installer 打包 一键安装Web应用程序 安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置应用程序名称和 ...
- 初学git && 使用总结
参考文章:http://www.ruanyifeng.com/blog/2014/06/git_remote.html git基础操作 http://www.ruanyifeng.com/blog ...
- javascript活动
在javascript倘若有知识的三个方面.事件的第一,流程,其次,事件处理,第三,事件对象.下面就我个人的理解,,分别讲述一下这三个方面的内容. 第一.事件流 事件流指的是事件依照一定的顺序触发.它 ...
- XCL-Charts绘画面积图(AreaChart) 案件1
样本区域地图,发现区域图的时候把做向上注视位置图更具优势的管理. 在改变. 区域图网格和轴是不一样的处理与其它图, 它是用来表示其影响范围的覆盖范围,车桥无段伸出.在这里下处理. 代码: /** * ...
- UVA 11426 - GCD - Extreme (II) (数论)
UVA 11426 - GCD - Extreme (II) 题目链接 题意:给定N.求∑i<=ni=1∑j<nj=1gcd(i,j)的值. 思路:lrj白书上的例题,设f(n) = gc ...
- 基于ip san的iscsi操作执行过程
SAN它是storage area network(存储区域网络)速记,早期san光纤通道技术被用于.当迟到iscsi协议后出现,为了在这两者之间区分.它分IP SAN和FC SAN.FC SAN由于 ...
- Cocos2d-x数据持久-变更数据
当数据变化,参与SQL报表insert.update和delete声明.这项3个月SQL语句可以带参数. 详细过程的数据,例如,下面的变化看出.(1) 采用sqlite3_open开放式数据库功能.( ...
- likely()与unlikely()
he gcc C compiler has a built-in directive that optimizes conditional branches as either very likely ...
- DbModel
DbModel 前言 我们都知道EF可以生成Dbmodel,系统生成的Model有时候并不是我们想要的,如何我们要生成自己的Model,那么久需要我们手动的去修改T4模版,T4是对“Text Temp ...
- MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证
原文:MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证 MVC中,关于往后台提交的方法有: 1.Html.BeginForm():同步 2.Ajax.BeginForm():异 ...