2009-06-04 16 views

risposta

28

Stai cercando la Mono Project - un'implementazione multipiattaforma (ma principalmente indirizzata a Linux) di .NET Framework e CLR. È in grado di eseguire binari compilati per CLR (MS .NET) o di creare i propri binari nativi di Linux.

Il progetto è in corso da un po 'di tempo e la versione corrente (2.4) è molto utilizzabile, anche per production purposes. Vedi lo project roadmap per i dettagli delle principali caratteristiche e pietre miliari delle versioni attuali e future.

dettagli sullo stato attuale:

La grande maggioranza del BCL (Base Class Library) è disponibile su Mono, con l'eccezione di alcune delle cose NET 3.0/3.5, come ad esempio WPF (che ha attualmente un supporto minimo) e WCF (supporto quasi inesistente). Silverlight 2.0 è tuttavia supportato tramite il progetto Moonlight e i progressi su ciò stanno andando bene. La funzionalità di WinForms (che usa GTK # come back-end) è comunque abbastanza completa, per quanto ne so.

implementazione del linguaggio C# 3.0 è efficace completo, compreso le caratteristiche C# 3.0, come lambda espressioni, LINQ, e proprietà automatiche. Credo che lo C# compiler sia maturo al punto che la sua efficienza è almeno paragonabile a quella del compilatore MS, sebbene non lo sia ancora per certi aspetti. Ciò che è piuttosto interessante (e unico) sul compilatore Mono C# è che ora offre un servizio di compilatore - in altre parole una vera compilazione dinamica da codice (senza usare il CodeDOM). Questo è qualcosa che MS forse aggiungerà solo in .NET 5.0.

+0

+1 - Conoscete i server di produzione attuali che eseguono Mono? – Dror

+0

@Dror: Intendi qualcosa come ? – Noldorin

+1

@Dror http://www.mono-project.com/Companies_Using_Mono Controlla questo per esempi – prestomation

4

Come altri hanno già detto, è possibile eseguire applicazioni .NET su Mono. Se le tue applicazioni utilizzano Platform Invocation (P/Invoke) per chiamare il codice nativo, potresti incontrare dei problemi se non ci sono implementazioni Mono della libreria nativa. Per verificare se l'applicazione lo fa (o utilizza API che non sono ancora state implementate in Mono), è possibile utilizzare lo Mono Migration Analyzer (MoMA).

Problemi correlati