web-dev-qa-db-fra.com

Un programme C # peut-il être multi-plateforme?

Je suis un débutant en programmation et je songe à utiliser C # pour écrire un programme TRÈS simple qui permet de modifier simplement un fichier texte. 

  • Cela fonctionnera-t-il sur Mac et Linux? Qu'est-ce qui va marcher?
  • Je veux savoir ce qui rend un programme multi-plateforme? 
20
mowwwalker

Oui, C # est multi-plateforme grâce au projet Mono . Mais gardez à l'esprit qu'il s'agit d'une implémentation tierce, et ne provient pas de Microsoft. Ainsi, toutes les fonctionnalités de bleeding-Edge de la dernière version du langage d'exécution .NET ou C # peuvent ne pas être implémentées.

17
Justin Ethier

Il est difficile de répondre à quelque chose comme ça à quelqu'un, qui dit qu'il commence juste à programmer, mais je vais essayer de vous donner un aperçu (quelque peu simplifié): C # est un langage qui est compilé dans un programme exécutable. Le langage lui-même est portable entre les plates-formes, tant que vous avez un compilateur sur chaque plate-forme cible. Sous Windows, vous avez l'implémentation .Net "par défaut" et sous Linux/Mac, vous avez Mono. Pour faire quelque chose d’utile - comme éditer des fichiers - vous devez utiliser certaines bibliothèques. Il existe une bibliothèque standard disponible sur chaque plate-forme. Tant que vous n'utilisez que cette fonctionnalité, votre programme sera multi-plateforme. Évidemment, ce ne sera pas une plate-forme croisée, dès que vous utiliserez une bibliothèque spécifique à une certaine plate-forme. La modification de fichiers fait partie de la bibliothèque standard. Vous pouvez donc implémenter de tels outils simples de manière transversale. Lorsque vous choisissez un livre, vous devez rechercher des livres qui se concentrent sur le langage "brut" et non sur Visual Studio ou d'autres outils spécifiques.

7
Achim

Une nouvelle version open source de Microsoft appelée CoreCLR est multi-plateforme et peut maintenant être utilisée à cette fin.

Le référentiel CoreCLR contient l'implémentation d'exécution complète pour .NET Core. Il comprend RyuJIT, le .NET GC, l’interopérabilité native et de nombreux autres composants. Il est multi-plateforme, avec plusieurs ports de système d'exploitation et de processeur en cours . - du repo CoreCLR

5
tylerlindell

Maintenant, C # est entièrement multi-plateforme et possède une variété de frameworks et de temps d'exécution.

Java est un langage + framework. Mais le C # n'est qu'un langage moderne. Les fonctionnalités du langage C # sont très puissantes et faciles à apprendre. Pas de confusion entre cadre et langage.

C # peut être utilisé dans les frameworks suivants

  • Noyau .Net (la plate-forme multi prend en charge Linux, Windows et Mac), principalement utilisé pour développer des services reposants, des applications Web et des systèmes d'entreprise
  • .Net Framework (Windows uniquement), identique au noyau .net, mais comporte davantage de fonctionnalités Windows uniquement
  • Unity - Un des moteurs de jeu les plus utilisés pour développer des jeux pour PC, Sony, Xbox, etc. 
  • Xamarin - Développer des applications mobiles natives (Android, IOS, Mac)
  • Norme .Net - Créer une bibliothèque en utilisation .net standard dans toutes les applications susmentionnées

Java - Code une fois, expédier le même fichier à toutes les plateformes

C++, C, Rust - Code une fois, compilez pour une plateforme spécifique

C # - C'est juste un langage, choisissez votre cadre en fonction des besoins.

La plupart des applications populaires telles que Chrome, Firefox utilise C++, Rust et sont compilées pour chaque plate-forme. Mais ils partagent toujours la majorité du code entre ces plates-formes. Certains jeux utilisent C++ pour partager le code entre IOS et Android.

Pour les nouveaux développeurs, il est bon de commencer par NodeJS et C #. Les deux sont faciles et peuvent faire n'importe quel type d'applications.

3
CreativeManix

Je ne recommanderais pas c # comme premier choix pour le codage multiplateforme. Je recommanderais python à la place, il est très facile à exécuter même en script et fonctionne parfaitement sur toutes les plateformes. Si vous insistez pour que c # soit prêt à traiter le même problème que celui expliqué par Justin Ethier. En revanche, Python est le même pour toutes les plateformes, il est ultra puissant et rapide et a même des wrappers prêts à se connecter à d’autres langues. 

3
Zloy Smiertniy

Cet article sur le projet Mono, le wiki résume très bien la rédaction d’applications portables en C #.

2
cdhowie

Si vous êtes un débutant et n’insistez pas sur C #, essayez Java, ce n’est pas loin de la syntaxe C #

Java -jar myprogram.jar

est identique pour Mac/Linux/Win.

1
Bechyňák Petr

C # est multiplateforme et vous pouvez exécuter votre programme sous Windows/Linux et Mac. Pour Linux, cependant, vous devez l'exécuter using mono

1
Icarus