2009-08-04 8 views
8

Sto pensando di sviluppare un'applicazione desktop in C#. Anche se Windows sarà il mio obiettivo principale, più tardi cercherò di eseguire l'app in MacOS X e Linux. Posso farlo oggi, in un modo semplice? Sono a conoscenza del progetto mono, ma non mi è chiaro se posso farlo in un modo semplice.Applicazioni multipiattaforma con WPF

Inoltre, qual è la relazione tra WPF e Silverlight? AFAIK Silverlight segue un modello di plugin molto simile a Flash o Java. Posso sviluppare la mia app desktop con Silverlight e distribuirla su windows, linux e os x senza molte modifiche?

Qualsiasi suggerimento sarà molto apprezzato.

+0

Silverlight in realtà non ha molto in comune con WPF. WPF è un framework per la creazione di app desktop, Silverlight è un plug-in del browser, molto simile a Flash. Le applicazioni Silverlight possono essere eseguite in modo nativo su Windows e Mac OS X e tramite il progetto Moonlight di Mono su Linux. –

+4

"Silverlight in realtà non ha molto in comune con WPF": non direi che ... hanno molto in comune! il linguaggio XAML, il modello DependencyObject, la maggior parte dei controlli ... Ci sono alcune funzionalità WPF che non sono disponibili in Silverlight e alcune funzionalità di Silverlight non disponibili in WPF, ma il divario si riduce con l'ultima versione di entrambi i prodotti –

+0

Thomas ha ragione. Inoltre, Microsoft punta esplicitamente a * convergere * i framework WPF/Silverlight in modo che nel tempo possano essere virtualmente completamente interoperabili. – Noldorin

risposta

7

Il progetto Mono non supporta ancora .Net 3 e WPF, e probabilmente ci vorrà un po 'di tempo prima che ciò accada.

Silverlight potrebbe essere sufficiente per le vostre esigenze. A partire da Silverlight 3.0 è possibile eseguire Silverlight al di fuori del browser, anche creare un collegamento ad esso sul desktop.

+2

NB: Moonlight attualmente supporta solo in modo stabile Silverlight 1.0 e ha solo una versione pre-alpha 2.0. – supercheetah

+0

Quindi non posso distribuire app Silverlight 3 su Linux, giusto? –

+1

Mono supporta un numero di funzionalità .net 3.x, ma non WPF. – kenny

1

WPF viene utilizzato per creare applicazioni desktop per Windows solo. Attualmente non sono supportate altre piattaforme. Se il supporto multipiattaforma è obbligatorio, è possibile creare un'applicazione basata su browser e utilizzare Silverlight. Silverlight esegue le applicazioni nel browser, tuttavia, non è possibile creare un'applicazione "desktop".

+1

È possibile eseguire applicazioni che si eseguono al di fuori del browser con Silverlight 3. Tuttavia, sono comunque limitate dalla sandbox Silverlight. –

1

Mono sta lavorando duramente per assicurarsi che Silverlight funzioni su più piattaforme (come indicato su uno dei podcast di overflow dello stack). Quindi sembra essere un buon modo per andare.

2

Ultimo ho sentito, il progetto Mono non ha intenzione di implementare WPF, tuttavia stanno lavorando su altre funzionalità .NET 3.5, in particolare LINQ e ASP.NET MVC. Il problema con l'implementazione di WPF in Mono (oltre alle dimensioni e alla complessità dell'API) è che su Windows utilizza DirectX per il rendering, quindi un'implementazione per Mono dovrebbe utilizzare OpenGL. Sicuramente non è un'impresa banale.