What is/will be the viability of COM on current and future Windows OSs?

Hello, I thought I'd ask the industry experts because the answer is probably a combination of what Microsoft has said and industry experience in reading the tea leaves.

We have a piece of software that has been useful for over 10 years in the form of a COM object.  We have to make a change to it, and this *could* be an opportunity to change the technology that it uses.  However, if it (a) works fine on Windows 7 and Windows 8 (we haven't actually tested it there) and (b) will probably be fully supported on the next couple of windows OSs, then there is probably *no* reason to change it and we can make the mod inexpensively.

So what do you guys think?   COM is no longer being actively developed by MS, obviously, but is it currently fully supported, and is there enough stuff out there using it so that MS will support it in the next couple of OSs?

Thanks for any advice/insight.
Who is Participating?
Jacques Bourgeois (James Burger)Connect With a Mentor PresidentCommented:
I also expect COM to still be available for a long time, but there might be limitations down the road.

Backward compatibility is a very nice thing for the user, but it is an heavy load on the evolution of an operating system. Eventually, Microsoft will have to make changes to the core of Windows. I very well see something like Windows.NET one of these days. They had to drop a lot of good ideas for Vista (such as WinFS) because of compatibility issues. Their legs are probably shaking in expectation of the day where they will be able to revive these ideas.

Just as MS-DOS moved into Windows through the command prompt, I suspect that the current Windows OS will eventually evolve into something like Windows.NET. This would make a lot of older applications unusable, so they would probably provide some kind of virtual version of the "old Windows". They already did that when Windows Vista came on the market, by providing a copy of Windows XP running in a Virtual PC window for programs that were incompatible with Vista.

If you are still using the same applications that you use today when that happens, you will probably have to move the application and the COM library with it to the virtual compatibility OS. But, if you expect to use that library with .NET applications running in the new OS, one has to wonder if you will be able to cross the bridge between the New and the Old OS. And if so, for how long. The Virtual Windows XP that was provided with Vista and Windows 7 is no longer available on Windows 8.

Rewriting your COM library in .NET is basically a good thing. .NET is far superior to COM. And while a COM library would run only in the old OS, a .NET library runs not and would also run, even better, in Windows .NET.

But if you need to use the new features of the library in your old applications, calling a .NET library from a COM application can be a pain. COM was designed before .NET and knows nothing about it. The reverse is also true, but a lot less, because .NET has been designed to work as well as possible with COM... as long as your COM code is not a mine field of Variant variables.
QlemoConnect With a Mentor Batchelor and DeveloperCommented:
I expect COM to be available for the next decade. There are so many scripts and apps relying on it  - e.g. Office Automation -  that it will have to stay for sure.
RonMexicoAuthor Commented:
Thanks for the very thoughtful answer!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.