尽管我已经做了 3-4 年的专业 .NET 程序员,但我从未直接使用过 COM;我试图了解 COM 到底是什么,做什么。查看 [COM] 的 SO 标签 wiki,它提到:“组件对象模型 (COM) 是来自 Microsoft 的组件技术,具有远程处理[...]”。(强调我的。)
在这种情况下,“远程处理”是什么意思?
尽管我已经做了 3-4 年的专业 .NET 程序员,但我从未直接使用过 COM;我试图了解 COM 到底是什么,做什么。查看 [COM] 的 SO 标签 wiki,它提到:“组件对象模型 (COM) 是来自 Microsoft 的组件技术,具有远程处理[...]”。(强调我的。)
在这种情况下,“远程处理”是什么意思?
在这种情况下,远程处理是指进程间通信。
.NET Remoting 允许应用程序使对象(称为远程对象)跨远程边界可用,其中包括不同的应用程序域、进程甚至通过网络连接的不同计算机。
在 COM 上下文中进行远程处理意味着“能够引用另一个范围内的对象”,其中该范围可能位于同一进程中的另一个单元中,或者位于同一机器甚至不同机器上的另一个进程中。COM 单元是一个运行上下文,它的配置定义了其他 COM 对象在单元内调用 COM 对象的方式。
在 .NET 中,远程处理意味着“与另一个位置的对象对话的能力”,它本身就是一个完整的子系统,用于跨进程和机器边界进行调用。
.NET 有 AppDomains 的概念,其意图类似于 COM 公寓。大多数在 .NET 上编写的应用程序不会以与 COM 所需的相同感知程度显式管理多个 AppDomain。