序
Preface
这本书是我多年心血的结晶。当微软于1996年发布Microsoft Transaction Server时,我就开始在微软的平台上开发分布式业务解决方案了。从那以后我参与了许多项目,帮助客户设计和实现他们的业务解决方案。其间,我做过各种各样的事情——比如,集成旧有系统,创建一个自定义的框架,可以以一种很灵活的方式为某些应用程序进行扩展等等。
微软于2000年的PDC会议上首次展示.NET的预览版时,我就被这项新技术深深地吸引了。从那时起我参与了多本.NET书籍的编写,包括Professional C# (Wrox, 2004)、Beginning Visual C# (Wrox, 2002)、C# Web Services (Wrox, 2001)和Prof .NET Network Programming (Apress, 2004)。
这些年来,我学到的很多东西也都已总结在这本书中了。
为什么必须使用.NET企业服务?.NET企业服务是.NET程序使用COM+服务技术的途径,而COM+作为操作系统的一部分,它正在被世界范围内的大量公司所使用。.NET企业服务实际上扩展了COM+服务,使之具有了.NET的功能。不管你是使用Windows Forms还是ASP.NET来创建业务解决方案,只要是一种前端加后端的应用程序模型,那么在服务端(后端)总有一些公共的特性是需要实现的,并且可能还须要保证可扩展性和互操作性等等。
在.NET企业服务中,这些特性都是现成可用的,包括对象池、线程池、自动的分布式事务,还有服务端和客户端之间的异步连接、回调机制、队列组件(可以作为消息队列的一个抽象层)、基于角色的安全等其他更多的特性。
Who Should Read This Book
谁应该读这本书
这本书并不是.NET程序设计的入门书籍,现在有很多其他的书已经扮演了那个角色。在写这本书时我假设你已经有了.NET开发的一些经验。
尽管COM+是.NET企业服务的基础,但是COM技术对于理解这本书或者创建.NET企业服务解决方案并不是必须的。另一方面,如果你已经有了COM的经验,并且希望把已有的COM组件和.NET应用程序进行集成,那么这本书也会给你绝对有用的信息。
Organization
内容编排
这本书一共有15章,包括了.NET企业服务所提供的各种服务。这本书开头先介绍了所有服务的概览和一些相关的核心技术,它们都是企业服务的基础,然后在各个章节逐一描述所有的服务。每一章的开头都有服务的架构性描述,这项服务存在的原因,典型的使用场景等等。在架构描述之后你将看到很多代码示例,这样你不仅能知道这些特性,还能知道如何运用它们。这本书中贯穿了大量的技巧和提示,向你展示了这项技术最好的那些方面。最后一章提供了一个案例,它同时使用了多种服务,这样你可以看到它们是如何在一个真实的环境中协同工作的。
第1章,“.NET企业服务简介”提供了一个和企业服务相关技术的概览。在这里你能了解到你的业务解决方案能用和应该用什么样的技术。而从MTS到COM+和.NET企业服务的革命性进步的背景信息,会令你更好地理解这些技术。
第2章,“对象激活和上下文”包括了COM+和.NET企业服务的基础技术。它会告诉你这些服务究竟是如何做到的。你也可以了解到拦截技术的基础知识。第一个服务组件将在这章介绍,你将能看到上下文和对象激活的实际场景。
第3章,“并发”将教你如何并行地运行线程,以及如何避免竞争条件和死锁。在讨论完COM单元模型之后,这一章开始阐述COM+活动的概念。无组件服务——COM+ 1.5的一个新特性——将在这章扮演重要角色。
第4章,“COM互操作”是为那些需要在.NET应用程序中使用已有COM组件的人准备的。在这里你将了解到如何集成COM和.NET这两种技术。
第5章,“网络访问”提供了一些关于如何使用DCOM、.NET Remoting和Web Services访问.NET企业服务的信息。你还能知道根据应用程序上下文的不同,如何选择最合适的技术。
第6章,“数据访问”描述了如何使用ADO.NET访问数据库。不过这章并不只是ADO.NET本身的介绍,它还会告诉你一些经验和技巧,也就是在一个分布式环境中使用ADO.NET的最佳实践。
第7章,“事务服务”解释了用于描述事务的ACID四个属性(Atomicity、Consistency、Isolation和Durability),向你展示了如何使用ADO.NET的事务,描述了.NET企业服务中所有可用的事务选项和设置。你将能学到这几种不同特性的功能,以及从事务性的角度决定你的组件应该如何配置。
第8章,“补偿性资源管理”示范了怎样创建你自己的能参与在DTC管理下的事务资源管理器。
第9章,“状态管理”——创建有状态的还是无状态的服务组件?你应该把状态数据放在哪里?——客户端还是服务端?这一章指出了在多种应用程序模型下,状态管理的多种选择。
第10章,“队列组件”在分布式解决方案中往往是一项被忽略的技术。在这一章你将能了解到消息队列的基础功能,以及作为抽象层的队列组件如何利用消息队列实现在断开连接的环境中进行组件上的方法调用。
第11章,“松耦合事件”对COM+和.NET事件模型进行了比较。LCE(Loosely Coupled Events)框架使用了一个拦截模型,这样组件不会直接和客户端进行交互。你将在这里读到松耦合事件应该如何应用到实际的场景中,以及如何定义事件过滤器。
第12章,“安全”解释了企业服务应用程序中身份认证、权限验证、假冒、机密性等概念。由于很多其他应用程序都要和.NET企业服务业务解决方案相交互,所以和.NET企业服务一起,这章还同时讨论了SQL Server、ASP.NET Web应用程序、Web Service、.NET Remoting的安全问题。
第13章,“部署和配置”包含了如何安装、配置服务端、客户端(带有客户端代理以访问服务组件)应用程序的内容。
第14章,“分布式应用程序的未来”提供了一些未来技术的概述,以及你如何在今天就为它们做好准备的指导。
第15章,“案例研究”提供了一个综合性的示例,它利用到了前面所有章节中所涉及的技术,这样你可以看到这些.NET企业服务特性将如何在一起协同工作。
Sample Code
示例代码
本书的示例代码都是基于C#的——只不过第4章还用到了一些C++、Visual Basic、JavaScript的代码来演示COM互操作。你可以从本书的网站上下载这些示例代码:http://www.christiannagel.com/EnterpriseServices。这些代码的Visual Basic .NET版本也能从这个网站上下载到。
Contact
联系方式
如果你有关于这本书的反馈意见,或者希望得到关于.NET企业服务的培训或咨询,那你可以通过我的网站与我联系:http://www.christiannagel.com。
欢迎您的反馈意见!
Christian Nagel
http://www.christiannagel.com
http://www.thinktecture.com