well .net provides a *lot* of good stuff that you lose if you go fully native. also IL jit's to native code when it runs.  so a C# program on windows is really running native code, just that the runtime can pick the native code to use based on things like what cpu it's running on.