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.
Version imprimable
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.
un doux rêveur, c'est mignon :mouarf:
Mono c'est joli sur le papier, dans la réalité, c'est absolument pas en place.
Mono c'est bien SI ET SEULEMENT SI:
- tu déploies une petite application utilisateur censée marcher sur Windows et Linux
- tu déploies un webservice ou une appli pro sur des serveurs linux qui t'appartiennent à toi ou ta boite!
pourquoi? tout simplement parce que dans les entreprises ou les hébergeurs, les gens qui ont des serveurs linux n'installent PAS Mono. ca reste un produit Microsoft et il y a une gueguerre contre Mono qui fait qu'il est très peu présent sur les pc et serveurs linux.
donc faudrait savoir plus quel type de produit tu vises quand tu dis un "grand nombre de serveurs", parce que c'est tres tres loin d'être sûr que tu aies une majorité de serveurs linux, par rapport à des serveurs windows
Ok, merci beaucoup pour ta réponse...;-). En fait, je pensais plus aux instances sur Amazon EC2... Mais c'est vrai que même si c'est plus cher sous windows, j'ai l'impression que ça va beaucoup plus vite à développer avec Visual Studio plutôt qu'en C++ avec Linux+Apache+Axis2C...^^
Merci encore pour vos éclaircissements.
K.
Oui en effet, ça semble en plus mieux intégrer avec Visual Studio... J'ai de plus en plus l'impression que ça va devenir la solution ultime en fait. Mais comme rien n'est parfait, quels seraient dans ce cas les inconvénients de développer un service web avec Visual Studio + C# + Azure plutôt que Mono + EC2 ?
Merci de vos réponse en tout cas, ça m'aide beaucoup à y voir plus clair.
K.
nan faut pas mélanger tout et n'importe quoi.
EC2 d'amazon est quelque chose de stable, fiable et qui va logiquement perdurer dans le temps.
Azure, c'est Microsoft qui s'en occupe mais on a aucune certitude que ca existera dans 5 ans si c'est pas rentable.
la seule différence qu'on soit .net ou mono c'est que c'est plus facile de s'interfacer avec Azure, et ca n'a rien à voir avec Visual studio
Je voulais juste dire que Visual Studio simplifie la tâche pour développer et déployer ses applis pour Azure.
K.
Dans ce cas, si je dois héberger mon service web sur IIS, ne devrais-je pas plutôt me tourner vers un service WCF ? Tant qu'à faire.....;-)
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 :ccool:) 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.