2009-06-04 32 views

Respuesta

28

Está buscando Mono Project - una implementación multiplataforma (pero principalmente dirigida a Linux) de .NET Framework y CLR. Es capaz de ejecutar binarios compilados para CLR (MS .NET), o de crear sus propios binarios Linux nativos.

El proyecto ha estado funcionando hace un tiempo, y su versión actual (2.4) es muy útil, incluso para production purposes. Consulte el project roadmap para obtener detalles sobre las características principales y los hitos de las versiones actuales y futuras.

Los detalles sobre el estado actual:

La gran mayoría de la BCL (Base Class Library) está disponible en Mono, con la excepción de algunas de las cosas NET 3.0/3.5, como WPF (que tiene soporte mínimo actualmente) y WCF (soporte casi inexistente). Sin embargo, se admite Silverlight 2.0 a través del proyecto Moonlight, y el progreso en eso va bien. La funcionalidad WinForms (que usa GTK # como back-end) es, sin embargo, bastante completa, hasta donde yo sé.

implementación del lenguaje C# 3.0 es efectivamente completa, incluyendo los C# 3.0 características tales como lambda expresiones, LINQ y propiedades automáticas. Creo que el C# compiler está maduro hasta el punto de que su eficacia es al menos comparable con la del compilador de MS, aunque todavía no coincide en algunos aspectos. Lo que es realmente genial (y único) sobre el compilador de Mono C# es que ahora ofrece un servicio de compilación - en otras palabras, compilación dinámica verdadera desde el código (sin usar el CodeDOM). Esto es algo que MS quizás solo agregue en .NET 5.0.

+0

+1 - ¿Conoces los servidores de producción reales que ejecutan Mono? – Dror

+0

@Dror: ¿Te refieres a algo como ? – Noldorin

+1

@Dror http://www.mono-project.com/Companies_Using_Mono Mire esto para ver ejemplos – prestomation

4

Como ya han dicho otros, puede ejecutar aplicaciones .NET en Mono. Si sus aplicaciones usan Invocación de plataforma (P/Invoke) para llamar al código nativo, puede tener algunos problemas si no hay una implementación Mono de la biblioteca nativa. Para verificar si su aplicación hace eso (o usa API que aún no se han implementado en Mono), puede usar el Mono Migration Analyzer (MoMA).

Cuestiones relacionadas