1. In a computing environment, the computing environment comprising host objects wherein the host objects may be one of a COM object or a managed code object, the computing environment further comprising add-in objects implemented in managed code, wherein add-in object can provide additional functionality to the host objects, a method of communicating between the add-in objects and the host objects, the method comprising: determining that a host object to be communicated with is a COM object of a COM host; as a result of determining that a host object to be communicated with is a COM object, routing incoming and outgoing communications from a managed code add-in through an interop proxy, wherein the interop proxy is implemented in managed code with the managed code add-in, and wherein the interop proxy is configured to translate managed code invocations to COM code invocation, and to translate COM code invocations to managed code invocations, without first translating to a managed code contract protocol.