There are several Mono features that .NET does not do.
Mono is very modular. You can break it into small pieces and expand only those parts that you need. Don't want System.Xml? OK, it's all gone.
Mono is embeddable. You can place it inside your C / C ++ application so that users can script from a secure managed sandbox. The most famous example of this is mod_mono, which hosts Mono inside the Apache web server, and how, for example, ASP.NET is implemented in Mono. This feature goes well with the modulation mentioned above.
This has already been mentioned: static binding. Also goes well with modulation.
The compiler as a service is another. Anders Halesberg has been talking about this for a long time, and maybe he will be ready for C # 5.0. Well, Mono already has this, and in fact it has been for many years.
Miguel de Icaza, Mono Lead Developer also has an initiative that he calls "Embrace and Extend.NET" that extends the CLI in ways that cannot (currently) are possible with other CLI implementations (including .NET). So far, Embrace and Extend.NET have three functions.
Mono.Simd, which provides secure and controlled access to the SIMD instructions of the underlying CPU (for example, SSE on Intel or AltiVec on PowerPC). Used for games and graphics.
64 Bit-mass indexes that are allowed by the ECMA specification, but Mono is the only virtual machine that actually provides them. Used in a supercomputer.
And more recently, the sequel. This is the first time Mono goes beyond the scope of the specification: long array indexes work perfectly according to the specification, and Mono.Simd also works on every CLI compatible implementation (albeit very slow), but Mono.Tasklet needs special support from a VM that is not part of the CLI or .NET. This is used for the logic of the game and, for example, in Second Life.
JΓΆrg W Mittag Apr 16 '09 at 23:04 2009-04-16 23:04
source share