Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Component vendors in general will favor a COM interface since that makes their product usable in a lot more runtime environments. Including from languages like C++, Delphi or any scripting language. And C#, the .NET framework has very good support for COM interop and it will <em>look</em> like a native C# interface. Make sure that you are not already using COM and just don't know it. You can get a hint from the deployment instructions, a COM component in general either requires a manifest or an installer.</p> <p>A secondary consideration is that COM is often the advertized interface on products that have been around a long time, 10 or more years. Which is likely for a generic "grid solver" type of product. With the product stable with no new bells and whistles added for a decade. This is something you want to watch out for, you typically will have trouble getting support for such products since the vendor doesn't have programmers working on the product anymore. Having access to good support is always important when you replace a core library that your product depends on.</p> <p>And support is especially important when you have perf problems. There just isn't much you can do yourself to solve them, you really want to be able to work with the vendor to get them resolved.</p> <p>COM is certainly no magic solution to a perf problem, if the source is api layer overhead. Which <em>might</em> be the case if the solver is a separate process, such interop is expensive. Something you can easily see in Taskmgr.exe, Processes tab, you'll see another EXE pop up when you run your app. Regardless, COM inevitably includes a thunk to go from managed to unmanaged code. It is in general quite fast but if the api calls are very fine-grained then it can add up.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload