I'm new to Mono and just started recently. Is mono program are compiled from C# to native code to be able to run on several OS?
and also, I saw a screencast on MonoTouch, which tells me that the monotouch (particularly) compile everything down to Native for C# to be able to run on Iphone.
Im quite confuse.
The Mono C# compiler is considered feature complete for C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0 and C# 6.0 (ECMA) and it has partial support for C# 7. Historically, various version of same compiler existed.
Mono by default compiles to an intermediate bytecode, which is then run on a virtual machine. This byte-code is portable but is not native machine code.
So, after all these years of its evolution, mono is capable of running many of original . NET Framework application types on operating systems other than Windows. This includes GUI-enabled desktop applications, which can now be made compatible with virtually any modern desktop operating system, including Solaris.
Visual Studio - Windows only Visual Studio is the compiler and IDE created by Microsoft for Windows computers. Visual Studio has several versions. The professional version can compile C# code, as well as a number of other languages.
Mono by default compiles to an intermediate bytecode, which is then run on a virtual machine. This byte-code is portable but is not native machine code.
Mono does have an AOT compiler that will produce native images for when bytecode is not an option.
Pretty much all .NET platforms, both Microsoft (including desktop, compact framework, and microframework) and third-party (such as mono) compile everything first to a common intermediate language which is portable, then just-in-time compile during execution to native code. Some have no JIT and simply interpret the IL directly.
Native code is obviously non-portable.
Does that help?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With