2009-11-13 4 views
14

J'essaie de décider d'utiliser Mono avec C# ou Python (Django) pour un site Web basé sur Linux. Mon souci avec C# est que Mono peut ne pas être aussi fiable que .NET. Est-ce que quelqu'un a de l'expérience avec ça?Quelle est la fiabilité de Mono sous Linux par rapport à .NET sous Windows?

+4

Comment mesurez-vous la fiabilité? –

+0

Je n'ai jamais rencontré de problèmes avec Mono que je n'aurais pas rencontrés dans .NET et il n'y a plus de différence significative de vitesse entre le Mono et .NET. –

+0

le problème le plus sérieux avec mono est GC. Si votre site a un trafic élevé, vous devrez probablement redémarrer mod_mono régulièrement. Nous souhaitons que ce soit principalement corrigé dans la version 2.6 ou 2.8. Les langages Java ou JVM sont meilleurs pour les environnements Linux. – sirmak

Répondre

4

Je pense qu'il est acquis que Mono est moins fiable que .NET sous Windows, compte tenu des ressources disponibles pour le développement et de la taille de la base d'utilisateurs. Combien moins est un point discutable.

This blog post from Miguel de Icaza illustre le genre de problèmes qui me concerneraient lors de l'utilisation de Mono.

Cependant, je ne peux pas vous donner de comparaison entre Mono et Python.

+4

Juste pour tous les lecteurs: Le sgen GC est assez stable maintenant, et ainsi les problèmes soulevés dans le blog lié poste ne sont plus pertinents. – cdhowie

2

Cela dépend de ce que vous faites. Si vous créez un site Web non-entreprise, vous devriez faire bien avec l'éther. J'ai entendu de bonnes choses à propos de Mono. Le problème avec l'utilisation de Mono est qu'il est constamment en train de jouer au rattrapage avec MS et qu'il doit supporter plusieurs plates-formes, contrairement à MS. J'ai écrit des applications de bureau avec mono, mais je n'ai jamais fait de choses liées au site web avec. Avec C# et la plate-forme Windows, votre meilleur pari est l'implémentation MS. Ma recommandation serait d'utiliser Python.

Je ne peux pas parler de la prise en charge, de la fiabilité, etc de Django, mais Python a été pendant un certain temps, et il a une longue expérience de travail sur Linux/Unix.

2

Personnellement, je vous éviterais d'utiliser C# (Mono) si vous ciblez Linux.

  • Votre communauté de développement peut être très petite pour tout problème de plate-forme; alors qu'il y a évidemment beaucoup de développeurs C#, le nombre qui utilise Mono est relativement minime .
  • Dans mon expérience, il y a beaucoup de problèmes avec trouver une version récente de Mono pour Linux, sauf si vous exécutez SUSE .
  • Alors que Mono peut avoir les caractéristiques que vous voulez, et peut avoir la fiabilité (je ne peux pas commenter, j'utilise encore 1.x!) vous pouvez également vouloir regarder dans la vitesse si vous vous attendez à une utilisation intensive .
  • Si vous prévoyez de déployer plus de machines (surtout si vous ne pouvez pas les cloner), cela pose beaucoup plus de problèmes; ils importent un peu moins si c'est juste un serveur. Certains ont des préoccupations au sujet de la menace de poursuites sur la technologie Mono, et ce qui pourrait arriver aux utilisateurs finaux (vous et vos utilisateurs) si ceux-ci se produisent. D'après ce que j'ai lu, je ne suis pas trop inquiet, mais Je ne suis pas avocat.

Bonne chance.

  1. Je pourrais me tromper; Je n'ai pas regardé les numéros de téléchargement pour Mono, bien que ce soit la limite supérieure de .
  2. Ubuntu Karmic (9,10) a Mono 2,4, mais I regretter je mis à jour de Jaunty (9.04) qui avait 1.9.
  3. La construction à partir de la source peut être taxée. Et il sont d'autres sources pour les binaires Mono 2.X, mais ils ne sont pas faciles à localiser.
+2

En ce qui concerne la légalité de Mono - il n'y a absolument rien à s'inquiéter. Microsoft a émis une «licence de promesse de communauté» sur la technologie et travaille activement avec Novell pour développer Mono et Common Language Runtime. http://en.wikipedia.org/wiki/Microsoft_Open_Specification_Promise - «une promesse irrévocable par Microsoft, publiée en septembre 2006, de ne pas affirmer des droits légaux sur certains brevets Microsoft sur les implémentations d'une liste de technologies incluse». –

+2

Désolé, il n'y a aucune promesse pour asp.net ou ado.net. Et une plate-forme ne peut pas dépendre d'une promesse. – sirmak

+2

Je prédis que ce n'est qu'une question de temps avant qu'une certaine société riche embauche Miguel de Mono et Mono meurt d'une mort lente. (* Je sais qu'il n'est pas le seul développeur, mais il semble être son cœur *) – NVRAM

13

Je fais une variété de choses en utilisant mono/C# sur linux - tous les projets compilés sur une machine Windows, pas moins. J'ai fait des services, des sites Web, des applications de console, vous le nommez. À moins que vous ne fassiez de vraies affaires, vous ne devriez avoir aucun problème.

Je lance aussi des sites utilisant lighttpd + fastcgi + mono sans problème. Je l'aime

+0

Un projet qui a été compilé avec Lunix-Mono s'exécute-t-il plus rapidement que Windows? À quelle vitesse? – Babak

1

Cela pourrait être pure spéculation, mais voici mon expérience. J'utilise ubuntu et mono (ainsi que monodevelop) est livré avec 2 ans de retard sur la version actuelle. Vous pourriez compiler un nouveau, mais c'est de la douleur. Je l'ai utilisé dans 3 projets de passe-temps, voici ma conclusion: en comparant à la mise en œuvre de Microsoft, il est buggé et a des fuites de mémoire et plus lent. Eh bien, la plupart du temps cela fonctionnera, mais devriez-vous stresser votre logiciel et vous verrez. Je voudrais savoir que C++ est aussi bon que C#, donc je pourrais aller avec Linux. Tout s'applique à v. 2.10 et ci-dessous.

Questions connexes