.NET and COM (ActiveX) objects perspective

activexcomnet

We are using a software library from a major US manufacturer. For years the library had mainly two interfaces, a bunch of C API DLLs and a collection of ActiveX controls which encapsulate the DLL functionality. The ActiveX interface worked pretty well back in the old days of Visual Basic 6. Then .NET appeared with it's COM Interop compatibility interface for the now old ActiveX technology. This had a few pitfalls like dynamic objects never removed (Link) or problems when using multi-threaded applications (cross apartment calls etc.).

Now the manufacturer decided to discontinue the ActiveX interface because "of the growing migration from COM (i.e., ActiveX control) to .NET technology within the Windows®
development community". Can anyone tell me more about that? Are there plans from Microsoft to drop the COM Interop interface in future .NET releases or are there other huge current and future issues I haven't thought about? Or is this more a matter of taste like buying a new TV because it looks better?

Also I'm wondering if there is some kind of ActiveX RAD replacement where from the user side I drag and drop a control to my form, set all parameters graphically and are almost done with that.

Best Answer

Win32 is still heavily based on decisions made in the DOS days, for backward competability. After investing so much in COM, Microsoft will probably keep that spirit supporting COM interop until .NET dies. Having that said, they will just maintain what they have, without any further development.

The ActiveX vendor, OTOH, doesn't have that kind of commitment (or at least they don't feel they do). So regardless of Microsoft's support, they can just drop the ActiveX interface if they like. And they are definitively right saying people hardly ever use COM anymore.