Think about the situation in which we are able to run c# code on Mac and Linux Machines..
Its real now.. We can convert our software developed in C# to run on Linux and Mac Machines..
Me started it too.. and the MONO can help us in doing that.. :)
Mono and .NET compile source code into 'assemblies'. Assemblies, which are similar to collections of Java .class files, contain language-independent, platform-independent bytecode called CIL (Common Intermediate Language). Because assemblies are language independent, it doesn't matter what language was used to create them. Assemblies made with C# can mix with assemblies created with VB.NET, Java (using IKVM), or any language that someone has written a CIL compiler for.
But, being platform independent means, of course, that assemblies need to be compiled again into native code before they can run on any particular machine. It's important to distinguish the two compilations involved in Mono applications: from source code to byte code, and from byte code to native machine code. The first compilation is performed by the developer. The second compilation is generally performed just when the program begins executing, on the very computer that will run the application, and for this reason it's called Just-In-Time (JIT) compilation. This second compilation and the execution of the application is performed by a Common Language Runtime (CLR).
Mono also supports Ahead-Of-Time (AOT) compilation. This is a mode that pre-compiled the code, and it is useful to reduce application startup time (by eliminating the JIT startup time) and increasing the code that can be shared across multiple applications.
On Windows and Linux, as well as other operating systems, assemblies are stored in files with the .dll or .exe extension. The only difference between a .dll assembly and a .exe assembly is that a .exe assembly contains a starting point for an application (a Main method), whereas .dll assemblies only are class libraries
When I was going my BTech course some of my friends have taken about the subject mono. It was highly experimental at that time. Java was the one that supports such a wonderful thing, and Microsoft recognised the power of GNU/Linux users and Java and wanted to build applications that supports GNU/Linux else they will be loosing from the market.
ReplyDeleteMicrosoft partnered with suse Linux and have also made some posts that they want to improve the GNU/Linux kernel and the GNU/Linux community whole heartedly rejected the proposal. They wanted to run their applications tweaking the GNU/Linux kernel :) . But we the community know how to improve.
And now Mono may be stable and you guys can develop applications in it, but I am not sure how many GNU/Linux users will go for Microsoft products ( i mean properitery code base ) :) . Good luck dude.
Thanks... this is not a fight regarding OS.. This concept is good in the fact that users running different OS can handshake with the same Software developed in .NET FrameWork..
ReplyDeleteThanks Hari...
ReplyDelete