第1章 .NET企业服务简介 1
创建应用程序 2
应用程序的分层 4
逻辑分层与物理系统 8
群集解决方案 9
面向服务架构 9
智能客户端 11
应用程序服务的历史 13
COM和.NET 13
微软事务服务器 18
COM+1.0 20
.NET企业服务 21
应用程序和组件 21
声明式编程 23
组件目录 23
组件管理 23
自动事务管理 24
应用程序服务 24
队列组件 26
松散耦合事件 27
基于角色的安全性 27
COM+1.5的新功能 28
总结 30
第2章 对象激活和上下文 31
上下文 31
.NET Remoting上下文 34
服务组件的上下文 37
混合.NET和COM+上下文 41
建立一个服务组件 43
程序集特性 44
为程序集签名 46
全局程序集缓存 47
接口的使用 48
ServicedComponent类 49
组件注册 55
客户端应用程序 59
调试 61
类库应用程序 62
服务器应用程序 62
对象激活 64
构造字符串 64
即时激活 65
JITA和对象销毁 70
对象池 71
私有组件 79
应用程序激活 80
总结 82
第3章 并发 85
同步概述 86
使用同步锁 87
Interlocked类 89
实现同步的其他选择 89
单元 90
单线程单元 91
多线程单元 94
线程中立单元 95
.NET企业服务中的同步 97
活动 97
配置同步 99
同步功能演示 100
可重入性 107
同步选项的选择 108
ServiceDomain类 109
无组件服务 109
ServiceConfig类 110
Activity类 110
使用一个新的活动 112
启动一个新的上下文 115
总结 116
第4章 COM互操作 119
并行支持 120
无COM互操作的.NET客户端 120
COM互操作性 121
COM调用包装和运行时调用包装 122
COM的默认配置 123
生成的类型库 127
COM接口类型 134
自定义接口 134
调度接口 135
双重接口 139
ComViisible特性 142
版本控制 143
应用程序 145
组件 145
接口 146
COMCompatibleVersion特性 147
查找程序集 147
私有和共享程序集 147
COM注册表入口 148
COM和.NET的需求 149
Visual Basic 6客户端 150
C++ COM客户端 151
脚本客户端 154
调用一个COM对象 155
C++组件 156
运行时调用包装 157
.NET组件 157
客户端应用程序 158
注册 158
总结 159
第5章 网络访问 161
DCOM 162
DCOM传输协议 162
应用程序代理 163
建立一个应用程序代理 164
安装应用程序代理 167
创建DCOM客户端应用程序 169
SOAP服务 172
.NET Remoting概览 172
建立一个使用.NET Remoting的服务组件 175
配置这个服务器应用程序 180
创建一个.NET Remoting客户端 186
SOAP服务的缺点 190
Web服务 192
概览 192
用ASP.NET实现一个Web Service 194
创建一个代理 198
总结 200
第6章 数据访问 203
ADO.NET概览 203
示例数据库 206
实体类 207
数据库访问 212
数据库查询 213
插入 217
更新 219
调用存储过程 220
数据集 222
填充数据集 224
更新数据集 228
总结 234
事务概览 237
第7章 事务服务 237
ACID属性 238
分布式事务 239
手动事务 241
自动事务 246
事务特性 247
事务流 250
事务结果 250
ContextUtil类的方法 251
自动事务示例 253
提交事务投票 258
Auto Complete特性 258
分布式事务 260
无组件事务服务 260
ASP.NET中的事务支持 264
事务隔离 264
潜在的事务隔离问题 265
事务隔离级别 265
监视DTC 268
.NET 2.0中的事务支持 269
总结 271
第8章 补偿性资源管理 273
CRM的架构 273
CRM应用程序类 275
CRM应用程序示例 276
应用程序配置 279
辅助类型 280
工作者组件 282
补偿器组件 284
客户端应用程序 285
监视 287
总结 287
第9章 状态管理 289
状态的特征 290
有状态组件还是无状态组件 292
数据库和文件 293
隔离存储 294
活动目录 296
共享属性管理器 297
共享属性组管理器 298
共享属性组 301
共享属性 301
客户端应用程序 302
SPM状态的特征 303
ASP.NET状态管理 304
会话状态 305
缓存 308
从服务组件中访问ASP.NET状态 310
ASP.NET状态的特征 311
客户端状态管理 312
SOAP头 312
.NET选程调用上下文 315
总结 318
第10章 队列组件 321
概览 322
产品版本 325
消息队列服务器 325
消息队列客户端 327
消息队列的特性 327
消息队列 328
消息 330
管理工具 331
创建一个队列组件 334
程序集特性 335
接口定义 336
CourseControl类 338
注册 340
客户端 341
错误处理 346
事务化队列 349
返回数据 350
总结 353
LCE概览 355
第11章 松耦合事件 355
事件类 358
发布者 358
订阅者 358
筛选器 359
LCE编程 360
事件类 360
固定订阅者 364
发布者 364
临时订阅者 367
筛选器 373
订阅者筛选器 373
发布者筛选器 375
在网络上使用LCE 376
LCE路由 376
事件类代理 378
LCE和队列组件 379
事件类作为队列组件 380
订阅者作为队列组件 380
总结 382
第12章 安全 385
安全概览 386
Windows安全 388
SQL Server服务器 388
IIS 391
ASP.NET Web应用程序 393
ASP.NET Web Service 399
企业服务 405
用户身份 405
授权 407
启用访问检查 407
定义角色 408
定义角色访问 410
在方法内部检查角色 413
验证级别 414
验证等级和身份模拟 414
身份模拟 416
获取调用者的身份信息 419
企业服务和.NET Remoting 420
总结 422
第13章 部署和配置 425
部署 425
创建自定义安装程序 426
手工部署 426
自动部署 426
创建安装包 432
特性 434
管理组件 436
将应用程序配置为服务 441
总结 442
第14章 分布式应用的未来 443
Web Services规范 444
网络通讯 444
可靠的消息传递 450
事务 452
安全 460
Indigo 463
宿主环境 463
系统服务 464
连接器 465
消息传输服务 466
服务模型 466
从企业服务移植到Indigo 467
总结 469
第15章 案例研究 471
课程管理用例 472
示例项目 473
实体类:CourseManagement.Entities 475
CourseManagement数据库 483
数据访问:CourseManagement.Data 484
服务组件:CourseManagement.Control 489
Windows客户端:CourseManager 495
Web Services:CouresRegistrationService 499
Web应用程序:CourseRegistrationWeb 503
队列组件:CourseRegistration 509
总结 510
结束语 511
进一步阅读 513
索引 515