【发布时间】:2009-05-14 05:12:46
【问题描述】:
复制
What is the difference between net components and com components
COM 和 .NET 之间的确切区别是什么? .NET 是 COM 的简单外衣还是完全的东西 不一样?
【问题讨论】:
What is the difference between net components and com components
COM 和 .NET 之间的确切区别是什么? .NET 是 COM 的简单外衣还是完全的东西 不一样?
【问题讨论】:
有很多不同,.NET 绝对不是 COM 的外衣。
一些主要区别是:
虽然 COM 和 .NET 都编译为 DLL 文件,但 .NET DLL(称为程序集)是使用 Common Language Runtime 运行的,这是一个负责某些事情的虚拟机,例如内存管理、线程、垃圾收集和代码运行时的安全性。
.NET 程序集不一定需要“注册”,而 COM DLL 需要在计算机的注册表中注册。
.NET 带有一个完整的对象框架,可以构建、使用或扩展这些对象来完成各种任务。该框架比旧的 Visual Studio 包附带的 COM 库要全面得多。
我敢肯定还有很多话要说...您可以几乎将 .NET 视为运行在 Windows 之上的额外操作系统层 - 它是如此广泛。 .NET Framework 的维基百科条目可能是开始阅读的好地方。
【讨论】:
完全不同...
.NET 在公共运行时之上提供了一整套语言(更不用说 JIT 编译和 MSIL)。
COM 确实提供了一种通过软件上方的层注册共享程序集和重用代码的方法。
【讨论】:
.NET 提供了一个虚拟机、一个扩展的代码库和一个类似 Java 的字节码(中间语言),您的程序可以编译成这些字节码。
COM 只是一种用于创建对象并允许它们相互交互的二进制互操作性标准。
.NET 支持 COM 通信以及许多其他互操作模型。这比 COM 本身要大得多。
【讨论】:
正如 Monty Python 所说,它是完全不同的东西。 .NET for one 允许您选择“注册”(GAC)或不(本地目录)。但没有一个确切的区别。
【讨论】:
.NET 作为 COM 之后的下一步被引入以克服 COM 问题。仅提及一些优点:
Microsoft 已将 COM 用于 90 年代的技术:OLE、ActiveX、DirectX 等。这些技术仍在使用 COM 开发。然而,新的现代技术正在使用 .NET:Windows Presentation Foundation (WPF)、Windows Communitation Foundation (WCF)、许多研究项目......
【讨论】: