GNU/Linux >> Tutoriels Linux >  >> Linux

Comment écrire des programmes en C# .NET, pour les exécuter sous Linux/Wine/Mono ?

Avez-vous entendu parler de Mono.NET sur http://www.mono-project.com ?

Il vous permet d'écrire des applications .NET pour Linux avec des différences mineures par rapport à l'implémentation Microsoft. Je ne pense pas que Wine puisse gérer les composants .NET.

Il suffit de lire la documentation avant et c'est parti.

PS :Cela vous donne également la liste de compatibilité entre mono et .NET. http://www.mono-project.com/Compatibility et MoMA (analyseur de migration mono) est un outil qui analysera n'importe quelle application .NET déjà créée pour voir si elle est compatible avec un déploiement sur Linux.


Dans cet article, j'ai raccourci et combiné toutes les informations que j'ai apprises des autres dans ce fil.

  1. L'implémentation open source de .NET pour Linux s'appelle Mono .

  2. La compatibilité est bien documentée (voir les liens ci-dessous). Mono prend en charge LINQ, le threading et quelques autres fonctionnalités compliquées.

  3. Il prend même en charge InteropServices. Il est possible d'utiliser DllImport sur la bibliothèque Linux (!), comme libc.so par exemple.

  4. Mono peut prendre en charge Android et iOS (ils sont basés sur Linux, n'est-ce pas ?)

  5. Il existe un outil d'analyse de compatibilité Mono appelé MoMA (Mono Migration Analyzer)

L'outil Mono Migration Analyzer (MoMA) vous aide à identifier les problèmes que vous pouvez rencontrer lors du portage de votre application .Net vers Mono. Il aide à identifier les appels spécifiques à la plate-forme (P/Invoke) et les zones qui ne sont pas encore prises en charge par le projet Mono.

Liens utiles :

Mono - page d'accueil

Mono - page avec documentation

Mono - page de compatibilité

MoMA - Page d'analyse de la migration mono


Nous avons quelques applications .net qui s'exécutent sous Windows ou Linux avec Mono.

Vous pouvez développer dans VisualStudio si vous le souhaitez, il n'est pas nécessaire d'utiliser l'environnement de développement Mono. Seules les bibliothèques mono d'exécution sont nécessaires pour exécuter des applications .net sous Linux.

Nous utilisons la cible net 2.0 pour compiler ces applications dans VisualStudio, car mono est presque 100 % compatible avec .net 2.0. Mono implémente également les API des versions ultérieures de .net, mais pas toutes et pas aussi complètes. Si vous utilisez des fonctionnalités de versions plus récentes que 2.0, vous devez vérifier si elles sont prises en charge ou utiliser l'outil d'analyse de compatibilité Mono. Vous pouvez également utiliser Mono develop au lieu de Visual Studio, mon prédécesseur le faisait; le résultat est à peu près le même et je préfère utiliser Visual Studio à la place.

Nous n'avons trouvé aucun problème majeur et les applications sont relativement complexes, fortement multithread, E/S asynchrones, WinForms, sockets, ports série, etc.

Certaines applications utilisaient des bibliothèques .net qui ne sont pas disponibles dans MS .net, mais toutes peuvent également être installées sur Windows afin qu'il n'y ait aucun problème pour exécuter ces applications sous Windows.

J'espère que ça aide,


Linux
  1. Comment déboguer des programmes C sous Linux à l'aide de gdb

  2. Comment installer Wine et exécuter des applications Windows sous Linux

  3. Linux – En quoi Mono est-il magique ?

  4. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  5. Comment écrire un démon Linux avec .Net Core

Comment exécuter des jeux et des programmes MS-DOS sous Linux

Comment exécuter tous les scripts dans un répertoire sous Linux

Comment installer et exécuter SketchUp Make 2017 sous Linux - Guide

Comment exécuter des programmes C/C++ sous Linux [Terminal &Eclipse]

Comment exécuter xCloud sur Linux (également sur SteamOS) ?

Comment écrire et exécuter un programme C sous Linux