书籍详情
Expert C# 2005 Business Objects中文版(第2版)
作者:(美)霍特卡
出版社:电子工业出版社
出版时间:2007-06-01
ISBN:9787121038181
定价:¥79.80
购买这本书可以去
内容简介
这是一本关于在NET环境中,应用面向对象概念来进行应用程序构架、设计和开发的图书。具体来说,我会讲述如何搭建“专注于实现业务的对象”(这种对象叫做“业务对象”),讲述如何使用这些对象来搭建基于Windows、Web和Web Services的应用程序。我倡导面向对象设计和面向对象程序设计已经很多年了,也擅长构建分布式应用程序。我写这本书的目的就是,将面向对象思想和分布式应用很好地结合成一个统一的整体。尽管达到该目的的方法有很多,但事实证明,我创建的CSLA.NET 2.O框架能够成功地在分布式应用环境中充分发挥面向对象程序设计的潜力。本书的前半部分描述了创建CSLA.NET 2.0框架的过程,以其来支持.NET环境中的分布式面向对象应用开发。这其中包括了许多的与架构相关的概念和想法。在学习了解该框架的同时,您可以学会如何使用一些高级.NET技术,包括泛型.NET Remoting、企业服务、Web Services、自定义特性、对象序列化、反射和安全机制等。本书的后半部分描述了如何使用该框架来搭建一个示例应用程序。您将学到如何使用CSLA.NET 2.0框架创建业务对象,如何基于业务对象来创建Windows Forms、Web Forms(ASP.NET)和Web Services接口。我享受了这个将架构和图书融为一体的写作过程,我希望本书能够为您的应用开发带来价值。祝大家编程愉快,享受快乐!Rockford Lhotka,Magenic Technologies 的Principal Technology Evangelist.本书描述了怎样应用面向对象的概念来进行.MET应用程序的架构、设计和开发。作者将重点放在了面向业务的对象,即业务对象和怎样在包括Web和客户机/服务器结构的不同分布式环境中来实现它们。本书使用了大量的.NET技术,面向对象的设计与编程思想,以及分布式架构。本书的前半部分叙述了如何在.NET环境创建这个框架来支持面向对象的应用程序开发的流程,后半部分应用这个框架创建了一个带有几个不同接口的示例应用程序,本书适合C#应用开发人员阅读。
作者简介
ROCKFORD LHOTKA是一位著有大量书籍的作者,其中包括那本Expeert VB 2005 Business Objects。他是微软的地区总监,微软最有价值专家和INETA的发言人。ROCKFORD在全世界无数的会议和用户组中发表演讲,并且他还是MSDN在线的一位专栏作者。除此之外,ROCKFORD是Magenic Technologies(WWW.magenic.corn)的首席技术官,MagenicTechnologies是微软在美国最重要的金牌授权合作伙伴之一,致力于使用自分之百来自微软的工具和技术来解决当前最具挑战性的业务问题。
目录
第1章 分布式架构 1
1.1 逻辑架构和物理架构 1
1.1.1 复杂度 3
1.1.2 逻辑模型和物理模型的关系 4
1.1.3 一个五层的逻辑架构 8
1.1.4 逻辑架构的应用 13
1.1.5 前景 17
1.2 业务逻辑的管理 17
1.1.1 业务逻辑潜在的位置 18
1.2.2 业务对象 21
1.2.3 移动对象 24
1.3 架构与框架 32
1.4 小结 33
第2章 框架设计 35
2.1 基本设计目标 36
2.1.1 N层撤销能力 37
2.1.2 失效业务逻辑的跟踪 40
2.1.3 对象是否变更的跟踪 41
2.1.4 子对象的强类型集合 41
2.1.5 用户界面开发的简单与抽象模型 42
2.1.6 数据绑定的支持 46
2.1.7 对象持久化与对象-关系影射 49
2.1.8 自定义的身份验证 56
2.1.9 集成的授权 57
2.2 框架设计 58
2.2.1 业务对象的创建 58
2.2.2 N层撤销功能 63
2.3 数据绑定的支持 66
2.2.4 验证的规则 67
2.2.5 数据门户 70
2.2.6 定制的身份验证 82
2.2.7 集成的授权 84
2.2.8 工具类型与工具类 85
2.3 名字空间的组织 88
2.4 小结 90
第3章 业务框架实现 91
3.1 创建CSLA.NET项目 92
3.1.1 创建目录结构 93
3.1.2 本地化的支持 93
3.2 Csla.Core名字空间 94
3.2.1 IBusinessObject接口 94
3.2.2 IUndoableObject接口 95
3.2.3 IEditableCollection接口 96
3.2.4 IReadOnlyObject接口 96
3.2.5 IReadOnlyCollection接口 97
3.2.6 ICommandObject接口 97
3.2.7 ObjectCloner类 97
3.2.8 BindableBase类 98
3.2.9 NotUndoableAttribute类 101
3.2.10 UndoableBase类 101
3.2.11 BusinessBase类 109
3.2.12 ReadOnlyBindingList类 127
3.3 Csla.Validation名字空间 128
3.3.1 RuleHandler委托 128
3.3.2 RuleArgs类 129
3.3.3 RuleMethod类 130
3.4.4 ValidationRules类 130
3.3.5 BrokenRule类 134
3.3.6 BrokenRulesCollection类 134
3.3.7 ValidationException 135
3.4 Csla.Security名字空间 136
3.4.1 RolesForProperty类 136
3.4.2 AccessType枚举 136
3.4.3 AuthorizationRules类 137
3.5 Csla名字空间 139
3.5.1 BusinessBase类 139
3.5.2 BusinessListBase类 142
3.5.3 ReadOnlyBase类 155
3.5.4 ReadOnlyListBase类 156
3.6 小结 157
第4章 数据访问与安全 159
4.1 数据门户的设计 160
4.1.1 通道适配器模式与消息路由模式 161
4.1.2 分布式事务的支持 164
4.1.3 上下文与位置的无关性 166
4.2 基类的增强 169
4.2.1 工厂方法和查询条件 171
4.2.2 保存方法 172
4.2.3 数据门户方法 174
4.3 通道适配器 177
4.3.1 Csla.MethodCaller类 177
4.3.2 Csla.Server.CallMethodException 183
4.3.3 Csla.RunLocalAttribute类 184
4.3.4 Csla.DataPortalEventArgs类 184
4.3.5 Csla.DataPortal类 185
4.3.6 Csla.Server.IDataPortalServer 193
4.3.7 Csla.DataPortalClient.IDataPortalProxy 194
4.3.8 Csla.DataPortalClient.LocalProxy 194
4.3.9 Csla.DataPortalClient.RemotingProxy 195
4.3.10 Csla.Server.Hosts.RemotingPortal 198
4.3.11 Csla.DataPortalClient.EnterpriseServicesProxy 200
4.3.12 Csla.Server.Hosts.EnterpriseServicesPortal 201
4.3.13 Csla.DataPortalClient.WebServicesProxy 206
4.3.14 Csla.Server.Hosts.WebServicePortal 208
4.4 分布式事务的支持 210
4.4.1 Csla.TransactionalTypes 210
4.4.2 Csla.TransactionalAttribute 210
4.4.3 Csla.Server.DataPortal 211
4.4.4 Csla.Server.ServicedDataPortal 215
4.4.5 Csla.Server.TransactionalDataPortal 216
4.5 消息路由器 217
4.5.1 Csla.CriteriaBase 217
4.5.2 Csla.Server.SimpleDataPortal 218
4.6 上下文与位置的无关性 224
4.6.1 Csla.Server.DataPortalContext 225
4.6.2 Csla.Server.DataPortalResult 228
4.6.3 Csla.Server.DataPortalException 228
4.6.4 Csla.ApplicationContext 229
4.7 小结 233
第5章 框架的完成 235
5.1 额外的基类 236
5.1.1 CommandBase 236
5.1.2 NameValueListBase 239
5.2 自定义的身份验证 243
5.2.1 BusinessPrincipalBase 246
5.3 排序集合 246
5.3.1 SortedBindingList 247
5.4 日期处理 262
5.4.1 SmartDate 263
5.5 通用业务规则 273
5.5.1 CommonRules 273
5.6 数据访问 276
5.6.1 SafeDataReader 277
5.6.2 DataMapper 280
5.7 生成报表 285
5.7.1 ObjectAdapter 286
5.8 Windows数据绑定 295
5.8.1 ReadWriteAuthorization 295
5.8.2 BindingSourceRefresh 301
5.9 Web Forms数据绑定 303
5.9.1 CslaDataSource 305
5.9.2 CslaDataSourceView 307
5.9.3 CslaDataSourceDesigner 310
5.9.4 CslaDesignerDataSourceView 310
5.9.5 ObjectSchema 314
5.9.6 ObjectViewSchema 315
5.9.7 ObjectFieldInfo 316
5.10 小结 319
第6章 面向对象的应用程序设计 321
6.1 应用需求 322
6.1.1 用例 323
6.2 对象设计 326
6.2.1 初步设计 326
6.2.2 改进设计 328
6.2.3 自定义的身份认证 339
6.3 使用CSLA.NET 339
6.4 数据库设计 343
6.4.1 创建一个数据库 344
6.4.2 PTracker数据库 345
6.4.3 安全数据库 358
6.5 小结 359
第7章 使用CSLA.NET的基类 361
7.1 业务对象的生命周期 361
7.1.1 对象的创建 362
7.1.2 对象的重获 365
7.1.3 更新可编辑的对象 368
7.1.4 disposing和finalizing对象 372
7.2 业务类结构 374
7.2.1 公共特征 374
7.2.2 类结构 379
7.3 小结 402
第8章 业务对象的实现 405
8.1 ProjectTracker对象 405
8.1.1 项目的创建 406
8.2 业务类的实现 407
8.2.1 项目 408
8.2.2 ProjectResources 429
8.2.3 ProjectResource类 434
8.2.4 Assignment类 439
8.2.5 RoleList类 442
8.2.6 Resource类与相关对象 444
8.2.7 ProjectList类和ResourceList类 446
8.2.8 角色 449
8.2.9 具体角色 453
8.2.10 Exists方法的实现 455
8.3 自定义的身份验证 457
8.3.1 PTPrincipal 457
8.3.2 PTIdentity 459
8.4 小结 462
第9章 Windows Forms UI 465
9.1 用户界面设计 465
9.1.1 用户控件框架 467
9.1.2 用户控件设计 469
9.1.3 应用程序配置 469
9.1.2 PTWin项目设置 472
9.2 用户控件框架 472
9.2.1 Winpart 472
9.2.2 主窗体 474
9.2.3 登陆窗体 481
9.3 业务功能 482
9.3.1 MainForm 482
9.3.2 RolesEdit 486
9.3.3 ProjectList 494
9.3.4 ProjectEdit 497
9.4 小结 512
第10章 Web Forms UI 513
10.1 Web开发和对象 513
10.2 状态管理 515
10.2.1 Web服务器上的状态 516
10.2.2 传输状态给客户端、从客户端获取状态 518
10.2.3 在文件或数据库中存储状态 519
10.3 界面设计 521
10.3.1 应用程序配置 523
10.3.2 PTWeb站点设置 525
10.3.3 主页面 526
10.3.4 登入页面 531
10.4 业务功能 537
10.4.1 RolesEdit窗体 538
10.4.2 ProjectList窗体 548
10.4.3 ProjectEdit窗体 552
10.5 小结 562
第11章 Web Services接口 563
11.1 Web Services概述 564
11.1.1 SOAP标准 564
11.1.2 基于消息的通讯 565
11.1.3 SOAP和Web Services 565
11.1.4 SOAP、Web Services和.NET Framework 566
11.2 Web Services和SOA 567
11.2.1 服务vs.组件 567
11.3 设计Web Services接口 571
11.3.1 基于组件的设计 vs. 面向服务的设计 571
11.3.2 将Web方法组织成Web Services 572
11.3.3 数据的接收和返回 573
11.3.2 身份验证 575
11.4 Web Service的实现 576
11.4.1 应用程序配置 576
11.4.2 PTWebService站点设置 579
11.4.3 PTService 580
11.4.4 身份验证 580
11.4.5 基于组件的Web方法 584
11.4.6 面向服务的Web方法 587
11.5 Web Service消费者应用程序的实现 591
11.5.1 一个简单地Smart Client 594
11.6 小结 599
第12章 远程数据门户宿主的实现 601
12.1 数据门户通道的比较 602
12.1.1 比较的因素 602
12.2 .NET Remoting 605
12.2.1 实现 605
12.3 Web Services 609
12.3.1 实现 610
12.4 企业服务 612
12.4.1 代理/宿主程序集的创建 612
12.4.2 客户端设置 618
12.5 小结 619
索引 621
1.1 逻辑架构和物理架构 1
1.1.1 复杂度 3
1.1.2 逻辑模型和物理模型的关系 4
1.1.3 一个五层的逻辑架构 8
1.1.4 逻辑架构的应用 13
1.1.5 前景 17
1.2 业务逻辑的管理 17
1.1.1 业务逻辑潜在的位置 18
1.2.2 业务对象 21
1.2.3 移动对象 24
1.3 架构与框架 32
1.4 小结 33
第2章 框架设计 35
2.1 基本设计目标 36
2.1.1 N层撤销能力 37
2.1.2 失效业务逻辑的跟踪 40
2.1.3 对象是否变更的跟踪 41
2.1.4 子对象的强类型集合 41
2.1.5 用户界面开发的简单与抽象模型 42
2.1.6 数据绑定的支持 46
2.1.7 对象持久化与对象-关系影射 49
2.1.8 自定义的身份验证 56
2.1.9 集成的授权 57
2.2 框架设计 58
2.2.1 业务对象的创建 58
2.2.2 N层撤销功能 63
2.3 数据绑定的支持 66
2.2.4 验证的规则 67
2.2.5 数据门户 70
2.2.6 定制的身份验证 82
2.2.7 集成的授权 84
2.2.8 工具类型与工具类 85
2.3 名字空间的组织 88
2.4 小结 90
第3章 业务框架实现 91
3.1 创建CSLA.NET项目 92
3.1.1 创建目录结构 93
3.1.2 本地化的支持 93
3.2 Csla.Core名字空间 94
3.2.1 IBusinessObject接口 94
3.2.2 IUndoableObject接口 95
3.2.3 IEditableCollection接口 96
3.2.4 IReadOnlyObject接口 96
3.2.5 IReadOnlyCollection接口 97
3.2.6 ICommandObject接口 97
3.2.7 ObjectCloner类 97
3.2.8 BindableBase类 98
3.2.9 NotUndoableAttribute类 101
3.2.10 UndoableBase类 101
3.2.11 BusinessBase类 109
3.2.12 ReadOnlyBindingList类 127
3.3 Csla.Validation名字空间 128
3.3.1 RuleHandler委托 128
3.3.2 RuleArgs类 129
3.3.3 RuleMethod类 130
3.4.4 ValidationRules类 130
3.3.5 BrokenRule类 134
3.3.6 BrokenRulesCollection类 134
3.3.7 ValidationException 135
3.4 Csla.Security名字空间 136
3.4.1 RolesForProperty类 136
3.4.2 AccessType枚举 136
3.4.3 AuthorizationRules类 137
3.5 Csla名字空间 139
3.5.1 BusinessBase类 139
3.5.2 BusinessListBase类 142
3.5.3 ReadOnlyBase类 155
3.5.4 ReadOnlyListBase类 156
3.6 小结 157
第4章 数据访问与安全 159
4.1 数据门户的设计 160
4.1.1 通道适配器模式与消息路由模式 161
4.1.2 分布式事务的支持 164
4.1.3 上下文与位置的无关性 166
4.2 基类的增强 169
4.2.1 工厂方法和查询条件 171
4.2.2 保存方法 172
4.2.3 数据门户方法 174
4.3 通道适配器 177
4.3.1 Csla.MethodCaller类 177
4.3.2 Csla.Server.CallMethodException 183
4.3.3 Csla.RunLocalAttribute类 184
4.3.4 Csla.DataPortalEventArgs类 184
4.3.5 Csla.DataPortal类 185
4.3.6 Csla.Server.IDataPortalServer 193
4.3.7 Csla.DataPortalClient.IDataPortalProxy 194
4.3.8 Csla.DataPortalClient.LocalProxy 194
4.3.9 Csla.DataPortalClient.RemotingProxy 195
4.3.10 Csla.Server.Hosts.RemotingPortal 198
4.3.11 Csla.DataPortalClient.EnterpriseServicesProxy 200
4.3.12 Csla.Server.Hosts.EnterpriseServicesPortal 201
4.3.13 Csla.DataPortalClient.WebServicesProxy 206
4.3.14 Csla.Server.Hosts.WebServicePortal 208
4.4 分布式事务的支持 210
4.4.1 Csla.TransactionalTypes 210
4.4.2 Csla.TransactionalAttribute 210
4.4.3 Csla.Server.DataPortal 211
4.4.4 Csla.Server.ServicedDataPortal 215
4.4.5 Csla.Server.TransactionalDataPortal 216
4.5 消息路由器 217
4.5.1 Csla.CriteriaBase 217
4.5.2 Csla.Server.SimpleDataPortal 218
4.6 上下文与位置的无关性 224
4.6.1 Csla.Server.DataPortalContext 225
4.6.2 Csla.Server.DataPortalResult 228
4.6.3 Csla.Server.DataPortalException 228
4.6.4 Csla.ApplicationContext 229
4.7 小结 233
第5章 框架的完成 235
5.1 额外的基类 236
5.1.1 CommandBase 236
5.1.2 NameValueListBase 239
5.2 自定义的身份验证 243
5.2.1 BusinessPrincipalBase 246
5.3 排序集合 246
5.3.1 SortedBindingList 247
5.4 日期处理 262
5.4.1 SmartDate 263
5.5 通用业务规则 273
5.5.1 CommonRules 273
5.6 数据访问 276
5.6.1 SafeDataReader 277
5.6.2 DataMapper 280
5.7 生成报表 285
5.7.1 ObjectAdapter 286
5.8 Windows数据绑定 295
5.8.1 ReadWriteAuthorization 295
5.8.2 BindingSourceRefresh 301
5.9 Web Forms数据绑定 303
5.9.1 CslaDataSource 305
5.9.2 CslaDataSourceView 307
5.9.3 CslaDataSourceDesigner 310
5.9.4 CslaDesignerDataSourceView 310
5.9.5 ObjectSchema 314
5.9.6 ObjectViewSchema 315
5.9.7 ObjectFieldInfo 316
5.10 小结 319
第6章 面向对象的应用程序设计 321
6.1 应用需求 322
6.1.1 用例 323
6.2 对象设计 326
6.2.1 初步设计 326
6.2.2 改进设计 328
6.2.3 自定义的身份认证 339
6.3 使用CSLA.NET 339
6.4 数据库设计 343
6.4.1 创建一个数据库 344
6.4.2 PTracker数据库 345
6.4.3 安全数据库 358
6.5 小结 359
第7章 使用CSLA.NET的基类 361
7.1 业务对象的生命周期 361
7.1.1 对象的创建 362
7.1.2 对象的重获 365
7.1.3 更新可编辑的对象 368
7.1.4 disposing和finalizing对象 372
7.2 业务类结构 374
7.2.1 公共特征 374
7.2.2 类结构 379
7.3 小结 402
第8章 业务对象的实现 405
8.1 ProjectTracker对象 405
8.1.1 项目的创建 406
8.2 业务类的实现 407
8.2.1 项目 408
8.2.2 ProjectResources 429
8.2.3 ProjectResource类 434
8.2.4 Assignment类 439
8.2.5 RoleList类 442
8.2.6 Resource类与相关对象 444
8.2.7 ProjectList类和ResourceList类 446
8.2.8 角色 449
8.2.9 具体角色 453
8.2.10 Exists方法的实现 455
8.3 自定义的身份验证 457
8.3.1 PTPrincipal 457
8.3.2 PTIdentity 459
8.4 小结 462
第9章 Windows Forms UI 465
9.1 用户界面设计 465
9.1.1 用户控件框架 467
9.1.2 用户控件设计 469
9.1.3 应用程序配置 469
9.1.2 PTWin项目设置 472
9.2 用户控件框架 472
9.2.1 Winpart 472
9.2.2 主窗体 474
9.2.3 登陆窗体 481
9.3 业务功能 482
9.3.1 MainForm 482
9.3.2 RolesEdit 486
9.3.3 ProjectList 494
9.3.4 ProjectEdit 497
9.4 小结 512
第10章 Web Forms UI 513
10.1 Web开发和对象 513
10.2 状态管理 515
10.2.1 Web服务器上的状态 516
10.2.2 传输状态给客户端、从客户端获取状态 518
10.2.3 在文件或数据库中存储状态 519
10.3 界面设计 521
10.3.1 应用程序配置 523
10.3.2 PTWeb站点设置 525
10.3.3 主页面 526
10.3.4 登入页面 531
10.4 业务功能 537
10.4.1 RolesEdit窗体 538
10.4.2 ProjectList窗体 548
10.4.3 ProjectEdit窗体 552
10.5 小结 562
第11章 Web Services接口 563
11.1 Web Services概述 564
11.1.1 SOAP标准 564
11.1.2 基于消息的通讯 565
11.1.3 SOAP和Web Services 565
11.1.4 SOAP、Web Services和.NET Framework 566
11.2 Web Services和SOA 567
11.2.1 服务vs.组件 567
11.3 设计Web Services接口 571
11.3.1 基于组件的设计 vs. 面向服务的设计 571
11.3.2 将Web方法组织成Web Services 572
11.3.3 数据的接收和返回 573
11.3.2 身份验证 575
11.4 Web Service的实现 576
11.4.1 应用程序配置 576
11.4.2 PTWebService站点设置 579
11.4.3 PTService 580
11.4.4 身份验证 580
11.4.5 基于组件的Web方法 584
11.4.6 面向服务的Web方法 587
11.5 Web Service消费者应用程序的实现 591
11.5.1 一个简单地Smart Client 594
11.6 小结 599
第12章 远程数据门户宿主的实现 601
12.1 数据门户通道的比较 602
12.1.1 比较的因素 602
12.2 .NET Remoting 605
12.2.1 实现 605
12.3 Web Services 609
12.3.1 实现 610
12.4 企业服务 612
12.4.1 代理/宿主程序集的创建 612
12.4.2 客户端设置 618
12.5 小结 619
索引 621
猜您喜欢