Expert C# 2005 Business Objects中文版(第2版)
基本信息
- 原书名: Expert C# Business Objects, Second Edition
- 原出版社: Apress
编辑推荐
.NET应用开发智慧结晶!
C#应用开发人员必读经典!
完全阐述基于组件的可扩展逻辑架构!
快速搭建系统业务平台,轻松应对客户变化。
内容简介回到顶部↑
本书描述了怎样应用面向对象的概念来进行.NET应用程序的架构、设计和开发。作者将重点放在了面向业务的对象,即业务对象和怎样在包括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.2 逻辑模型和物理模型的关系
1.1.3 一个五层的逻辑架构
1.1.4 逻辑架构的应用
1.1.5 前景
1.2 业务逻辑的管理
1.2.1 业务逻辑潜在的位置
1.2.2 业务对象
1.2.3 移动对象
1.3 架构与框架
1.4 小结
第2章 框架设计
2.1 基本设计目标
2.1.1 n层撤销能力
关于技术审阅者 ⅲ
鸣谢 ⅴ
本书简介 ⅶ
第1章 分布式架构
1.1 逻辑架构和物理架构
1.1.1 复杂度
1.1.2 逻辑模型和物理模型的关系
1.1.3 一个五层的逻辑架构
1.1.4 逻辑架构的应用
1.1.5 前景
1.2 业务逻辑的管理
1.2.1 业务逻辑潜在的位置
1.2.2 业务对象
1.2.3 移动对象
1.3 架构与框架
1.4 小结
第2章 框架设计
2.1 基本设计目标
2.1.1 n层撤销能力
译者序回到顶部↑
在朋友把这本书介绍给我的时候,我正在为一个项目中客户不断变化的需求而头痛不已,而实际上我的这个项目只是公司一大堆此类项目中的一个。.
在现代的项目开发过程中,由于客户自身业务需求的快速变化而带来的对于软件需求上的变化越来越频繁。项目经理们所要面对的局面经常是固定的预算,固定的上线日期,加上频繁变化的需求这样的组合。这对于每一个精细业务定制软件的开发团队来说都是一个永恒的难题。当然从项目管理的角度我们需要通过客户管理和需求控制来避免这种情况的发生;但是另一方面,开发团队需要一套业务级别的实用软件框架来避免在客户需求发生变化的时候花时间重新搭建系统的业务平台,从而大大提高应对客户变化的能力以及自身的生产力。
坦白地讲,在此之前我对ROCKFORD LHOTKA的CSLA.NET知之甚少,甚至在开始的时候觉得这不过是一些底层代码的封装而已。然而在后来为本次翻译所作的必要准备、翻译的本身,以及后来实际的使用过程中,我对于这个业务框架的看法却经历了从不屑、接受,直到最后的推崇这样的变化。
CSLA.NET最诱人之处就是它应用了.NET中的很多特性,如远程访问、序列化、反射、企业服务、System.Transactions、强命名程序集、动态装载程序集和应用程序配置文件等等,来在业务级别上真正的实现了构建绝大部分业务应用程序所需要的框架,而这个框架可以被轻松的应用在包括Windows Forms、Web Forms和Web Services在内的各种应用程序中,同时保持了相对来说非常高的性能。更重要的是,它还可以在不修改源代码的情况下,被部署在不同的硬件配置环境下,比如从所有代码都在同一台电脑上执行变成一个三层架构,要实现这一切,你所要做的只是修改一个配置文件而已。怎么样,是不是有相见恨晚的感觉了?..
除了那些常见的底层功能代码封装之外,这个框架在业务级别上所支持的功能也异常强大,包括业务逻辑的N层撤销、移动对象、业务规则跟踪、业务授权规则、同一个对象拥有多种用户界面、Windows和Web Forms的数据绑定,以及与分布式事务技术的集成等等。有了这个框架,业务应用程序开发人员只需要考虑将精力集中在业务需求上,而完全不必要在那些对于增加应用程序的业务价值没有丝毫帮助的代码上面浪费时间。相信看到这里有很多项目经理和技术主管已经在回忆上一次与此相关的痛苦经历了,不过现在有了这么强大的框架摆在你的面前,你可以和这个难题说再见了。更重要的是,它完全是免费的!
这本LHOTKA的力作描述了怎样搭建支持这个架构的框架,并且展示了如何使用这个框架来创建基于业务对象的Windows Forms、Web Forms和Web Services应用程序。虽然这本书通篇的内容都是关于LHOTKA的宝贝框架CSLA.NET的介绍,但是通过他全面而平台性的讲解,我们也可以从中提炼出CSLA.NET 2.0架构当中的思想过程,同时把它当作一本讲述在.NET平台上进行分布式架构的业务对象理论的书籍来参读。
随着微软Visual Studio 2005全系列产品的发布和.NET 2.0的广泛应用,.NET平台再次成为业务应用开发的焦点,特别是在业务逻辑频繁变化的行业领域,更是凭借其简短的学习路径,超高的生产力和灵活的应变能力而成为当仁不让的首选。而CSLA.NET则在这个计算平台上为我们提供了一个满足框架性业务操作的有力工具,有了它,我们在.NET上的开发过程是不是有一种如虎添翼的感觉呢?
亲爱的读者朋友,希望这本书能对您的项目有所帮助,最后祝您编码顺利!...
王鑫
2007年3月
在现代的项目开发过程中,由于客户自身业务需求的快速变化而带来的对于软件需求上的变化越来越频繁。项目经理们所要面对的局面经常是固定的预算,固定的上线日期,加上频繁变化的需求这样的组合。这对于每一个精细业务定制软件的开发团队来说都是一个永恒的难题。当然从项目管理的角度我们需要通过客户管理和需求控制来避免这种情况的发生;但是另一方面,开发团队需要一套业务级别的实用软件框架来避免在客户需求发生变化的时候花时间重新搭建系统的业务平台,从而大大提高应对客户变化的能力以及自身的生产力。
坦白地讲,在此之前我对ROCKFORD LHOTKA的CSLA.NET知之甚少,甚至在开始的时候觉得这不过是一些底层代码的封装而已。然而在后来为本次翻译所作的必要准备、翻译的本身,以及后来实际的使用过程中,我对于这个业务框架的看法却经历了从不屑、接受,直到最后的推崇这样的变化。
CSLA.NET最诱人之处就是它应用了.NET中的很多特性,如远程访问、序列化、反射、企业服务、System.Transactions、强命名程序集、动态装载程序集和应用程序配置文件等等,来在业务级别上真正的实现了构建绝大部分业务应用程序所需要的框架,而这个框架可以被轻松的应用在包括Windows Forms、Web Forms和Web Services在内的各种应用程序中,同时保持了相对来说非常高的性能。更重要的是,它还可以在不修改源代码的情况下,被部署在不同的硬件配置环境下,比如从所有代码都在同一台电脑上执行变成一个三层架构,要实现这一切,你所要做的只是修改一个配置文件而已。怎么样,是不是有相见恨晚的感觉了?..
除了那些常见的底层功能代码封装之外,这个框架在业务级别上所支持的功能也异常强大,包括业务逻辑的N层撤销、移动对象、业务规则跟踪、业务授权规则、同一个对象拥有多种用户界面、Windows和Web Forms的数据绑定,以及与分布式事务技术的集成等等。有了这个框架,业务应用程序开发人员只需要考虑将精力集中在业务需求上,而完全不必要在那些对于增加应用程序的业务价值没有丝毫帮助的代码上面浪费时间。相信看到这里有很多项目经理和技术主管已经在回忆上一次与此相关的痛苦经历了,不过现在有了这么强大的框架摆在你的面前,你可以和这个难题说再见了。更重要的是,它完全是免费的!
这本LHOTKA的力作描述了怎样搭建支持这个架构的框架,并且展示了如何使用这个框架来创建基于业务对象的Windows Forms、Web Forms和Web Services应用程序。虽然这本书通篇的内容都是关于LHOTKA的宝贝框架CSLA.NET的介绍,但是通过他全面而平台性的讲解,我们也可以从中提炼出CSLA.NET 2.0架构当中的思想过程,同时把它当作一本讲述在.NET平台上进行分布式架构的业务对象理论的书籍来参读。
随着微软Visual Studio 2005全系列产品的发布和.NET 2.0的广泛应用,.NET平台再次成为业务应用开发的焦点,特别是在业务逻辑频繁变化的行业领域,更是凭借其简短的学习路径,超高的生产力和灵活的应变能力而成为当仁不让的首选。而CSLA.NET则在这个计算平台上为我们提供了一个满足框架性业务操作的有力工具,有了它,我们在.NET上的开发过程是不是有一种如虎添翼的感觉呢?
亲爱的读者朋友,希望这本书能对您的项目有所帮助,最后祝您编码顺利!...
王鑫
2007年3月
前言回到顶部↑
这本书描述了怎样应用面向对象的概念来进行.NET应用程序的架构、设计和开发。我把重点放在了面向业务的对象,即业务对象,以及怎样在包括Web和客户机/服务器结构的不同分布式环境中来实现它们。本书使用了大量的.NET技术,面向对象的设计与编程思想,以及分布式的架构。.
本书的前半部分叙述了如何在.NET环境创建这个框架来支持面向对象的应用程序开发的流程。这其中包含了大量的架构概念和思想,还有一些比较深入的高级.NET技术。
本书的后半部分应用这个框架创建了一个带有几个不同接口的示例应用程序。如果你愿意,你完全可以跳过本书的前半部分,直接使用这个框架来搭建面向对象的应用程序。
我创建这个CSLA.NET框架的一个主要目的就是为了简化.NET开发。本书中使用该框架的开发人员无须关心底层的技术,如远程访问、序列化或反射的这些细节。所有的细节都被内建在框架当中,这使得使用框架的开发人员可以集中几乎所有的精力来关注业务逻辑和应用程序设计,而不是整天陷在那些琐碎的“管道连接”的问题里。
从.NET 1.0到2.0
本书是对上一版Expert C# Business Objects的一次主要修订。修订本主要加入了.NET 2.0的新特性,以及应用了过去几年使用.NET 1.0和1.1所学到的知识。
这本书几乎与Expert VB 2005 Business Objects那本书一模一样,唯一的区别就是这两本书使用的编程语言的语法不同。
这两本VB和C#的书都体现了我在近十年的时间里研究的概念思想。我一贯的目标就是在分布式N层应用程序中实现高效的面向对象的设计。在这几年里,业界的技术、我对此的理解和对概念的表达都发生了极大的变化。
作为尝试分布式过程先驱的那些VB5和VB6的书籍描述了怎样使用VB、COM、DCOM、MTS和COM+来创建面向对象的应用程序(或者至少它们尽可能地实现了用VB5/6和COM所能实现的面向对象)。它们还涉及分布式对象的概念,即给定的对象遍布在一个物理N层环境中的多台主机之间。在COM中,分布式对象很重要,所以这些书籍进行了大量的关于对象状态和状态序列化技术的讨论。
最后我写出了被我叫做CSLA的一个架构,意为基于组件的可扩展的逻辑架构。几年中,我收到了上百封使用过CSLA的人给我发来的电子邮件,这些人把CSLA作为他们的应用程序的基础架构,这些程序中既有很小的单用户程序,也有支撑他们核心业务的大型企业应用。
在.NET中,分布式对象的概念已经让位给了一个更好的想法——移动对象,就是说对象可以在一个N层环境中的计算机之间移动。在高级层面上来看,这与分布式对象是类似的,但是移动对象提供了一个在分布式环境中实现面向对象设计更强大的方法。
我还收到了相当多的电子邮件,说CSLA.NET不是很成功,这一点儿也不奇怪。要想有效地使用CSLA.NET,你必须精通面向对象和基于组件的设计,理解分布式对象的概念,并且拥有其他大量的技能。移动对象架构有很多好处,但不是很好理解。
设计CSLA.NET
.NET的一个特点就是它经常提供多种方法来解决相同的问题。一些方法比另外一些要好,但是不一定马上就能找到给定问题的最好方法。在写那些.NET 1.0的书的时候,我花了很长时间尝试着用不同的方法来实现分布式对象。尽管知道有多种方法能行得通,但是在最后我还是找到了最符合我最初目标的那种方法。
在我讨论那些目标之前,我想很有必要来谈谈另一个令我在写这本书的时候冥思苦想的问题。假设有很多的人使用了本书的上一个版本中的概念和代码,我想在任何可能的时候保留向后兼容的能力。同时,这本书的新版提供了一个好机会,来使得我们在应用.NET 2.0的新特性的同时,应用过去几年中通过使用.NET学到的东西。
应用学到的东西就是说要应用新的概念和代码,这需要修改已经存在的业务对象和用户界面代码。我是不接受弱向后兼容性的,然而发展这些概念来适应在面向对象及分布式计算领域的技术和我的观念这两方面的变化非常重要。
在可能的情况下,我会尽量地把对已经存在的代码的影响控制到最小,以便对于大多数应用程序来说,所需要的转换不会过于复杂。
我对架构和本书有一套详尽的目标。这些目标非常重要,因为它们对理解为什么我准备了许多种选择很关键,例如使用哪种.NET技术和如何使用它们。这些目标有:
支持完全的面向对象编程模型
允许开发人员无障碍地使用架构
本书的前半部分叙述了如何在.NET环境创建这个框架来支持面向对象的应用程序开发的流程。这其中包含了大量的架构概念和思想,还有一些比较深入的高级.NET技术。
本书的后半部分应用这个框架创建了一个带有几个不同接口的示例应用程序。如果你愿意,你完全可以跳过本书的前半部分,直接使用这个框架来搭建面向对象的应用程序。
我创建这个CSLA.NET框架的一个主要目的就是为了简化.NET开发。本书中使用该框架的开发人员无须关心底层的技术,如远程访问、序列化或反射的这些细节。所有的细节都被内建在框架当中,这使得使用框架的开发人员可以集中几乎所有的精力来关注业务逻辑和应用程序设计,而不是整天陷在那些琐碎的“管道连接”的问题里。
从.NET 1.0到2.0
本书是对上一版Expert C# Business Objects的一次主要修订。修订本主要加入了.NET 2.0的新特性,以及应用了过去几年使用.NET 1.0和1.1所学到的知识。
这本书几乎与Expert VB 2005 Business Objects那本书一模一样,唯一的区别就是这两本书使用的编程语言的语法不同。
这两本VB和C#的书都体现了我在近十年的时间里研究的概念思想。我一贯的目标就是在分布式N层应用程序中实现高效的面向对象的设计。在这几年里,业界的技术、我对此的理解和对概念的表达都发生了极大的变化。
作为尝试分布式过程先驱的那些VB5和VB6的书籍描述了怎样使用VB、COM、DCOM、MTS和COM+来创建面向对象的应用程序(或者至少它们尽可能地实现了用VB5/6和COM所能实现的面向对象)。它们还涉及分布式对象的概念,即给定的对象遍布在一个物理N层环境中的多台主机之间。在COM中,分布式对象很重要,所以这些书籍进行了大量的关于对象状态和状态序列化技术的讨论。
最后我写出了被我叫做CSLA的一个架构,意为基于组件的可扩展的逻辑架构。几年中,我收到了上百封使用过CSLA的人给我发来的电子邮件,这些人把CSLA作为他们的应用程序的基础架构,这些程序中既有很小的单用户程序,也有支撑他们核心业务的大型企业应用。
在.NET中,分布式对象的概念已经让位给了一个更好的想法——移动对象,就是说对象可以在一个N层环境中的计算机之间移动。在高级层面上来看,这与分布式对象是类似的,但是移动对象提供了一个在分布式环境中实现面向对象设计更强大的方法。
我还收到了相当多的电子邮件,说CSLA.NET不是很成功,这一点儿也不奇怪。要想有效地使用CSLA.NET,你必须精通面向对象和基于组件的设计,理解分布式对象的概念,并且拥有其他大量的技能。移动对象架构有很多好处,但不是很好理解。
设计CSLA.NET
.NET的一个特点就是它经常提供多种方法来解决相同的问题。一些方法比另外一些要好,但是不一定马上就能找到给定问题的最好方法。在写那些.NET 1.0的书的时候,我花了很长时间尝试着用不同的方法来实现分布式对象。尽管知道有多种方法能行得通,但是在最后我还是找到了最符合我最初目标的那种方法。
在我讨论那些目标之前,我想很有必要来谈谈另一个令我在写这本书的时候冥思苦想的问题。假设有很多的人使用了本书的上一个版本中的概念和代码,我想在任何可能的时候保留向后兼容的能力。同时,这本书的新版提供了一个好机会,来使得我们在应用.NET 2.0的新特性的同时,应用过去几年中通过使用.NET学到的东西。
应用学到的东西就是说要应用新的概念和代码,这需要修改已经存在的业务对象和用户界面代码。我是不接受弱向后兼容性的,然而发展这些概念来适应在面向对象及分布式计算领域的技术和我的观念这两方面的变化非常重要。
在可能的情况下,我会尽量地把对已经存在的代码的影响控制到最小,以便对于大多数应用程序来说,所需要的转换不会过于复杂。
我对架构和本书有一套详尽的目标。这些目标非常重要,因为它们对理解为什么我准备了许多种选择很关键,例如使用哪种.NET技术和如何使用它们。这些目标有:
支持完全的面向对象编程模型
允许开发人员无障碍地使用架构
媒体评论回到顶部↑
这是一本关于在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.
我倡导面向对象设计和面向对象程序设计已经很多年了,也擅长构建分布式应用程序。我写这本书的目的就是,将面向对象思想和分布式应用很好地结合成一个统一的整体。尽管达到该目的的方法有很多,但事实证明,我创建的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.








点击看大图





加载中...
