c# source WPF su Linux(già) possibile?



wpf multi platform (7)

Sì, è possibile utilizzare NoesisGUI un'implementazione XAML multipiattaforma in tempo reale. Ci sono alcuni giochi già rilasciati usando questa tecnologia in Linux, come VoidExpanse

Divulgazione : sono uno degli sviluppatori di questo prodotto.

Adoro programmare con .NET, in particolare C # 3.0, .NET 3.5 e WPF. Ma quello che mi piace particolarmente è che con Mono .NET è davvero indipendente dalla piattaforma.

Ora ho sentito parlare del Progetto Olive in Mono. Non sono riuscito a trovare qualche tipo di Beta.

Funziona già? Qualcuno di voi ha fatto esperienze con esso?

Edit: So di Moonlight. Ma voglio un'applicazione WPF standalone. E grazie a Moonlight, spero che il WPF su Linux diventerà realtà.


Esiste una libreria denominata Silverform SDK che mira a fornire l'implementazione multipiattaforma di WPF e Silverlight.

La libreria è implementata in codice gestito e attualmente funziona con OpenTK e Unity3D come render backend. Le principali funzionalità, come binding, layout, controlli principali e primitive, sono già state implementate (controlla le demo di Unity web player qui ). Inizialmente si è concentrato sul rendering di Unity3d, mentre il supporto per le applicazioni mono standalone sarà aggiunto come una build separata in futuro.

Disclaimer: sono uno degli sviluppatori della libreria.


Se si controllano i bug noti di questo collegamento (include anche i passaggi necessari per installare .NET su Ubuntu) o si potrebbe scoprire che alcune versioni di WPF (che potrebbero essere buggy) funzionano su Wine per ora. Non ho trovato nessun test definito per ora, ma vale la pena provare a eseguire WPF "Hello world".

UPDATE2:

Ho eseguito l'ultimo IlSpy su Wine più recente per Ubuntu 16.04. Con la versione a 32 bit di dotnet45 e corefonts installati tramite winetricks con compatibilità con Windows 7.

Per ora non si verificano arresti anomali e tutte le cose funzionano correttamente. I caratteri sembrano davvero buoni.

IlSpy viene mostrato tramite WPF e per chi loves programming with .NET è uno strumento essenziale: il decompilatore.

Ho scaricato l'ultimo portatile SharpDevelop (costruito usando WPF) senza extra. È iniziato. Impossibile creare il progetto WPF. Creato WinForms. Dopo aver aperto alcuni file CS e aver evidenziato alcuni problemi, ho provato a digitare - e si è bloccato.

AGGIORNARE

Ho seguito i passaggi e ho ottenuto il più recente ILSpy.exe in esecuzione su Ubuntu 14.4.

Prossimi elementi da notare:

  1. wine ha dichiarato che dotnet40 non è supportato dalla configurazione 64, modificata a 32 bit

  2. i caratteri sono brutti, ma leggibili

  3. Funzionalità di base funziona bene - Posso vedere il codice decompilato - che è abbastanza buono per qualche sviluppo, ma Visualizza -> Cerca e Visualizza -> Opzioni -> Display crash.

Conclusione:

WPF su Linux è possibile. Ma serve un modo per affrontare i problemi.


Mono si trova in una posizione scomoda quando si tratta di API Microsoft come Winforms e WPF. Un sottoinsieme della tecnologia .Net è uno standard ECMA, ma le implementazioni gratuite di queste API sono probabilmente su un terreno legale più shakier. Credo che questo sia stato un fattore importante nel patto tra Novell e Microsoft, che è positivo per i clienti Novell. Ma le persone che usano Mono che non sono clienti di Novell non sono protette. Per questo motivo molte persone della community F / OSS guardano con sospetto a Mono nonostante i suoi meriti tecnici.

Per questo motivo, Gtk # sarà sempre preferito, poiché è veramente gratuito. Molte persone considerano comunque superiore a Winforms. Per quanto riguarda WPF, sarà quasi certamente una priorità bassa per Novell. Potrebbero implementarlo alla fine, ma mi aspetterei che Moonlight sia il più vicino possibile per il prossimo futuro.

Da quando ha pubblicato questo messaggio, Microsoft ha esteso il proprio patto a chiunque applichi gli standard ECMA 334 e 335 .


Dal sito mono

A questo punto, il progetto Mono non ha piani per implementare le API di Windows Presentation Foundation come parte del progetto.

Moonlight è un'implementazione di silverlight, una tecnologia flash basata su browser basata su un sottoinsieme di WPF.

A mio parere, la scelta di non implementare WPF è un grosso errore. Come WPF sta rapidamente diventando la scelta predefinita per le nuove interfacce utente .net. Vedi questo blog per di più .


Dalla pagina iniziale di Olive:

L'oliva non è supportata, dovrebbe essere considerata un software sperimentale e poiché implementa un'API mobile non ci sono garanzie di alcun tipo sulla stabilità dell'API.

Dubito che qualcuno l'avrebbe usato in un vero progetto.


Avrai maggiore fortuna lavorando con Moonlight, che si rivolge all'API Silverlight, che è un sottoinsieme di WPF completo.

edit: Certo, Silverlight non è "previsto" per il desktop, ma non c'è motivo per cui non è possibile incorporare un motore Silverlight nell'applicazione. È già stato fatto prima, come per Mac NY Times Reader

più modifica: vedi il post di Miguel sulle applicazioni Silverlight standalone





mono