CrossNet is a cross platform .NET Runtime.
It parses .NET assemblies and generates unmanaged C++ code that can be compiled on any standard C++ compiler.
More than 95% of the .NET 2.0 features are actually "emulated" in C++. CrossNet does *not* produce managed C++, the generated code is pure C++ ANSI.
Even if that's only an emulation of .NET behavior, the performance and memory usages are usually in the same range as C++ / .NET.