Bonjour,
Mono a l'avantage de pouvoir faire tourner des applis C# sous Linux. Mais sinon, a t'il d'autres avantages par rapport à .NET ? Quels sont ses inconvénients d'après vous ?
Merci pour vos commentaires.
Meilleures salutations.
K.
Bonjour,
Mono a l'avantage de pouvoir faire tourner des applis C# sous Linux. Mais sinon, a t'il d'autres avantages par rapport à .NET ? Quels sont ses inconvénients d'après vous ?
Merci pour vos commentaires.
Meilleures salutations.
K.
Mono est l'implémentation du .Net Framework sous Linux, rien de plus à ma connaissance.
Ok. Donc, le mieux reste de développer avec Mono... J'y cours de ce pas...;-)
Meilleures salutations.
K.
bah non, pas forcément. Tout n'est pas porté sous Mono actuellement donc tu ne peux pas simplement t'arrêter au fait de prendre Mono. Dans l'idéal, ca te permet de viser les deux plateformes mais tu risques d'être géné sur plein de choses.
Tu garde Mono si tu développe sous Linux
Tu garde le framework .Net si tu développe sous Windows
Mono n'implémenta pas (encore) tout le framework. De plus, sauf erreur de ma part, c'est le framework 2.0 qui est implémenté, pour le 3.5 et le futur 4.0 il faudra attendre encore un peu de temps, d'autant plus que tout n'est pas transposable au monde Linux.
Je vois. Mais quid du déploiement ? Car sauf erreur de ma part, si on imagine que je souhaite déployer mon service web sur beaucoup de serveurs, ça devient intéressant de le déployer sur Linux+Apache plutôt que Windows+IIS non ? Ou alors, il existe une alternative intéressante ?
Merci pour votre aide en tout cas.
K.
Le premier objectif de Mono, réalisé il y a un an, était d'implémenter tout ce qui date du .NET 2.0, des génériques à ASP.NET en passant par ADO.NET et les Winforms, pour assurer une compatibilité correcte des applications écrites pour Windows.
Une fois arrivé à cela (Mono 2.0), il a été décidé officieusement que le projet n'allait plus porter les API de Microsoft liées à Windows (comme les WPF, WF, ...) en priorité, mais allait prendre son chemin à part, tout en gardant une implémentation exacte de .NET pour tout ce qui est est standardisé et/ou non lié à Windows, et donc portable (LINQ est presque implanté (le dernier obstacle, moins prioritaire puisque lié à la plateforme, est de refaire le driver pour MS SQL Server), de même que les dynamiques de .NET 4.0, et le compilateur est 100% compatible C# 3.5 depuis pas mal de temps).
C'est ainsi que depuis un petit moment, on voit apparaître de plus ne plus de nouvelles API propre à Mono, très intéressantes, comme Mono.SIMD (utilisation des instructions SSE directement dans la machine virtuelle), GTK#, QT#, Cacoa#, des nouveaux drivers ADO.net (SQLite, Oracle, Postgre, ...) ou plus récemment MonoTouch (framework pour developper des applications pour iPod Touch/iPhone en .NET) qui vont permettre de faire de Mono la plateforme idéale de développement sur Unix. Et c'est pas plus mal.
Il est bien sur possible de créer facilement des applications portable de Mono à .NET et inversement, il suffit de respecter quelques règles pour créer une application portable (qui devraient d'ailleurs être suivies par tous les développeurs, et pas que ceux qui veulent faire une application .NET portable ) et de privilégier des outils multiplateformes (GTK#/QT# aux Winforms/WPF, Oracle/Postgre/MySQL/Sqlite à MS SQL Server, ...).
Pour ASP.net sur Mono, je n'en ai jamais fait, mais j'ai déjà lu que une grosse partie des CMS, forums et cie fonctionnaient directement, et que certains l'utilisent déjà à des fin professionnelles. Depuis que MS à libéré les MVC, il sont également implantés.
Linux + Apache + Mono, ca peut être intéressant financièrement et on a les avantages d'un Unix et d'Apache. Par contre, comme dit Louis-Guillaume, c'est encore un peu dur de trouver des hébergeurs ASP.net avec Mono, et ce n'est intéressant que quand on a ses propres serveurs sous Linux.
Il y a un petit add-on pour Visual Studio qui a été publié il y a quelques semaines pour faciliter le test d'applications dans Mono, sur Windows ou sur un serveur distant sous Linux. Ça pourrait faciliter le développement et le portage des applications.
Mono a sans doute de l'avenir dans le nouveau embarqué multiplateforme (l'exemple de MonoTouch plus haut) grâce à sa licence (MIT), là ou l'implémentation de Microsoft, ou même Java avec sa GPL (qui oblige la diffusion des sources modifiées) sont plus difficiles à utiliser.
Pour finir, je dirait (pour les applications desktop) :
- Si t'es sur Windows => Visual Studio + .NET + MS SQL Server + WPF (ou Winforms)
- Si tu est sur Linux/BSD => MonoDevelop + Mono + Postgre (ou MySQL) + GTK#
- Si tu est sur Mac => Monodevelop + Mono + ? + Cacoa#
- Si tu vises plusieurs plateformes => Monodevelop ou VS avec l'add-on + NET et Mono + Postgre (ou MySQL) + GTK#
Maintenant, pour du web, si tu veux faire de l'Azure, ce qui t'obligera de le faire tourner sur IIS, il vaut mieux directement se centrer uniquement sur .NET
Bonjour
je cherche à apprendre C#/mono, car je suis sous GNU/Linux et désire développer avant tout pour GNU/Linux.
Je ne trouve aucun livre (papier ou pdf) qui parle de C#/mono et gtk#.
Est-ce que vous en connaissez ?
Pour apprendre le C# avec Mono, tu peux utiliser a peu près tout les tutoriels pour .NET. Celui-ci est assez bien pour débuter.
Pour GTK# par contre, il n'y a pas de tutoriel complet en français. J'avais commencé à en écrire un, mais c'est un peu en pause. Le site officiel de Mono propose quelques tutoriels et une doc, si tu as déjà fait du GTK ca ne devrait pas pauser problème.
On peu aussi trouver quelques livres en anglais.
Tu peux également utiliser tout ce qui est écrit pour pyGTK et GTKmm, il y a beaucoup de ressources et l'utilisation est fort proche de GTK#.
Tu peux me contacter si tu veux
Non, je n'ai jamais fait de gtk... à vrai dire, je suis un développeur php et c'est même la première fois depuis VB6 (oui ca date et c'est moche) que je vais développer une application.
Je ne sais pas trop comment aborder le développement d'une application. C'est vraiment différent d'une appli web.
J'ai l'habitude d'utiliser le modèle MVC... mais j'ai l'impression que le MVC du web est assez différent d'un MVC d'une application.
Je n'arrive pas à comprendre comment organiser mes classes.
Le concept de thread m'ait totalement étrangé et j'en aurait besoin.
Je vais également devoir utiliser des librairies externes, notamment pour lire les tags id3 et des fichiers audio.
Bref, je suis un peu paumé, mais j'ai vraiment envie d'apprendre.
Je regarderais ce soir, les liens que tu m'as filé.
Si tu avais des sources d'une petite application faite en gtk#, bien organisée, bien codée, ca m'aiderait vachement, je pense.
Les tutos que je trouve explique comment créer une fenêtre, mais n'explique pas vraiment comme séparer l'affichage du code métier et comment intéragir entre les différentes couches
Tu peux essayer PDFMod, c'est un projet assez récent, donc assez petit encore, même c'est pas ce qu'il y a de plus facile pour un débutant (l'auteur n'en est pas a sa première application). Tu peux aussi essayer de regarder les premières versions de Gnome-Do.
Il y aussi f-spot ou Banshee, mais c'est d'un autre niveau.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager