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.
-
L'implémentation open source de .NET pour Linux s'appelle Mono .
-
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.
-
Il prend même en charge InteropServices. Il est possible d'utiliser DllImport sur la bibliothèque Linux (!), comme
libc.so
par exemple. -
Mono peut prendre en charge Android et iOS (ils sont basés sur Linux, n'est-ce pas ?)
-
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,