COM的一个原因是,如果您在Borland C++构建器中开发了一个C++库,则无法在VB6中使用它.但你也不能在VC6中使用它(COM比这些产品更老了).所以COM是一个C类协议,用于应用程序和库之间的互操作性..NET允许托管应用程序之间的互操作性.如果要与C++互操作,请使用C++/CLI.但是如果你有一个希望使用.NET组件的传统COBOL应用程序,你会怎么做?将该组件公开为COM将是一种接近它的方法.暴露类似API的API是另一种方式.
自从80年代末以来COM一直存在以来(我认为)很多商业价值都建立在COM技术之上,这并不令人惊讶.它没有任何商业意义,并且将工作应用程序重写为.NET只是为了它的乐趣而且成本太高且风险太大.因此,必须维护遗留应用程序的公司自然会拥有大量基于COM的工具和应用程序.
这一切都取决于您的业务案例.你能不能只使用.NET平台我猜你不需要知道COM(虽然.NET由.NET平台使用,有时会出现错误泄漏).如果您正在使用由操作系统或其他库公开的COM库,则了解一些基本的COM规则是有意义的.
PS.我喜欢COM.我不喜欢的注册部分,我不喜欢DCOM,我认为最终的COM公寓混淆了超过它帮助开发者(它最初是为了帮助开发人员避免竞争条件和相关问题).但核心COM相当不错.一些争吵已经结束"是COM OO吗?" 但归结为我们为什么要使用OO?IMO给予封装.那么问题是:"COM是否提供了良好的封装?".答案是肯定的(IMO).
PS.最后我检查了Firefox使用了一个名为XPCOM的东西,看起来很像我的COM.
归档时间: |
|
查看次数: |
1205 次 |
最近记录: |