web-dev-qa-db-fra.com

WPF sur Linux est-il (déjà) possible?

J'adore la programmation avec .NET, en particulier C # 3.0, .NET 3.5 et WPF. Mais ce que j'aime particulièrement, c'est qu'avec Mono .NET est vraiment indépendant de la plate-forme.

Maintenant, j'ai entendu parler du projet Olive à Mono. Je n'ai pas pu trouver une sorte de Beta.

Ça marche déjà? L'un d'entre vous en a-t-il fait l'expérience?

Edit: Je connais Moonlight. Mais je veux une application WPF autonome. Et à cause de Moonlight J'espère que WPF sur Linux deviendra vrai.

44
Hades32

Vous aurez plus de chance de travailler avec Moonlight, qui cible l'API Silverlight, qui est un sous-ensemble de WPF complet.

edit: Bien sûr, Silverlight n'est pas "destiné" au bureau, mais il n'y a aucune raison pour que vous ne puissiez pas intégrer un moteur silverlight dans votre application. Cela a déjà été fait, comme pour le Mac NY Times Reader

plus modifier: voir le post de Miguel sur Applications Silverlight autonomes

23
Jimmy

Mise à jour : Étant donné que les gens continuent à voter, je tiens à souligner que c'est long depuis obsolète. Mono a été acquis par MS il y a des années, et leur attitude vis-à-vis de l'open source a changé, alors considérez ce post obsolète. (Aussi obsolète que le framework WPF lui-même, heh).

Mono est un peu mal à l'aise en ce qui concerne les API Microsoft telles que Winforms et WPF. Un sous-ensemble de la technologie .Net est une norme ECMA, mais les implémentations gratuites de ces API sont probablement sur un terrain juridique plus fragile. Je crois que c'était un facteur important dans l'alliance entre Novell et Microsoft, ce qui est bon pour les clients Novell. Mais les utilisateurs de Mono qui ne sont pas clients de Novell ne sont pas protégés. Pour cette raison, beaucoup de gens de la communauté F/OSS regardent Mono de travers malgré ses mérites techniques.

Pour cette raison, Gtk # sera toujours préféré, car il est vraiment gratuit. De nombreuses personnes le considèrent de toute façon comme supérieur à Winforms. En ce qui concerne WPF, ce sera presque certainement une faible priorité pour Novell. Ils pourraient éventuellement le mettre en œuvre, mais je m'attendrais à ce que Moonlight soit le plus proche possible dans un avenir prévisible.


Depuis la publication de cela, Microsoft a étendu son engagement à toute personne qui implémente les normes ECMA 334 et 335 .

14
Adam Lassek

Depuis le site mono

À ce stade, le projet Mono ne prévoit pas d'implémenter les API Windows Presentation Foundation dans le cadre du projet.

Moonlight est une implémentation de silverlight, qui est une technologie de type flash basée sur un navigateur basée sur un sous-ensemble de WPF.

À mon avis, le choix de ne pas implémenter WPF est la plus grosse erreur de monos. Comme WPF devient rapidement le choix par défaut pour les nouvelles interfaces utilisateur .Net. Voir ce blog pour en savoir plus .

7
trampster

Si vous cochez Bogues connus de ce lien (comprend également les étapes nécessaires pour installer .NET sur Ubuntu) ou ce vous pouvez constater qu'une version (peut-être boguée) de WPF fonctionne sur Wine comme pour l'instant. Je n'ai pas trouvé de test définitif fait pour l'instant, mais cela vaut la peine d'essayer d'exécuter WPF "Hello world".

MISE À JOUR2:

J'ai exécuté le dernier IlSpy le dernier Wine pour Ubuntu 16.04. Avec la version 32 bits de dotnet45 et corefonts installés via winetricks avec compatibilité Windows 7.

Pour cette fois, aucun plantage et tout fonctionne bien. Les polices sont vraiment belles.

IlSpy est affiché via WPF et pour la personne qui loves programming with .NET est un outil essentiel - le décompilateur.

J'ai téléchargé le dernier SharpDevelop portable (build utilisant WPF) sans supplément. Ça a commencé. Impossible de créer le projet WPF. Création de WinForms. Après avoir ouvert certains fichiers cs et mis en évidence certains problèmes, j'ai essayé de taper - et il s'est bloqué.

IlSpy via Wine on Ubuntu

METTRE À JOUR

J'ai suivi les étapes et j'ai exécuté le dernier ILSpy.exe sur Ubuntu 14.4.

enter image description here

Prochains éléments à noter:

  1. wine a déclaré que dotnet40 n'est pas pris en charge par la configuration 64, remplacé par 32 bits

  2. les polices sont moches, mais lisibles

  3. la fonctionnalité de base fonctionne très bien - je peux voir du code décompilé - ce qui est assez bon pour certains développements, mais Afficher -> Rechercher et afficher -> Options -> Plantage d'affichage.

Conclusion:

WPF sur Linux est possible. Mais besoin d'un moyen de résoudre les problèmes.

4
Dzmitry Lahoda

Il existe une bibliothèque appelée Silverform SDK qui vise à fournir l'implémentation multi-plateforme WPF et Silverlight.

La bibliothèque est implémentée en code managé et fonctionne actuellement avec OpenTK et Unity3D en tant que backends de rendu. Des fonctionnalités majeures, telles que la liaison, la mise en page, les principaux contrôles et les primitives, ont déjà été implémentées (consultez les démos du lecteur Web Unity ici ). Initialement, il s'est concentré sur le rendu Unity3d, tandis que la prise en charge des applications Mono autonomes sera ajoutée en tant que version distincte à l'avenir.

Avertissement: je suis l'un des développeurs de la bibliothèque.

4
Sergii Volchkov

De l'Olive page d'accueil :

Olive n'est pas pris en charge, doit être considéré comme un logiciel expérimental, et comme il implémente une API mobile, il n'y a aucune garantie quant à la stabilité de l'API.

Je doute que quelqu'un l'aurait utilisé dans un vrai projet.

2
Kent Boogaart

Oui, il est possible d'utiliser NoesisGUI une implémentation XAML multiplateforme en temps réel. Il existe déjà quelques jeux utilisant cette technologie sous Linux, comme VoidExpanse

Divulgation : Je suis l'un des développeurs de ce produit.

1
jsantos

J'ai entendu un podcast interviewant miguel de icaza (le mono lead) il y a peut-être quelques semaines, donc cela aurait peut-être été mi-décembre 2008, et il a dit qu'ils n'avaient encore aucun support WPF.

0
Orion Edwards