none
COM/COM+ or WCF RRS feed

  • Question

  • (I have posted this question already in the "Windows Desktop Development for Accessibility and Automation" forum, but no reaction so far, so I decided to repost it here)

    We are developing a desktop application for Windows using C#. The application does some heavy calculation and drives specialized hardware. Our application should expose some functionality that third party desktop applications can use out-of-process (i.e. host - client), which includes accessing data that lives in our application, or commanding our application to perform some actions. One of the reasons that we require this capability is to allow automation from third-party applications.

    I have been looking into some possibilities to accomplish what we want but this topic is completely new for me so I thought the best would be to ask for advice to people with more experience. So far I have looked into COM/COM+ and Windows Communication Foundation (WCF). Both seem to offer the means to achieve what we need, but:

    • COM/COM+ : I know COM have been around for long, and most of the documentation I find is from a few years ago. I have nothing against that, I just wonder whether this is still the recommended way to go.
    • Windows Communication Foundation (WCF): I get the impression that WCF is used more in the context of web services and I have seen some concerns about performance when compared to COM (https://social.msdn.microsoft.com/Forums/vstudio/en-US/adb79021-89b8-47ab-a02d-33b2e777cb73/wcfcom-performance-comparison?forum=wcf)

    For the record, I have also look into .Net Remoting, but it is not the recommended approach for new developments (https://msdn.microsoft.com/en-us/library/kwdt6w2k(v=vs.100).aspx)

    From what I have read, some years ago the solution to this would have been to make our application a COM server. I don't know whether this is still the way to go, or the prefered way nowdays is to use WCF.

    What would be your advice on this matter? Is there another approach?

    Thanks in advance!

    Friday, August 19, 2016 7:16 AM

Answers

  • COM/COM+ : I know COM have been around for long, and most of the documentation I find is from a few years ago. I have nothing against that, I just wonder whether this is still the recommended way to go.

    COM Component Object Model is one software development platform, yesteryear technology, that basically stopped at the VS 6 development platform at the end of the 1990(s). Is COM still being used? Yes it's still being used in legacy based solutions.

    .NET is the replacement for COM plain and simple, and it is the current technology used in current software development solutions for the last 14 some years on the Windows platform. Should you try to develop a modern solution running on the Windows platform using COM? Well, you would have to go back to a COM based software development platform like VS 6, that MS doesn't even support anymore. It's your show and you do what you want to do, but should you go in that direction, backwards, that's your choice.

    Windows Communication Foundation (WCF): I get the impression that WCF is used more in the context of web services and I have seen some concerns about performance when compared to COM

    No, you would be wrong that WCF is Web services only, which is just one aspect of the SOA solution called WCF.

    http://www.codeproject.com/Articles/515253/Service-Oriented-Architecture-and-WCF

    For the record, I have also look into .Net Remoting, but it is not the recommended approach for new developments

    And neither is COM recommended for new software development.  WCF is the replacement for the legacy .NET Remoting technology.

    From what I have read, some years ago the solution to this would have been to make our application a COM server. I don't know whether this is still the way to go, or the prefered way nowdays is to use WCF.

    COM is yesteryear technology, .NET is COM's replacement and .NET uses WCF, a SOA solution, that is used in a varitity ways other than Web services.

    Saturday, August 20, 2016 3:24 PM