mercredi 9 novembre 2011

La compilation en C# ne donne pas un programme !


J'en suis encore à l'introduction au C# (présenté par le site du zéro), et je suis surpris du principe utilisé par ce langage. En même temps je comprend mieux pourquoi quant on lance une application en C# sous Ubuntu on à besoin de Mono.

La compilation en C# ne donne pas un programme binaire, contrairement au Visual Basic ou au C, C++. Pourtant on n'a bien un "fichier.exe", cependant il n'est pas en binaire mais simplement transformé.

Avant le C#

On avait un programme compilé pour un système d'exploitation.



Avec le code C# 

Le code C# est en fait transformé dans un langage intermédiaire que l'on peut ensuite distribuer à tout le monde. Ce code, bien sûr, n'est pas exécutable lui-même, car l'ordinateur ne comprend que le binaire.


Donc, en théorie, il est possible d'utiliser n'importe quelle application compilée en langage intermédiaire à partir du moment où il y a une implémentation du CLR disponible.

Il existe une implémentation du CLR pour Linux, MAC, IOS, Android c'est Mono.



Cela veut dire que si votre programme utilise des fonctionnalités qui ne sont pas couvertes par le CLR (donc par Mono), car il faut le rappeler le C# à été inventé par Microsoft en 2002 , et bien votre programme ne fonctionnera pas. Si on utilise "MonoDev" il ne devrait cependant pas y avoir de problème ;-).

Source - siteduzero.com