66 votes

Quelles sont les alternatives Open Source à WPF / XAML?

Si nous avons appris quelque chose de HTML/CSS c'est que, langages déclaratifs (comme XML) faire un bon travail de décrire les Interfaces Utilisateur car:

  1. Il est facile de construire le code de préprocesseurs qui peuvent template le code de manière efficace.
  2. Le code est dans un sens bien défini et bien structurés (idéalement) format il est donc facile à analyser.
  3. La technologie permettant d'analyser ou d'analyse d'un fichier XML source basé sur le fichier existe déjà.
  4. L'Isu code script devient beaucoup plus simple et plus facile à comprendre.
  5. Assez simple que les concepteurs sont en mesure de concevoir l'interface eux-mêmes.
  6. Les programmeurs sucer à la création de l'Isu, donc il devrait être assez facile pour les concepteurs.

J'ai récemment pris un coup d'oeil à la viande d'une application WPF (ie. le code XAML) et il ressemble étonnamment familier au langage déclaratif de style utilisée dans le code HTML.

L'état actuel de l'INTERFACE utilisateur de bureau de développement est en grande partie fractionnée, sinon il n'y aurait pas autant de doublons dans le domaine de l'interface graphique utilisateur (IE. GTK, XUL, Qt, Winforms, WPF, etc).

Il y a 45 GUI plates-formes pour Python seul

Quels sont Open Source interface graphique de qui représentent ces caractéristiques:

  • normalisé
  • indépendant de la plateforme
  • déclaratif de langage de balisage
  • langue agnostique

WPF, ou plus précisément XAML semble être une très probablement pas dans la bonne direction.

Mise à jour:

Merci beaucoup pour l'info, keep it comin'. Ici sont les options que j'ai recueillies à partir des commentaires et des réponses.

GladeXML

  • Éditeur: Concepteur D'Interface Glade
  • Les Plateformes OS: Tous
  • GUI Plate-forme: GTK+
  • Langages: C (libglade), C++, C# (Clairière#), Python, Ada, le Brochet, Perl, PHP, Eiffel, Ruby

XRC (Ressource XML)

Basés sur XML qui ne sont pas libre, pas de croix-plate-forme, ou de la langue spécifique

XUL

  • Éditeur: Tout éditeur de texte de base
  • Les Plateformes OS: Tout système d'exploitation exécutant un navigateur qui prend en charge XUL
  • GUI Plate-forme: Gecko le Moteur?
  • Langages: C++, Python, Ruby comme plugin langues qui ne sont pas les langues de base

Note: je ne suis pas sûr si XUL mérite d'être mentionnée dans cette liste parce que c'est moins un bureau de la langue GUI et plus d'une webapps-run-sur-le-bureau de la langue. De Plus, il nécessite un navigateur à exécuter. C'est à dire, c'est " DHTML pour le bureau.'

CookSwing

XAML (clair de Lune)

  • Éditeur: MonoDevelop
  • Les Plateformes OS: Linux et les autres Unix/X11 en fonction des Systèmes d'exploitation de seulement
  • GUI plates-formes: GTK+
  • Langues: .NET

Remarque: XAML n'est pas un pur format Open Source de Microsoft, car les contrôles de ses conditions d'utilisation, y compris le droit de modifier les conditions à tout moment. Clair de lune ne peut pas légalement être fait pour fonctionner sur Windows ou Mac. En outre, la seule plate-forme qui est exonéré de l'action en justice est de Novell. Voir ce pour une description complète de ce que je veux dire. XAML est pas non plus une norme ECMA comme C#, C++ Géré, et le CLR.

Mise à jour: La question a été modifié à partir de "Est-il une alternative Open source à WPF? parce que la question initiale était erronée, et qu'elle a sucé. Le sens de cette question a changé de direction pour correspondre à l'aligner avec la nouvelle entrée. Mes excuses pour les personnes qui ont répondu avant, elle a changé.

14voto

Thomas Points 1902

Qt développe QML, qui ressemble beaucoup à XAML sauf en JSON. Il est disponible en tant qu'aperçu de la version actuelle et est disponible dans les instantanés de la version suivante.

Voici un petit extrait de http://doc.qt.nokia.com/4.7-snapshot/declarative-ui-components-progressbar.html

 import Qt 4.7
import "content"

Rectangle {
   id: main

    width: 600; height: 405
    color: "#edecec"

    Flickable {
       anchors.fill: parent
       contentHeight: column.height + 20

       Column {
           id: column
           x: 10; y: 10
           spacing: 10

           Repeater {
               model: 25

               ProgressBar {
                 property int r: Math.floor(Math.random() * 5000 + 1000)
                 width: main.width - 20

                 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite }
                 ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite }
                 ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite }
               }
           }
       }
   }
}
 

7voto

Dave Markle Points 44637
  • Le Web est de prendre le plus de la vapeur à l'écart des applications de bureau car il est.

    Je pense que la grande raison est que tout le monde est tellement concentré sur le web pour le moment. HTML5 va être un bond en avant en ce que le web peut faire. Avec JavaScript rapides, des interprètes et capable de navigateurs, de la nécessité pour les programmes de bureau va commencer à s'estomper au fil du temps. C'est le cheval que Google est de paris, et, dans une bien moindre mesure, Apple.

  • La création de quelque chose de bon aurait radicalement différentes implémentations pour chaque OS, de sorte que la base de toolkit lui-même n'est pas très portable.

    Si vous pensez à ce sujet, le Web est le seul vraiment substrat commun que nous avons à développer ce type d'infrastructure dans une croix-plate-forme. WPF est incroyablement différent à partir d'un point de vue architectural vs WinForms/droite WinAPI code. L'adaptation de quelque chose comme ça à chaque OS prendrait beaucoup de très différent de la plomberie pour chaque système d'exploitation si vous avez une prière de faire quelque chose qui a bien performé. (Non pas que les applications web sont très rapides, vous l'esprit, mais ils sont de mieux en mieux).

  • Look et la sensation est toujours va être un peu d'un problème.

    Dont le regard et la sensation utilisez-vous? Avez-vous essayer d'adapter l'INTERFACE utilisateur pour le système d'exploitation chrome de sorte qu'il semble "indigènes", ou pensez-vous faire quelque chose comme Swing avait fait des années auparavant et développer des applications qui ressemblent très différente de tout là-bas? (Pouah, qui a été un accident de train...) Et si vous choisissez d'adapter l'INTERFACE utilisateur pour chaque OS, vous pouvez avoir toutes sortes de mesures et de problèmes de conception.

3voto

code4life Points 8797

Novell a une implémentation Open Source de Silverlight, avec un excellent support pour XAML, appelée Moonlight:

http://en.wikipedia.org/wiki/Moonlight_(runtime )

http://www.mono-project.com/Moonlight

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X