Inter-language object sharing with the common language runtime: infrastructure for MS.NET