2009-06-16 9 views
24

DotGNU y Mono parecen estar atacando el mismo problema: implementar el .NET CLR de forma gratuita y de código abierto con vistas a la compatibilidad multiplataforma.DotGNU vs Mono

He estado leyendo bastante sobre ambos, y me está costando decidir qué implementación usar para un próximo proyecto. Mi proyecto particular no necesita System.Windows.Forms, por lo que la parte gráfica de la interfaz de usuario de las bibliotecas no será demasiado importante.

Entonces, ¿alguien ha intentado comparar los dos directamente? ¿Cuáles son las dificultades de cualquiera con respecto al otro? ¿Hay uno más apoyado por la comunidad FOSS que el otro?

Gracias a todos los que responden :)

Respuesta

36

Bueno, Mono ve como un puerto mucho más completa a mí, con mucho más respaldo.

A juzgar por el sitio web, DotGNU parece ser tanto sobre decirle a la gente que no use .NET como sobre proporcionar una alternativa viable. Muchos de los enlaces (como los "últimos cambios") no parecen útiles.

Mono, por otro lado, obviamente está en desarrollo activo, admite el nuevo DLR, ha implementado C# 3.0 y soporte LINQ, está disponible para instalar desde paquetes para plataformas múltiples, tiene documentación de trabajo, etc. El ganador parece bastante claro para mí

+0

También tengo una impresión similar al mirar el sitio de DotGNU. ¡Parecía que las noticias más importantes desde 2006 (y una de las pocas) que tenían era cambiar de CVS a git! – crashmstr

+0

Sí. Y si solo cumplen con los estándares de ECMA, se quedarán con C# 2.0. –

+0

Microsoft parece ser compatible con Mono también. – Joshua

4

Dotgnu no es compatible con los delegados genéricos y anónimos, mientras que mono lo hace.

Había compilado dotgnu de fuentes de git en varias plataformas con y sin libjit. Tuve mucho menos éxito recopilando mono de sus últimas fuentes.

Si compila pnet con libjit (./configure --with-jit), entonces el rendimiento de dotgnu es ligeramente mejor que el mono para el benchmark nbody.

Por lo tanto, si necesita genéricos, vaya por mono. De lo contrario, vaya con dotgnu.

PD: Hay es cierto desarrollo en dotgnu git-sources - Lo actualizo de vez en cuando y puedo ver los nuevos commits cada cierto tiempo.

+1

Alguien me negó, supongo, por afirmar que dotgnu es más rápido. Bueno, eso es lo que está en un Ubuntu 10.04 de 64 bits con el dotgnu 0.8.1 suministrado y el nuevo compilado de git-sources. Este es el resultado corriendo Nbody de puntos de referencia de lenguaje de ordenador: mukjaj @ mukjaj: ~/Komod/js $ mono tiempo nbody.exe 10000000 -0.169075164 -0.169077842 verdadera \t 0m4.572s usuario \t 0m4.560s sys \t 0m0.010s mukjaj @ mukjaj: ~/Komod/js $ ilrun tiempo nbody.exe 10000000 -0.169075164 -0.169077842 reales \t 0m4.546s usuario \t 0m4.540s sys \t 0m0.000s – Dmitri

+0

Sí, y metro La versión de ono era 2.4.2.3. La diferencia no es grande, pero está ahí. – Dmitri

+0

Sí, y el uso de memoria fue de 35M para mono y 31M para dotgnu. Entonces, aquí dotgnu nuevamente es un poco mejor. Pero, de nuevo, esto fue para cálculos numéricamente pesados, eso es lo que hago principalmente. Para otros tipos de aplicaciones, su millaje puede variar. – Dmitri