完全不同的...
.NET提供了一个共同运行时的整套语言(更不用说JIT编译和MSIL了)。
COM真正提供了一种通过软件上方的层次来注册共享程序集和重复使用代码的方法。
.NET 提供了一个虚拟机、一个广泛的代码库和类似 Java 的字节码(中间语言),可以将您的程序编译成其中的字节码。
COM 只是一个用于创建对象并允许它们相互交互的二进制互操作性标准。
.NET 支持 COM 通信,以及许多其他互操作模型。它比 COM 本身要大得多。
.NET被引入作为COM之后的下一步,以克服COM问题。只是提一些优点:
微软自90年代以来一直在使用COM技术:OLE、ActiveX、DirectX等。这些技术仍然在使用COM进行开发。然而,新的现代技术正在使用.NET:Windows Presentation Foundation(WPF)、Windows Communication Foundation(WCF)、大量研究项目等。