title: CORBA from .NET - (dis)recommended libraries?
body: <p>I am working on a .NET-based server component that talks to a set of destinations (equity options exchanges, to be specific) using a variety of destination-specific protocols. The next destination we plan to add uses CORBA, so I am researching .NET libraries that can speak CORBA.</p>
  
  <p>So far I have found three possibilities:</p>
  
  <ul>
  <li><a href="http://iiop-net.sourceforge.net/" rel="noreferrer">IIOP.NET</a> is an open-source project that seems to be mature and fairly active.</li>
  <li><a href="http://j-integra.intrinsyc.com/products/espresso/" rel="noreferrer">J-Integra Espresso</a> is one of Intrinsyc's suite of Microsoft &lt;-> Java interoperability tools.</li>
  <li><a href="http://www.borland.com/us/products/visibroker/index.html" rel="noreferrer">VisiBroker for .NET</a> (previously named 'Janeva') is a module of Borland's VisiBroker CORBA package.</li>
  </ul>
  
  <p>Does anyone have any experience with any of these, good or bad?</p>
  
  <p>Are there other options?</p>
  
  <p>I could use one of the C++-based CORBA libraries (<a href="http://omniorb.sourceforge.net/" rel="noreferrer">omniORB</a> and <a href="http://www.theaceorb.com/" rel="noreferrer">TAO</a> seem to be the top two, but there are others) via mixed native-managed C++/CLI code, but the data needs to get to and from the managed core of the server at some point, adding a performance cost for marshalling, and using native C++ libraries in a mixed-code scenario tends to be fairly painful.</p>
  
  <p>Update - we have started to use IIOP.NET, and it is looking pretty good so far. Performance for the most recent version (1.9 sp1) seems acceptable, and the API is reasonably easy to use. I will definitely look at <a href="http://www.ikvm.net/" rel="noreferrer">IKVM</a> as suggested by Todd Stout - that looks like a very interesting possibility if IIOP.NET doesn't pan out.</p>
  
  <p>Update #2 (July 2010) - we have been using IIOP.NET in production for a while, with good results. The IIOP.NET project isn't exactly what I would call active, but then again neither is CORBA, so there doesn't seem to be a big need for a lot more development.</p>