65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 和 COM:完整的互操作性指南

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.92/5 (12投票s)

2003 年 5 月 25 日

4分钟阅读

viewsIcon

78022

《.NET 和 COM:完整的互操作性指南》书评

标题 .NET 和 COM:完整的互操作性指南
作者 Adam Nathan
出版社 Sams Publishing
出版日期 2002 年 1 月
ISBN 067232170x
价格 美元 59.99
页数 1578

“.NET Framework SDK 和 Visual Studio .NET 可以轻松地从基于 .NET 的代码(也称为托管代码)中使用旧的 COM 组件。该框架通过拦截抹去了非托管的 COM 世界和 .NET 托管世界之间的差异,为您做了很多工作。拦截发生在一段被称为运行时可调用包装器 (RCW) 的代码中,其作用是无缝集成 .NET 和 COM 世界,使它们能够和平共处。例如,COM 组件使用 HRESULT 数据类型作为特殊返回值来报告错误。您的托管(基于 .NET)应用程序通过异常报告错误,并且不知道 HRESULT 数据类型。RCW 将失败相关的 HRESULT 代码(除了 S_OK 成功代码和用户定义的 HRESULTs 之外的代码)转换为等效的 .NET 异常,提供了一个与 .NET 编程环境的其他部分一致的编程模型。当 COM 组件返回用户定义的 HRESULT 时,RCW 会将其映射到 System.Runtime.InteropServices.COMException,并将 HRESULT 值存储在异常的 ErrorCode 属性中——再次为 .NET 应用程序提供了一致的编程模型,使其易于检测和响应错误条件。”

这仅仅是 .NET 和 COM 互操作故事中非常小的一部分——本书以引人入胜的方式详细介绍了其余部分,为可能看似枯燥的主题增添了一些活力。本书的吸引人之处包括贯穿全书的“深入探讨”、“提示”和其他笔记,它们为当前的讨论提供了宝贵的见解。

.NET 和 COM 重达 1578 页,内容约 1245 页,附录 250 页,综合索引占 81 页(所有页数均为近似值,因为书中在章节之间包含分隔页)。本书内容充实,从第一页开始就提供了实用信息、指导和详细信息。然而,信息的密度如此之大,很容易错过重要的信息,例如作者关于如何对 .NET 组件(程序集)进行版本控制的建议,以便 COM 客户端在非托管环境中能够轻松使用它们。

本书分为九个部分:

  • 背景
  • 在 .NET 应用程序中使用 COM 组件
  • 在 COM 应用程序中使用 .NET 组件
  • 为 COM 客户端设计出色的 .NET 组件
  • 为 .NET 客户端设计出色的 COM 组件
  • 平台调用服务
  • 高级主题 (Advanced Topics)
  • 综合示例
  • 附录

每个部分都建立在前一部分的基础上,但并非所有读者都会同意这种组织方式。我个人更希望将“设计”部分放在“使用”部分之前,因为良好的设计对于易于使用至关重要。尽管大多数读者可能会按本书的顺序阅读,但本书的组织结构使得在不迷路的情况下轻松地在感兴趣的部分之间跳转。

尽管这是一本很棒的书,但也有一些缺点:

本书对服务组件(也称为 COM+ 组件)的介绍不到 10 页。虽然 COM+ 听起来似乎只为 COM 组件提供服务,但它在 .NET 应用程序的托管世界中确实起着重要作用。事实上,COM+ 对于 .NET 至关重要,因为它在名为 System.EnterpriseServices 的专用命名空间中提供了一整套类和属性。COM+ 提供的服务扩展了 .NET 应用程序的能力,超越了基本 .NET 所提供的能力。

第二个缺点在于,一些重要信息分散在全书各处,而不是集中在一个地方。例如,当您创建一个将由 COM 客户端使用的 .NET 组件时,您可以选择使用三个属性中的一个来公开 .NET 组件的接口给 COM。第一次提到此功能是在第三章的第 397 页,如果您阅读到“FAQ”框的结尾,会看到一个指向第 12 章的引用,其中第 556 页出现了更多关于此主题的信息。有趣的是,其中一个最关键的点出现在两个“注意”提示中的一个,这使得很难注意到页面上有非常重要的内容。此外,一些更多信息,连同第 12 章的一些文本,在后面的附录 A(第 1257 页)中出现,并回溯到第 12 章。所有这些引用和呈现方式都稀释了信息的重要性,并有效地将其隐藏起来,不让新手读者(那些刚接触 .NET、COM 或两者都接触不多的读者)看到。

尽管存在这些小缺点,但对于有一些 COM 经验的、中级的 .NET 开发人员来说,这本书是一本很棒的书。这本书的范围使其对于在 COM 中心和 .NET 中心环境中工作的开发人员都很有用。

评分

整体价值 5
准确性 5
深度 5
可读性 4
Organization 4
等级 A-

计算 **等级** 如下:将所有数值等级相加,除以 25,乘以 100,然后根据以下范围分配字母等级:

A+:100 A :95 A-:90 B+:85 B:75 B-:70 C+:65 C :60 C-:50 D+:40 D :30 D-:25 F :0
© . All rights reserved.