i was wondering why one would choose Com as his software development "technology"
my first though is machine/programming _language independence
what's yours ?
i was wondering why one would choose Com as his software development "technology"
my first though is machine/programming _language independence
what's yours ?
My first thought is - don't!!! If you can stay away from COM/DCOM.
Of course if you need to integrate with legacy apps you will have no choice, but even then use COM only to cross managed/unmanaged boundaries.
If legacy compatibility is not an issue - stay managed. .NET has everything COM can offer anf then some. And the complexity and stability of the .NET code is nothing to compare with the equivalent COM code.
I've been working with Visual Studio integration for some time. Originally it was all COM, but MS slowly converts various pieces of it to managed. The new Editor framework based on MEF reduces the amount of necessary code by orders of magnitude. And no messing with registry. Such a relief.
COM is the de facto standard for automation and IPC on windows (though .Net has begun to shift the focus), thus there are areas you simply don't have (or had) a choice:
Before the event of .Net nearly all automation of MS applications was through COM and quite some firms got on that train as well.
Also DCOM is, if you're willing to limit yourself to windows, a reliable and proven technology for distributed components.
As gf said, people use it for automation. Furthermore, large parts of Windows are only accessible as COM objects. DirectX is an example.
The main strength of COM is that it's a widely applicable interop technology.