首页>参考读物>计算机科学与技术>软件与程序设计

.NET应用架构设计:原则、模式与实践
作者 : 汪洋 著
出版日期 : 2011-12-08
ISBN : 978-7-111-36536-5
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 422
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

这不是讲解.NET如何使用的书。虽然本书写的是.NET架构设计,其实只是采用.NET作为例子来讲述如何设计,书中很多的概念和思想完全可以用到WPF、Sliverlight、Window Form项目开发中。架构设计思想不分语言,平台。
本书对《企业架构模式》中涉及到的架构模式结合.NET进行了重新的整理和详细的讲述,并且附上很多的完整代码示例,这些代码的例子反映实际项目中一些缩影,而且也融合了设计模式讲解,同时也在适当的时候讲述了TDD和DDD等流行的开发思想。同时也澄清一些开发和设计中的误区。
本书也力争做到言之有物,深入浅出,把每一个知识点讲明白。同时也讲述.NET内部一些实现原则和机制,告诉大家.NET内部一些设计思想的体现。而且在本书最后的部分也会带领大家设计和开发一个高性能,可扩展的门户站点的,一起来享受设计的过程和进行思维的锻炼。

图书特色

由经验丰富的.NET专家和架构师亲自执笔,技术专家和技术社区联袂推荐!
以实践为导向,循序渐进地讲解了企业级.NET应用架构与设计的流程、方法、原则、模式与最佳实践,极具实践指导意义。 

.NET应用架构设计
原则、模式与实践
汪 洋  著

封底:
对于程序员来说,架构师是他们职业生涯中的一个重要追求目标。由于架构师不仅需要非常高的综合素质,而且还需要丰富的实战经验,因此行业内真正的架构师少之又少。对于企业而言,一位优秀的架构师就好比疆场上指挥百万大军的将军,运筹帷幄,决胜千里之外,一个应用是否具有高可用性、高扩展性和良好的性能,架构师起着决定性作用。本书内容是作者在大量企业级.NET项目中总结出来的宝贵经验,以实战为导向,系统地讲解了企业级应用架构与设计的流程、方法、模式、原则与最佳实践,适合希望成为优秀架构师的读者系统学习。强烈推荐!
—— 51CTO(www.51cto.com) 
本书是作者多年架构实战经验的结晶。实践性强,通过大量的实际项目案例详细讲解了.NET应用的架构与设计的方法;内容全面,从架构设计的核心概念和原理,到架构设计的模式与最佳实践,全部包含其中;阅读体验好,语言朴实,幽默风趣,能让你在轻松的阅读中领悟到架构设计的精髓。
—— ChinaUnix社区 & ITpub社区联袂推荐 
有多少项目,因为设计的糟糕,做到最后,让人苦不堪言。为什么会这样?缺少合理的设计原则和必要的实践。有多少项目,因为架构的缺陷,导致整个项目最后陷入“泥沼”。为什么会这样?缺少周密的思考和对技术的深度把握。又有多少项目,因为不切实际的假设和过度的设计,致使开发进入“死亡行军”,让人叫苦不迭。为什么会这样?缺少经验的积累和失败的教训。在这些“悲剧”的背后,我们不应该无休止地悲伤;在这些失败的项目面前,我们需要更深刻地反思。在这本书中,作者通过自己的实战经验给出了这些问题的答案,既有可供借鉴的成功经验,也有需要大家引以为戒的失败教训,值得仔细品读。
—— 马伟 微软ASP.NET MVP/畅销书《ASP.NET 4 权威指南》作者

前:
每个程序员都有一个架构师的梦,相信手捧这本书的你也正在朝着这个目标而努力奋斗。架构师对软件项目的成败和优劣起着决定性作用,因此地位也举足轻重,这就是比尔·盖茨更喜欢称自己是微软的首席架构师而不是CEO的原因。
罗马不是一天建成的,优秀的架构师也不是短时间内能练成的,需要缜密的思维、精湛的技术和丰富的实战经验。在成长为架构师的路上,没有捷径可走,唯有多吸取前人积累的经验和教训,多动手实践并用心总结。
本书是一位资深架构师多年实践经验的结晶,在这些年里,他有过成功的喜悦,也有过失败的懊恼,一路走来,他深知程序员们在迈向架构师的途中会遇到哪些困惑和难题,于是他结合自己的亲身经历和体验撰写了本书。一方面是想将自己在软件架构与设计方面积累的方法、原则、模式与最佳实践以大家最容易接受的方式分享出来;另外一方面他也毫不避讳地公开了自己的一些失败教训,目的是希望大家能引以为鉴,少走弯路。
我们希望这本书能帮助你在成长为架构师的路上走得更快、更稳,从而走得更远。

作者简介
汪 洋(Richard Wang)  资深架构师和.NET技术专家,一直战斗在一线,实践经验极其丰富。现就职于惠普公司,担任技术架构师和信息分析师,同时他还是上海益思研发管理咨询有限公司首席架构师、软件咨询组副组长。曾在世界500强的在华日企担任架构师,负责项目业务框架和平台设计,曾带领创业团队与国内外企业进行项目合作。51CTO、博客园、ITPUB、ChinaUnix等IT社区的知名博客和技术专家,CSDN和InfoQ的特约技术作家。2011年曾多次应邀在架构师大会、亚太软件研发管理峰会和中国软件开发大会等技术盛会上担任演讲嘉宾,深受与会者欢迎。此外,他还在为国内多家软件企业开展软件架构与性能优化方面的培训。

图书前言

为什么要写这本书
  自从进入IT行业之后,我就一直被“架构师”这个名词所吸引。架构师有扎实的技术能力、强大的组织与沟通能力,是一个极具挑战性的角色!微软巨人比尔·盖茨不习惯称自己为CEO,而称自己为首席架构师!架构师像电影《盗梦空间》中的造梦者,让无数的程序员向往和追求。
  一路走来,听过也见过不少朋友兴致勃勃地谈论与架构相关的话题。每次我在社区(ITPUB、博客园、51CTO等)发布架构设计相关的文章,也都会引来大批读者的回帖和跟帖。和很多做技术的朋友一样,我自己也在一直苦苦地追求着“架构之梦”,四处寻找与架构相关的资料,甚至希望有真正的架构师能够为自己指点一二,以便打开自己的“任督二脉”!
  在学习的过程中,我一次又一次地将自己之前的“原以为”推翻,然后又一次次地重新厘清观念,同时给自己一个新的目标,继续前行,这是一个非常痛苦的过程!原以为,架构师的核心能力在技术上,于是不断地通过学习和看书来了解相关的技术。后来发现只看书是不够的,架构师应该实战经验很丰富,于是又不断地尝试做各种项目。随后我又发现,架构师的设计能力应该非常强,可以将整个项目在头脑中实现,于是我又开始学习设计,在脑中设计,然后用代码实现。再后来,我发现架构师的业务分析能力要强,于是我又开始在每次的项目中积极主动地学习业务知识,大胆地与团队、客户沟通和协调。再后来……
直到今天,我依然在架构之路上摸索着,不过总算也积累了一些心得和失败的经验,希望能与大家分享。
  在摸索和学习的过程中,我发现架构设计的资料非常少,尤其是在.NET领域,而且很多架构设计的书籍都写得比较高深,无法让人一下理解,就算勉强理解了,也不会在项目中使用,有时候,就算生搬硬套地用了,思维层次上却没有得到提升。
  同时,我在写博客和回帖的过程中了解到:用演化的方式去讲述知识比较容易让人理解和接受,并且可以让读者的思维和作者一起展开,所以我觉得应注重思想的改变,而不是生硬地记忆。
  另外,我认为实用的知识能进一步强化和巩固我们的所学。很多书上的示例就仅仅是例子而已,其作用类似于“Hello World”,在实际项目中意义不大!读者看完之后,可能确实能明白这到底是什么,但是“如何用”还得自己摸索。
  基于以上原因,本书选择了从实战和分析的角度来撰写,希望可以从思维层次上提升读者的能力,帮助大家走上架构设计之路。
读者对象
  本书的读者可分为以下几类:
  有经验,并且想学习架构设计的开发人员。
  想学习设计方法、设计模式、架构模式的开发人员。
  想学习如何将.NET中各种技术结合使用的开发人员。
  想学习.NET技术内核的开发人员。
  想学习如何使用.NET中各种开源组件、框架的开发人员。
  另外,高级工程师、架构师也可以参考本书。
如何阅读本书
  本书分为三大部分,每一部分都是从实战的角度出发,其中第三部分为项目实战,是对第一部分和第二部分的全面总结和巩固!
  本书的每一个部分都涵盖一些高端的话题,而且从不同的角度阐述了相关知识。
  第一部分涉及架构与设计的原则和模式,主要介绍了架构与设计的流程和核心概念、模式、设计原则和方法。
  第二部分是架构与设计的方法和最佳实践,其中对架构分层、业务层、数据访问层、服务层、数据存储层、显示层进行了详细的剖析,并包含大量示例和最佳实践。
  第三部分为项目实战,这一部分实现了一个完整的项目案例,能指导读者如何把前面两个部分的知识综合起来运用!
  附录是与Content Delivery Network(CDN)相关的知识,书中有关性能的讨论会涉及CDN知识。
勘误和支持
  由于作者水平有限,编写时间也很仓促,书中难免会存在一些错误或不准确的地方,恳请读者批评指正。
  同时,我特意将本书第三部分的项目案例部署到了网上(地址:http://www.agilesharp.com)。一方面是希望大家对书中的案例有一个清晰的认识,能实实在在地看到项目的结果;另一方面是希望通过这个项目实体让大家亲自动手去实践。
  大家可以将书中的错误发布在Bug勘误表页面。另外,如果大家在学习或项目中遇到任何问题,也可以访问Q&A页面,我将尽量在线上为大家提供最满意的解答。书中的全部源文件都会发布在这个网站上,我也会及时提供相应的功能更新。如果大家有更多的宝贵意见,也欢迎发送邮件到我的邮箱,邮箱地址为:yangyang4502@hotmail.com,我很期待听到你们真挚的反馈。
致谢
  首先要感谢微软开创了.NET平台,造就了一个新的技术时代,它成为了我的“衣食父母”。
  感谢机械工业出版社的编辑杨福川,在这一年多的时间里他始终支持我的写作,他的鼓励和帮助引导着我顺利完成全部书稿。感谢一直给我审稿的编辑杨绣国,为了这本书,她一次又一次地与我交流和沟通!还要感谢机械工业出版社的其他朋友们,你们为此书付出了很多,辛苦了!
  我特别感谢我的爱人潘燕。在写书的这段时间内,我一直没有时间顾及家里的事情,也没有时间陪她。感谢她的体谅与支持!每次我写完一章,她都会耐心地检查和指正,她是这本书的第一个读者!
  最后我要感谢我的爸爸、妈妈、岳父、岳母,感谢他们将我和我的爱人培养成人,是他们给了我们信心和力量!
  谨以此书,献给我最亲爱的家人,以及众多热爱技术、追逐梦想的朋友们。

汪洋

上架指导

计算机\程序设计

封底文字

这不是一本介绍.NET如何使用的书。虽然本书写的是.NET架构设计,其实只是采用.NET作为例子来讲述如何设计,书中很多的概念和思想完全可以用到WPF、Silverlight、Window Form项目开发中。架构设计思想不分语言,平台。
本书对《企业架构模式》中涉及的架构模式结合.NET进行了重新整理和详细讲述,并且附上很多的完整代码示例,这些代码的例子反映实际项目中一些缩影,而且也融合了设计模式讲解,同时也在适当的时候讲述了TDD和DDD等流行的开发思想。同时也澄清一些开发和设计中的误区。
本书力争做到言之有物,深入浅出,把每一个知识点讲明白。同时也讲述.NET内部一些实现原则和机制,告诉大家.NET内部一些设计思想的体现。而且在本书最后的部分也会带领大家设计和开发一个高性能,可扩展的门户站点的,一起来享受设计的过程和进行思维的锻炼。

作者简介

汪洋 著:暂无简介

图书目录

前言
第一部分 架构与设计的原则和模式
第1章 架构与设计的流程和核心概念/2
1.1 正确认识软件架构/2
1.1.1 什么是架构/2
1.1.2 架构师的职责/3
1.1.3 架构设计/6
1.1.4 架构设计的优点/8
1.2 正确理解设计的含义/11
1.2.1 设计的重要性/12
1.2.2 架构和设计的关系/12
1.3 架构设计中的重要概念/14
1.3.1 Tier和Layer/14
1.3.2 架构与框架/15
1.3.3 架构与模式/15
1.4 本章小结/16
第2章 模式、设计原则和方法/17
2.1 设计原则与软件设计/17
2.1.1 设计原则简述/17
2.1.2 设计原则实战/18
2.2 设计模式/23
2.2.1 设计模式简介/23
2.2.2 正确使用设计模式/25
2.2.3 设计模式实战/26
2.3 企业应用架构模式/31
2.3.1 什么是企业架构/31
2.3.2 什么是企业级开发/31
2.3.3 再议架构设计和模式/32
2.3.4 企业架构模式介绍/33
2.4 企业架构模式实战/34
2.5 设计方法/38
2.5.1 测试驱动开发/38
2.5.2 领域驱动开发/39
2.5.3 行为驱动开发/39
2.6 本章小结/39
第二部分 架构与设计的方法和最佳实践
第3章 架构分层/42
3.1 反模式项目实例/42
3.2 分层设计/45
3.2.1 正确理解分层/45
3.2.2 常见的分层架构设计/46
3.2.3 N-Tier架构/52
3.2.4 N-Tier架构需要考虑的因素/52
3.3 从重构到分层/56
3.3.1 业务层设计实战/58
3.3.2 数据访问层设计实战/62
3.3.3 服务层设计实战/63
3.3.4 显示层设计实战/66
3.4 本章小结/69
第4章 业务层设计/70
4.1 业务层组织模式剖析/70
4.1.1 Transaction Script模式与实战/70
4.1.2 Active Record模式与实战/72
4.1.3 Domain Model模式与实战/78
4.1.4 Anemic Domain Model模式与实战/90
4.1.5 业务层组织模式比较/91
4.2 业务层常用设计模式解析及实战/92
4.2.1 工厂方法模式/92
4.2.2 装饰者模式/95
4.2.3 模板方法模式/102
4.2.4 状态模式/104
4.2.5 策略模式/109
4.2.6 模板方法模式、状态模式、策略模式的比较/109
4.3 业务层常用的企业架构模式及实战/113
4.4 模式联合实战/115
4.4.1 需求规格模式/115
4.4.2 组合模式/116
4.5 业务层常用的设计原则及实战/123
4.6 本章小结/126
第5章 服务层设计/127
5.1 服务层详解/127
5.1.1 服务层的由来/127
5.1.2 服务层的职责是什么/130
5.1.3 服务层的必要性/130
5.2 服务层常用设计模式解析/131
5.2.1 外观模式/131
5.2.2 远程外观模式/133
5.2.3 数据传输对象模式/135
5.3 SOA介绍/136
5.3.1 SOA用途/136
5.3.2 SOA原则/139
5.3.3 服务设计原则/140
5.3.4 服务解惑/142
5.3.5 服务操作设计原则/143
5.3.6 服务粒度介绍/144
5.4 服务层常用消息模式解析/146
5.4.1 文档消息模式与请求-响应模式/146
5.4.2 预约保留模式/147
5.4.3 等幂模式/148
5.5 SOA实战——WCF实现/149
5.5.1 系统分析/149
5.5.2 业务层实战/151
5.5.3 数据层实战/152
5.5.4 服务层实战/155
5.5.5 代理层实战/160
5.5.6 显示层实战/162
5.6 本章小结/163
第6章 数据访问层设计/164
6.1 数据访问层简述/164
6.2 数据访问层的设计策略/165
6.2.1 仓储模式/165
6.2.2 数据访问对象模式/166
6.3 数据访问层常用模式与原则解析/166
6.3.1 工作单元/167
6.3.2 标识映射/175
6.3.3 延迟加载/178
6.3.4 数据并发控制/182
6.3.5 查询对象/184
6.4 ORM对象关系映射/190
6.4.1 NHibernate介绍/191
6.4.2 Entity Framework介绍/191
6.5 企业级领域驱动设计项目实战/192
6.5.1 业务层的实现/192
6.5.2 服务层的实现/197
6.5.3 数据访问层的实现/203
6.5.4 显示层的实现/221
6.6 本章小结/223
第7章 数据存储层设计/224
7.1 合理选择数据存储方案/224
7.1.1 数据存储的三种方式/224
7.1.2 选择合理的数据存储方案/227
7.2 数据库架构设计/228
7.2.1 分布数据/229
7.2.2 数据拆分/229
7.2.3 读写分离/233
7.2.4 数据缓存/234
7.3 数据库设计/236
7.3.1 数据库计划/236
7.3.2 逻辑数据库设计/236
7.3.3 物理数据库设计/238
7.4 SQL Server数据库性能瓶颈分析与解决方案/240
7.4.1 缺失索引的瓶颈分析与解决方案/240
7.4.2 昂贵查询的瓶颈分析与解决方案/255
7.4.3 数据库碎片的瓶颈分析与解决方案/259
7.5 本章小结/261
第8章 显示层设计/262
8.1 MVP模式的原理与实战/262
8.1.1 MVP模式实战(ASP.NET实现)/263
8.1.2 MVP模式经验谈/269
8.1.3 MVP模式之高级话题/276
8.2 前端控制器模式的原理与实战/283
8.2.1 前端控制器模式介绍/283
8.2.2 深入浅出命令模式/284
8.2.3 前端控制器模式实战/287
8.3 MVC模式的原理与实战/289
8.3.1 深入浅出MVC模式/290
8.3.2 MVC模式之高级话题/297
8.3.3 MVC模式实战——对ASP.NET MVC源码进行分析/298
8.4 PM模式的原理与实战/313
8.4.1 PM模式的解析/313
8.4.2 PM模式实战/316
8.5 MVVM模式的原理与实战/324
8.5.1 MVVM模式介绍/324
8.5.2 MVVM模式深度剖析/325
8.5.3 MVVM模式高级话题/337
8.6 本章小结/342
第三部分 .NET应用的架构与设计实战
第9章 IT创业产品互推平台的项目背景与功能介绍/344
9.1 IT创业产品互推平台背景/344
9.2 SNS功能介绍/344
9.2.1 用户管理/345
9.2.2 个人信息管理/346
9.2.3 软件展示功能/347
9.2.4 好友功能/348
9.2.5 站内信息功能/349
9.2.6 多媒体文件管理/350
9.2.7 博客/351
9.2.8 用户群/353
9.2.9 微博/354
9.2.10 共享功能/355
9.2.11 论坛/355
9.2.12 活动/356
9.2.13 投票/358
9.2.14 页面布局定制/359
9.2.15 评级/359
9.3 本章小结/360
第10章 IT创业产品互推平台架构设计/361
10.1 分层设计/361
10.1.1 逻辑分层的总体设计/361
10.1.2 通用功能设计/362
10.1.3 业务层设计/363
10.1.4 数据持久层设计/364
10.1.5 显示层设计/364
10.2 部署设计/365
10.2.1 单服务器部署/365
10.2.2 多服务器部署/365
10.3 文件存储的设计/367
10.4 基础类库的设计/369
10.4.1 缓存/369
10.4.2 配置读取/375
10.4.3 邮件发送/376
10.4.4 日志记录/378
10.4.5 辅助类的实现/382
10.5 本章小结/383
第11章 IT创业产品互推平台用户管理/384
11.1 用户管理功能分析/384
11.1.1 用户注册/384
11.1.2 用户登录/384
11.1.3 找回密码/386
11.1.4 激活账户/386
11.1.5 删除用户/386
11.1.6 更新用户/387
11.1.7 查询用户/387
11.2 用户管理接口的定义/390
11.2.1 服务层实现定义/390
11.2.2 业务模型定义/392
11.2.3 数据访问层的接口定义/393
11.3 用户管理的实现/393
11.3.1 服务层实现/393
11.3.2 业务层实现/400
11.3.3 数据访问层实现/403
11.3.4 显示层实现/404
11.4 本章小结/406
附录A/407

教学资源推荐
作者: [美]本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup) 著
作者: [美]埃里克 S. 罗伯茨(Eric S. Roberts) 著
作者: 谢满德 刘文强 张国萍 编著
作者: 过敏意 主编吴晨涛 李超 阮娜 陈雨亭 编著
参考读物推荐
作者: [德] 彼得·佐默霍夫(Peter Sommerhoff)著
作者: Cay S. Horstmann,Gary Cornell
作者: [美]杰夫·苏哈伊(Jeff Szuhay) 著
作者: [美]伊芙·波塞洛(Eve Porcello)亚历克斯·班克斯(Alex Banks)著