当前位置:首页 > 工业技术
微软应用架构指南
微软应用架构指南

微软应用架构指南PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:美国模式和实践团队著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121120473
  • 页数:383 页
图书介绍:本书为架构师和开发人员提供有关基于微软平台和.NET框架进行应用程序架构设计的一些指导。本书分为四个部分:第一部分“软件架构和设计篇”提供了对底层原则和模式的总结,第二部分“设计基础篇”提供了有关设计解决方案分层、组件以及服务的指导原则,以及处理有关质量特性和横切关注点的一些指导原则,第三部分“应用原型篇”提供了针对典型应用程序类型的一些特定指导原则,最后,附录提供了微软平台和.NET框架技术及其特性的概览。
《微软应用架构指南》目录

软件架构和设计篇 1

第1章 什么是软件架构 3

1.1 为什么架构很重要? 3

1.2 架构的目标 4

1.2.1 架构风景线(Architectural Landscape) 5

1.3 架构设计的原则 5

1.3.1 关键设计原则 6

1.3.2 其他资源 6

第2章 软件架构的关键原则 7

2.1 概览 7

2.2 关键设计原则 8

2.3 关键设计考量 10

2.3.1 确定应用程序类型 10

2.3.2 确定部署策略 11

2.3.3 确定合适的技术 11

2.3.4 确定质量特性 11

2.3.5 确定横切关注点 11

第3章 架构模式和风格 13

3.1 概览 13

3.2 什么是架构风格? 13

3.3 关键架构风格小结 14

3.3.1 组合架构风格 14

3.4 客户端/服务端架构风格 15

3.5 基于组件的架构风格 16

3.6 领域驱动设计架构风格 17

3.7 分层架构风格 18

3.8 消息总线架构风格 20

3.9 N层/三层架构风格 21

3.10 面向对象架构风格 21

3.11 面向服务架构风格 22

3.12 其他资源 23

第4章 架构和设计的方法 25

4.1 概览 25

4.2 输入、输出和设计步骤 25

4.3 确定架构目标 26

4.3.1 范围和时间 26

4.4 关键应用场景 27

4.4.1 对架构重要的用例 27

4.5 应用程序概览 28

4.5.1 相关技术 29

4.5.2 画出您的架构 29

4.6 关键问题 30

4.6.1 质量特性 30

4.6.2 横切关注点 30

4.6.3 用于减少问题的设计 31

4.7 候选解决方案 32

4.7.1 基准架构和候选架构 32

4.7.2 架构刺探 33

4.8 接下去做什么 33

4.9 评审架构 33

4.9.1 基于应用场景的评估 33

4.10 展示和沟通您的架构设计 34

4.11 其他资源 35

设计基础篇 37

第5章 分层应用程序指导原则 39

5.1 概览 39

5.2 逻辑分层设计 39

5.2.1 表现层、业务层和数据层 39

5.3 服务和分层 40

5.3.1 服务层 41

5.4 分层结构的设计步骤 42

5.4.1 第一步:选择您的分层策略 42

5.4.2 第二步:确定您需要的分层 43

5.4.3 第三步:确定如何分布层和组件 43

5.4.4 第四步:确定是否需要收缩层 43

5.4.5 第五步:确定层之间交互的规则 44

5.4.6 第六步:找出横切关注点 44

5.4.7 第七步:定义层之间的接口 44

5.4.8 第八步:选择您的部署策略 45

5.4.9 第九步:选择通信协议 46

第6章 表现层指导原则 47

6.1 概览 47

6.2 总体设计考量 48

6.3 特定设计问题 49

6.3.1 缓存 49

6.3.2 通信 50

6.3.3 组合 50

6.3.4 异常管理 50

6.3.5 导航 51

6.3.6 用户体验 51

6.3.7 用户界面 52

6.3.8 验证 52

6.4 技术考量 53

6.4.1 移动应用程序 53

6.4.2 富客户端应用程序 53

6.4.3 富互联网应用程序 53

6.4.4 Web应用程序 54

6.5 性能考量 54

6.6 表现层设计步骤 55

6.7 相关设计模式 56

6.8 模式和实践团队提供的产品 57

6.9 其他资源 57

第7章 业务层指导原则 59

7.1 概览 59

7.2 总体设计考量 60

7.3 特定设计问题 61

7.3.1 身份验证 61

7.3.2 授权 61

7.3.3 缓存 62

7.3.4 耦合和内聚 62

7.3.5 异常管理 63

7.3.6 日志、审核和指示器(Instrumentation) 63

7.3.7 验证 63

7.4 部署考量 64

7.5 业务层的设计步骤 64

7.6 相关设计模式 65

7.7 模式和实践团队提供的产品 65

7.8 其他资源 66

第8章 数据层指导原则 67

8.1 概览 67

8.2 总体设计考量 68

8.3 特定设计问题 69

8.3.1 批量处理 69

8.3.2 二进制大对象 70

8.3.3 连接 70

8.3.4 数据格式 70

8.3.5 异常管理 71

8.3.6 对象关系映射 71

8.3.7 查询 72

8.3.8 存储过程 72

8.3.9 存储过程和动态SQL 72

8.3.10 事务 73

8.3.11 验证 74

8.3.12 XML 74

8.4 技术考量 75

8.5 性能考量 75

8.6 安全考量 76

8.7 部署考量 76

8.8 数据层的设计步骤 76

8.9 相关设计模式 77

8.10 其他资源 78

第9章 服务层指导原则 81

9.1 概览 81

9.2 设计考量 82

9.3 具体设计问题 83

9.3.1 身份验证 83

9.3.2 授权 83

9.3.3 通信 84

9.3.4 异常管理 84

9.3.5 消息信道 84

9.3.6 消息构建 85

9.3.7 消息端点 85

9.3.8 消息保护 85

9.3.9 消息路由 86

9.3.10 消息转换 86

9.3.11 服务接口 86

9.3.12 验证 87

9.4 REST和SOAP 87

9.4.1 REST设计考量 88

9.4.2 SOAP设计考量 88

9.5 技术考量 89

9.6 部署考量 89

9.7 服务层的设计步骤 90

9.8 相关设计模式 90

9.9 其他资源 93

第10章 组件指导原则 95

10.1 概览 95

10.2 组件设计总体指导原则 95

10.3 分层组件分布 96

10.4 表现层组件 96

10.5 服务层组件 97

10.6 业务层组件 97

10.7 数据层组件 98

10.8 横切组件 99

10.9 相关设计模式 99

10.10 模式和实践团队提供的产品 100

10.11 其他资源 101

第11章 设计表现组件 103

11.1 概览 103

11.2 第一步:理解UI需求 103

11.3 第二步:确定需要的UI类型 104

11.4 第三步:选择UI技术 104

11.5 第四步:设计表现组件 106

11.5.1 用户界面组件 106

11.5.2 表现逻辑组件 107

11.5.3 表现模型组件 107

11.5.4 表现实体 108

11.6 第五步:确定绑定需求 109

11.7 第六步:确定错误处理策略 110

11.8 第七步:确定验证策略 111

11.9 模式和实践团队提供的产品 111

11.10 其他资源 112

第12章 设计业务组件 113

12.1 概览 113

12.2 第一步:确定您的应用程序将会使用的业务组件 113

12.3 第二步:为业务组件进行关键决策 114

12.4 第三步:选择合适的事务支持 114

12.5 第四步:确定如何处理业务规则 115

12.6 第五步:确定满足需求的模式 116

12.7 其他资源 117

第13章 设计业务实体 119

13.1 概览 119

13.2 第一步:选择表现方式 119

13.3 第二步:为业务实体选择设计 120

13.4 第三步:确定序列化支持 120

13.5 领域驱动设计 121

13.6 其他资源 122

第14章 设计业务工作流 123

14.1 概览 123

14.2 第一步:根据应用场景确定工作流风格 123

14.3 第二步:选择编写模式 124

14.4 第三步:确定如何处理规则 124

14.5 第四步:选择工作流解决方案 124

14.6 第五步:设计业务组件来支持工作流 125

14.6.1 Windows Workflow Foundation 125

14.6.2 BizTalk服务器 126

14.6.3 带ESB的BizTalk 126

14.6.4 结合使用Windows Workflow Foundation和BizTalk 127

14.7 其他资源 128

第15章 设计数据组件 129

15.1 概览 129

15.2 第一步:选择数据访问技术 129

15.3 第二步:选择如何从数据源获取和持久化业务对象 130

15.4 第三步:确定如何连接数据源 130

15.4.1 连接 130

15.4.2 连接池 131

15.4.3 事务和并发 132

15.5 第四步:确定处理数据源错误的策略 133

15.5.1 异常 133

15.5.2 重试逻辑 133

15.5.3 超时 134

15.6 第五步:设计服务代理组件(可选) 134

15.7 其他资源 134

第16章 质量特性 135

16.1 概览 135

16.2 常见质量特性 135

16.2.1 可用性 137

16.2.2 概念完整性 137

16.2.3 互操作性 138

16.2.4 可维护性 138

16.2.5 可管理性 139

16.2.6 性能 139

16.2.7 可靠性 140

16.2.8 可重用性 140

16.2.9 可伸缩性 141

16.2.10 安全性 141

16.2.11 可支持性 142

16.2.12 可测试性 142

16.2.13 用户体验/易用性 143

16.3 其他资源 143

第17章 横切关注点 145

17.1 概览 145

17.2 总体设计考量 145

17.3 具体设计问题 146

17.3.1 身份验证 146

17.3.2 授权 147

17.3.3 缓存 147

17.3.4 通信 148

17.3.5 配置管理 148

17.3.6 异常管理 149

17.3.7 日志和指示器 149

17.3.8 状态管理 150

17.3.9 验证 150

17.4 缓存的设计步骤 151

17.4.1 第一步:确定要缓存的数据 151

17.4.2 第二步:确定数据缓存在哪里 151

17.4.3 第三步:确定缓存数据的格式 152

17.4.4 第四步:确定合适的缓存管理策略 152

17.4.5 第五步:确定如何加载缓存数据 153

17.5 异常管理的设计步骤 154

17.5.1 第一步:确定需要处理的异常 154

17.5.2 第二步:确定您的异常检测策略 154

17.5.3 第三步:确定异常的传播策略 154

17.5.4 第四步:确定您自定义异常的策略 155

17.5.5 第五步:确定需要收集的信息 155

17.5.6 第六步:确定异常日志记录策略 156

17.5.7 第七步:确定您的异常通知策略 156

17.5.8 第八步:确定如何处理未处理异常 156

17.6 验证输入和验证数据的设计步骤 157

17.6.1 第一步:确定信任边界 157

17.6.2 第二步:确定关键应用场景 157

17.6.3 第三步:确定哪里需要验证 157

17.6.4 第四步:确定验证策略 158

17.7 相关设计模式 158

17.8 模式和实践团队的解决方案产品 158

17.9 其他资源 159

第18章 通信和消息 161

18.1 概览 161

18.2 总体设计指导原则 161

18.3 基于消息通信的指导原则 162

18.3.1 异步和同步通信 163

18.3.2 耦合和内聚 163

18.3.3 数据格式 163

18.3.4 互操作性 164

18.3.5 性能 165

18.3.6 状态管理 165

18.4 契约先行设计 165

18.5 安全考量 166

18.5.1 传输安全 166

18.5.2 消息安全 167

18.6 技术选项 167

18.6.1 WCF技术选项 167

18.6.2 ASMX技术选项 168

18.7 其他资源 168

第19章 物理层和部署 169

19.1 概览 169

19.2 分布式和非分布式部署 169

19.2.1 非分布式部署 169

19.2.2 分布式部署 170

19.2.3 分布式环境的性能和设计考量 170

19.2.4 针对分布式部署中定位组件的一些建议 171

19.3 分布式部署模式 172

19.3.1 客户端/服务端部署 172

19.3.2 N层部署 172

19.3.3 两层部署 172

19.3.4 三层部署 173

19.3.5 四层部署 173

19.3.6 Web应用程序部署 173

19.3.7 富互联网应用程序部署 174

19.3.8 富客户端应用程序部署 174

19.4 性能模式 174

19.4.1 负载均衡集群 175

19.4.2 亲和性和会话技术 175

19.4.3 应用农场 176

19.5 可靠性模式 176

19.5.1 故障转移集群 176

19.6 安全性模式 177

19.6.1 模拟和委派 177

19.6.2 信任子系统 178

19.6.3 多重信任服务标识 178

19.7 纵向扩展和横向扩展 179

19.7.1 纵向扩展的考量 179

19.7.2 设计以支持横向扩展 179

19.7.3 设计的牵制和权衡 180

19.8 络基础结构的安全考量 181

19.9 可管理性考量 182

19.10 相关设计模式 182

19.11 其他资源 183

应用程序原型篇 185

第20章 选择应用程序类型 187

20.1 概述 187

20.2 应用程序原型小结 187

20.2.1 应用程序类型优缺点 188

20.3 移动应用程序 189

20.4 富客户端应用程序类型 190

20.5 富Internet程序原型 191

20.6 服务应用程序类型 192

20.7 Web应用程序类型 193

第21章 设计Web应用程序 195

21.1 概述 195

21.2 通用设计考量 196

21.3 特定的设计考量 196

21.3.1 应用程序提交过程 197

21.3.2 身份验证 198

21.3.3 授权 198

21.3.4 缓存 198

21.3.5 异常管理 199

21.3.6 日志和规范 199

21.3.7 导航 199

21.3.8 页面布局 200

21.3.9 页面渲染 200

21.3.10 Session管理 201

21.3.11 验证 201

21.4 层设计中的考量 202

21.4.1 表现层 202

21.4.2 业务层 202

21.4.3 数据层 202

21.4.4 服务层 202

21.5 测试及可测试性的考量 203

21.6 技术考量 203

21.7 部署考量 204

21.7.1 非分布式部署 204

21.7.2 分布式部署 204

21.7.3 负载均衡 205

21.8 相关的设计模式 206

21.9 其他资源 207

第22章 设计富客户端应用程序 209

22.1 概述 209

22.2 通用设计考量 210

22.3 特定的设计考量 211

22.3.1 业务层 211

22.3.2 通信 211

22.3.3 组合 212

22.3.4 配置管理 213

22.3.5 数据访问 213

22.3.6 异常管理 214

22.3.7 可维护性 214

22.3.8 表现层 215

22.3.9 状态管理 215

22.3.10 工作流 216

22.4 安全考量 216

22.5 数据处理考量 217

22.5.1 缓存数据 217

22.5.2 数据并发 218

22.5.3 数据绑定 218

22.6 离线/偶尔连线情况的设计考量 218

22.7 技术考量 219

22.8 部署考量 220

22.8.1 独立部署 220

22.8.2 客户端/服务器端部署 220

22.8.3 N层部署 220

22.8.4 部署技术 221

22.9 相关的设计模式 221

22.10 其他资源 223

第23章 设计富Internet应用程序 225

23.1 概述 225

23.2 通用设计考量 226

23.3 特定的设计考量 227

23.3.1 业务层 228

23.3.2 缓存 228

23.3.3 通信 229

23.3.4 组合 229

23.3.5 数据访问 230

23.3.6 异常管理 230

23.3.7 日志 230

23.3.8 媒体和图形 231

23.3.9 可移动性 231

23.3.10 可移植性 232

23.3.11 表现层 232

23.3.12 状态管理 232

23.3.13 验证 233

23.4 安全考量 233

23.5 数据处理考量 234

23.6 技术考量 234

23.7 部署考量 236

23.7.1 RIA插件安装 236

23.7.2 分布式部署 236

23.7.3 负载均衡 237

23.7.4 Web农场的优缺点 238

23.8 相关的设计模式 238

23.9 其他资源 239

第24章 设计移动应用程序 241

24.1 概述 241

24.2 通用设计考量 242

24.3 一些特定的设计考量 243

24.3.1 身份验证和授权 243

24.3.2 缓存 244

24.3.3 通信 244

24.3.4 配置管理 245

24.3.5 数据访问 245

24.3.6 设备相关 246

24.3.7 异常管理 246

24.3.8 日志 247

24.3.9 移植应用程序 247

24.3.10 功耗管理 248

24.3.11 同步 248

24.3.12 测试 249

24.3.14 用户界面 249

24.3.15 验证 250

24.4 技术考量 250

24.4.1 Microsoft Silverlight for Mobile 250

24.4.2 NET Compact Framework 251

24.4.3 Windows Mobile 251

24.4.4 Windows Embedded 252

24.5 部署考量 252

24.6 相关设计模式 253

24.7 其他资源 254

第25章 设计服务应用程序 255

25.1 概述 255

25.2 通用设计考量 256

25.3 特定的设计考量 257

25.3.1 身份验证 258

25.3.2 授权 258

25.3.3 业务层 258

25.3.4 通信 259

25.3.5 数据层 259

25.3.6 异常管理 260

25.3.7 消息结构 260

25.3.8 消息端点 260

25.3.9 消息保护 261

25.3.10 消息转换 261

25.3.11 消息交换模式 262

25.3.12 表述性状态传输 262

25.3.13 服务层 263

25.3.14 SOAP 264

25.3.15 验证 264

25.4 技术考量 265

25.5 部署考量 265

25.6 相关设计模式 266

25.7 其他资源 268

第26章 设计托管和云服务 269

26.1 概述 269

26.1.1 云计算 269

26.1.2 托管和云服务的通用词汇 270

26.2 云端应用程序的好处 271

26.2.1 针对ISV和服务托管的好处 271

26.2.2 针对消费服务企业的好处 272

26.3 设计考量 272

26.3.1 数据隔离和共享 272

26.3.2 数据安全 274

26.3.3 数据的存储和扩展 275

26.3.4 标识管理 277

26.3.5 多重租赁 278

26.3.6 内部托管还是外部托管,构建还是购买 279

26.3.7 性能 280

26.3.8 服务组合 280

26.3.9 服务集成 282

26.3.10 服务管理 283

26.4 相关设计模式 284

26.5 其他资源 284

第27章 设计Office业务应用程序 287

27.1 概述 287

27.1.1 构成Office务应用程序的组件 288

27.2 Office业务应用程序的关键场景 288

27.2.1 企业内容管理 289

27.2.2 商业智能 289

27.2.3 统一消息 290

27.3 通用的OBA模式 290

27.3.1 扩展的到达通道 290

27.3.2 文档整合 291

27.3.3 文档工作流 293

27.3.4 组合用户界面 293

27.3.5 数据合并(导航发现) 294

27.3.6 协作 296

27.3.7 通知和任务 296

27.4 通用设计考量 297

27.5 安全考量 298

27.6 部署考量 298

27.7 相关设计模式 298

27.8 其他资源 299

第28章 设计SharePoint LOB应用程序 301

28.1 概述 301

28.1.1 SharePoint LOB应用程序的逻辑层 302

28.1.2 物理层部署 302

28.2 关键场景和特性 303

28.3 通用设计考量 303

28.4 特定的设计考量 304

28.4.1 业务数据目录 304

28.4.2 文档和内容存储 305

28.4.3 Excel服务 305

28.4.4 InfoPath表单服务 306

28.4.5 SharePoint对象模型 306

28.4.6 Web Parts 307

28.4.7 工作流 307

28.5 技术考量 308

28.6 部署考量 308

28.7 相关设计模式 308

28.8 其他资源 309

附录 312

附录A 微软应用程序平台 313

A.1 概述 313

A.2 相关的信息和资源 314

A.2.1 微软是怎样在Web上组织技术信息的 314

A.2.2 Microsoft Developer Network 314

A.2.3 Microsoft TechNet 315

A.3 NET框架 315

A.4 公共语言运行时 315

A.5 数据访问 315

A.6 移动应用程序 316

A.7 富客户端 317

A.8 富Internet应用程序 317

A.9 服务 318

A.10 工作流 318

A.11 Web应用程序 319

A.12 Web服务器——Internet信息服务 319

A.13 数据库服务器——SQIServer 320

A.14 Visual Studio开发环境 320

A.15 其他的工具和库 320

A.15.1 模式和实践团队的解决方案产品 320

A.16 其他资源 321

附录B 表现方面的技术矩阵 323

B.1 概述 323

B.2 表现层技术小结 323

B.2.1 移动应用程序 323

B.2.2 富客户端应用程序 323

B.2.3 富Internet应用程序 324

B.2.4 Web应用程序 324

B.3 优缺点矩阵 325

B.3.1 移动应用程序 325

B.3.2 富客户端应用程序 326

B.3.3 富Internet应用程序 326

B.3.4 Web应用程序 327

B.4 通用的场景和解决方案 328

B.4.1 移动应用程序 328

B.4.2 富客户端应用程序 328

B.4.3 富Internet应用程序 329

B.4.4 Web应用程序 329

B.5 其他资源 330

附录C 数据访问的技术矩阵 331

C.1 概述 331

C.2 数据访问技术小结 331

C.3 优缺点矩阵 332

C.3.1 对象-关系数据访问 332

C.3.2 断线和离线场景 333

C.3.3 SOA/服务场景 333

C.3.4 N层及通用场景 333

C.4 通用建议 335

C.5 通用的场景和解决方案 335

C.6 LINQ to SQL的缺点 336

C.7 移动解决方案的缺点 337

C.8 其他资源 337

附录D 整合方面的技术矩阵 339

D.1 概述 339

D.2 整合技术小结 339

D.3 优缺点矩阵 339

D.4 通用的场景和解决方案 341

D.5 其他资源 342

附录E 工作流方面的技术矩阵 343

E.1 概述 343

E.2 整合技术小结 343

E.3 人力工作流VS.系统工作流 344

E.4 优缺点矩阵 344

E.5 通用的场景和解决方案 345

E.6 其他资源 345

附录F patterns & practices企业库 347

F.1 概述 347

F.2 企业库的目标 347

F.3 企业库的内容 347

F.3.1 应用程序块 348

F.4 缓存应用程序块 349

F.4.1 关键场景 349

F.4.2 何时使用 349

F.4.3 缺点 350

F.5 加密应用程序块 350

F.5.1 关键场景 350

F.5.2 何时使用 350

F.5.3 缺点 351

F.6 数据访问应用程序块 351

F.6.1 关键场景 351

F.6.2 何时使用 351

F.6.3 缺点 352

F.7 异常处理应用程序块 352

F.7.1 关键场景 352

F.7.2 何时使用 352

F.8 日志应用程序块 353

F.8.1 关键场景 353

F.8.2 何时使用 353

F.8.3 缺点 353

F.9 策略注入应用程序块 353

F.9.1 关键场景 354

F.9.2 何时使用 354

F.9.3 缺点 354

F.10 安全应用程序块 354

F.10.1 关键场景 355

F.10.2 何时使用 355

F.10.3 缺点 355

F.11 Unity应用程序块 355

F.11.1 关键场景 355

F.11.2 何时使用 356

F.11.3 缺点 356

F.12 验证应用程序块 356

F.12.1 关键场景 356

F.12.2 何时使用 356

F.12.3 缺点 357

F.13 其他资源 357

附录G 模式和实践团队模式目录 359

G.1 关于WPF和Silverlight的组合应用程序指南 359

G.2 数据迁移模式 360

G.3 企业解决方案中的模式 361

G.4 整合模式 363

G.5 Web服务安全模式 364

G.6 其他资源 365

索引 367

返回顶部