Quels sont les avantages et les limites de l’utilisation d’un projet mono pour exécuter du code c # sur Linux?

Si quelqu’un a la solution des avantages et des limitations de l’utilisation d’un projet mono pour exécuter C # Code sous Linux, dites-moi ce que vous en pensez …

Il y a un énorme avantage – ça marche. Vous pouvez utiliser C #, développer et exécuter Linux (et d’autres plates-formes, y compris Windows).

L’inconvénient est que les choses ne fonctionnent pas toujours de la même manière que dans l’implémentation de Microsoft .NET, et certaines fonctionnalités ne sont pas implémentées du tout, telles que WPF.

Avantages

  • Investissement – lorsque vous choisissez le bon logiciel, vous n’avez pas à payer pour les licences logicielles lors de l’exécution de Mono sous Linux (cela ne signifie pas que c’est gratuit – Linux n’est gratuit que si votre temps n’a aucune valeur).
  • Aucun verrou de fournisseur – vous avez plus de choix pour d’autres logiciels sur Linux (par exemple, des serveurs DB ou Web) par rapport aux solutions MS qui fonctionnent le mieux avec d’autres logiciels MS.
  • Bibliothèques mono spécifiques (par exemple Mono.Simd ou REPL).
  • Open source (vous, ou d’autres, pouvez corriger des bogues / fournir des correctifs / améliorer le code par vous-même).

Limites

  • Incompatibilité avec le framework MS.NET.
  • En général, vous passerez probablement plus de temps avec certaines choses (par exemple, gérer les incompatibilités ou apprendre l’administration de Linux).
  • Mono n’est pas à jour avec les nouvelles API et les nouvelles fonctionnalités lorsque la nouvelle version de .NET Framework est disponible.

J’ai développé quelques applications en C # et j’ai essayé de faire tourner quelques applications sous Linux via Mono. Faire en sorte que les applications de la console soient assez simples. La plupart du temps, aucun changement de code n’est nécessaire pour exécuter ces types d’application sous Mono. Cependant, les applications graphiques sont toujours plus compliquées. La première chose à savoir est que votre interface utilisateur ne se fondra pas dans le thème de l’utilisateur. L’application ressemblera toujours à une application Windows 98, en supposant que vous utilisez Microsoft System.Windows.Forms.

Si, toutefois, vous envisagez d’écrire et d’exécuter l’application uniquement sous Linux, vous pouvez utiliser Gtk # de Mono pour créer l’interface utilisateur. Cela s’intègre beaucoup mieux avec les postes de travail Linux que System.Windows.Forms. Cette page donne un aperçu des différents outils, de leurs avantages et de leurs inconvénients.

Si vous vous en tenez à System.Windows.Forms pour la boîte à outils GUI afin d’exécuter votre application à la fois sous Windows et Linux, gardez à l’esprit que même si Mono prend en charge C # 4.0, des fonctionnalités de 3.0 et plus ne sont pas implémentées ou ne fonctionnent pas bien sous Linux.