.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 ...
随机推荐
- Git Config(转)
一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境. 你只需要做这些设置一次:即使你升级了,他们也会绑定到你的环境中.你也可以在任何时刻通过运行命令来重新更改这些设置. ...
- HTTPS抓包配置
以Charles为例 配置Charles抓取Https需要手机和PC分别进行配置. 步骤: 1.PC下载charles客户端,并安装. 2.charles客户端安装证书 注意证书安装需要保存在&quo ...
- jdk和cglib简单理解(转)
之前使用cglib的时候不需要将classLoader作为参数传入,但动态代理却要,带着这个疑惑进入这个方法: Proxy.newProxyInstance(classLoader, interfac ...
- Kinect的学习笔记发展一Kinect引进和应用
Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...
- hdu 4911 Inversion(找到的倒数)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911 Inversion Time Limit: 2000/1000 MS (Java/Others) ...
- 网络资源(10) - Eclipse开发项目
2014_08_26 http://www.360doc.com/content/13/0403/14/11843499_275730704.shtml Eclipse 下搭建struts2开发环境
- H264 编解码器架构简单
看完后H264/AVC 编解码器演示,头脑是刚刚离开以下三个: 1.H264并且不明白如何指定的编解码器来实现,仅定义了一个编码视频位流的语法.和比特流进行解码,这与MPEG 类似. 2.H264而一 ...
- EF中的EntityState几个状态的说明
之前使用EF,我们都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加.修改还是删除呢?答案是通过EntityState枚举来判断的,我们看一 ...
- linux_coom _ Linux文件比较,文本文件的交集、差集与求差
交集和差集操作在集合论相关的数学课上经常用到,不过,在Linux下 对文本进行类似的操作在某些情况下也很有用. comm命令 comm命令可以用于两个文件之间的 比较,它有一些选项可以用来调整输出,以 ...
- Oracle Data Provider for .NET now on NuGet
Oracle Data Provider for .NET now on NuGet 时间 2015-03-02 22:30:00 Oracle Bloggers原文 http://cshay.b ...