web-dev-qa-db-fra.com

La connaissance du C # est-elle utile dans un système Linux?

Je connais le C # et j'aime basculer entre les systèmes et utiliser Linux. Puis-je utiliser C # pour créer des applications qui fonctionneront de manière native sous Linux? Que dois-je faire pour utiliser mes connaissances de C # sur un système Linux?

Notez que je suis spécialisé dans Unity3D, mais je veux toujours créer des applications Linux en C #.

40
Garrom

Très probablement, vous tomberez sur http://www.mono-project.com/

Comme le dit la page About Mono :

Mono, la plate-forme de développement open source basée sur le .NET Framework, permet aux développeurs de créer des applications multiplates-formes avec une productivité améliorée. La mise en œuvre .NET de Mono est basée sur les normes ECMA pour C # et le Common Language Infrastructure .

Les plates-formes prises en charge incluent Linux.

54
Finn

Oui, vous pouvez développer un logiciel sur Ubuntu, qui s'exécutera lui-même sur Ubuntu, en C #. Les deux Mono et . NET Core support GNU/Linux systèmes comme Ubuntu. (Vous pouvez les utiliser sur d'autres distributions , comme Debian, Raspbian, Fedora, CentOS, Arch, Gentoo, etc.). Le moteur de jeu Unity3D prend également en charge Ubuntu, comme vous le savez probablement. Unity3D incorpore Mono .

Un certain nombre de paquets pour Ubuntu, installables à l'aide du gestionnaire de paquets d'Ubuntu à partir de sources de logiciels officiellement prises en charge par la communauté, sont écrits en C # et utilisent Mono. Cela inclut le lecteur de musique Banshee , l'application de prise de notes Tomboy , l'éditeur de graphiques raster Pinta , et le gestionnaire de mots de passe KeePass = (depuis la version 2).

La plupart des éditeurs de texte, tels que Gedit, Vim et Emacs, ont une coloration syntaxique pour C #. MonoDevelop et Visual Studio Code sont deux environnements de développement intégrés populaires fonctionnant sous Ubuntu et prenant en charge le développement C #.

68
Eliah Kagan
  1. Vous pouvez maintenant développer des applications serveur sous Linux en utilisant C # ( framework .NET ), comme vous pouvez utiliser Java ou Python. Par applications serveur, j'entends principalement les applications Web et les applications de service Web (REST). Cela correspond parfaitement aux conteneurs Linux ( Docker /K8s) et aux clouds.
  2. Vous pouvez développer des applications de bureau avec C # à l'aide du toolkit Mono Framework (implémentation .NET) et GTK # (GtkSharp) (un wrapper de GTK). Il y a beaucoup de projets développés dessus. Ce framework a rencontré une certaine résistance de la part de la communauté Linux par le passé. Certaines distributions et utilisateurs ne voulaient pas d'applications Mono.
  3. Vous pouvez développer des jeux avec Unity Engine en utilisant C # sous Linux. Unity Editor est encore expérimental sur Linux.

Donc oui. Les connaissances sur C # peuvent être très utiles sur les systèmes Linux actuels.

17
gorlok

Vous pouvez désormais même créer des applications multi-plateformes frontales basées sur le XAML (Linux, Mac, Windows, Android, iOS, UWP) utilisant .Net Core et un nouveau projet appelé Avalonia. Avalonia est en version bêta, mais fonctionne plutôt bien maintenant. Il est similaire à WPF, mais avec certaines améliorations de style comme CSS.

Je crois que sur les cibles Linux Avalonia, Gtk est cible, mais ils veulent passer à autre chose. C'est mentionné dans cette vidéo, mais personnellement, je ne comprenais pas ce qu'il avait dit: https://www.youtube.com/watch?v=WESJUJWBLJ

1
Chris Bordeman