使用 C/C++学习 COM 会帮助我更好地理解 .NET 吗?

本文关键字:更好 NET 帮助 C++ 学习 COM 使用 | 更新日期: 2023-09-27 17:57:18

在学习.NET时,我经常会遇到来自COM世界或C/C++的东西(句柄,gdi,互操作,STA/MTA等,列表还在继续!)。

值得我花时间学习如何用 C 或 C++ 在 COM 中编程,从而一石二鸟吗?

这会加深我对使用 .NET 进行开发的了解吗?我厌倦了"这发生在魔术中"的感觉!

使用 C/C++学习 COM 会帮助我更好地理解 .NET 吗?

学习 COM

将帮助您更好地理解 .NET 的某些部分,但它们主要是处理 COM 互操作的部分。 除了在某些情况下,它对一般的 .NET 开发没有多大帮助。

话虽如此,如果您的主要目标是学习并专注于 .NET,我将专注于学习一些较新的 .NET 技术。 在WCF,WPF,Silverlight,WF,EF等之间 - 一个人不可能成为所有已经存在的.NET技术的真正专家,更不用说其他人了。 专注于您感兴趣的基于 .NET 的主要技术可能会更有效地利用您的时间。

如果你想尝试扩展你的知识,那么COM可能值得学习 - 但我个人可能建议学习一门新语言,尤其是使用与主要.NET语言截然不同的范式的语言。 例如,学习函数式编程语言可能会真正扩展您对编程的看法,并更好地利用您的时间。

与其深入研究这个,不如阅读Don Box关于.NET框架的大部头,以及为什么事情在.NET中的工作方式。 在这本书之后,所有的魔法都将被放弃(虽然已经过时了,但它仍然非常相关)。

我个人的看法...请记住,这只是我的意见:

我很高兴我首先学会了 .NET。 我并没有被迫考虑二进制兼容性和activeX之类的事情。 这些是我真正只需要在处理较旧的 COM 库时才需要的遗留概念。

我承认回去学习COM在某些方面很有用,因为您确实应该了解兼容性的工作原理。 不过,我的情况有点不同,因为我了解了带有 vb6 的 COM,这可能非常不同。

我会说先学好 .NET,但回过头来学习 MTA 和多线程与C++。 这似乎仍然是许多人犹豫不决的领域,说.NET更好。

补充最后一个想法,我与许多来自COM世界的遗留程序员一起工作。 他们被困在那个世界里,以至于它禁止他们继续前进。 如果我再看到像 clsOrder 这样的东西,我可能会吠叫。 帮自己一个忙,学习如何在 .NET 中实际编程。 不要只在 .NET 中编程 vb6/c/c++。 这是对时间的巨大浪费。

学习任何东西都将有助于你理解类似的概念,所以为什么不呢。

这不会有什么坏处,但如果你不太了解 C/C++,尤其是指针和内存分配,你可能希望在直接跳入与 COM 对象接口之前复习一下这些。

"

C/C++"向我表明,你绝对不知道,嗯,关于它的任何事情。如果您只想了解 .NET,我会跳过它,因为它们可能会附带相关文档,这些文档将从 .NET 端解释它的工作原理。但是,如果您想更普遍地了解 .NET 实现细节中涉及的各种内容,例如互操作中涉及的魔力,那么我肯定会选择C++。

我不会为com学习c ++/C,我会学习它,因为它是一种非常不同的看待如何构建问题和解决方案的方式。 任何高级语言都可以神奇地做很多事情,你离机器越近,这种情况就越少。