Ich bin vertraut mit Web-Programmierung, sowohl Client-und Server-Seite, und ich möchte ein wenig mein Wissen erweitern, um in der Lage zu sein, einige Desktop-Programme zu schreiben.
Mein Problem ist, dass ich mit der Desktop-Verwaltung von Widgets nicht wirklich vertraut bin. Soweit ich weiß, haben Widgets in typischen Desktop-Programmen ihr eigenes Leben, senden Signale aneinander und reagieren auf Signale mit Rückrufen. Jedes Widget ist also ein Objekt mit vielen Methoden. Dies fügt eine weitere Komplikation in Bezug auf das, was ich jetzt weiß, hinzu und ich bin mir nicht sicher, ob ich das jetzt lernen möchte.
Im Internet beschreiben Sie die Elemente auf der Seite typischerweise mit einer Auszeichnungssprache, normalerweise einer HTML-Version, und wenn ein Ereignis ausgelöst wird, ändern Sie die Elemente mit Javascript. Ich versuche zu verstehen, ob es eine Möglichkeit gibt, das Web-Paradigma in einem Desktop-Programm zu verwenden. Ich möchte Widgets über eine Markup-Sprache beschreiben können (diese sind statisch) und sie basierend auf Ereignissen ändern. Wenn ich richtig verstehe, funktionieren XUL-basierte Anwendungen auf diese Weise.
Das Problem ist, dass die Dokumentation, die ich über XUL finden kann, etwas veraltet ist. Ist das Lernen von XUL eine gute Idee? Kann ich damit rechnen, dass ich es in einigen Jahren noch benutzen werde? Oder wird es schon eine alte Technologie?
Falls XUL keine gute Idee ist, welche Alternativen gibt es? Für die einfachsten Anwendungen, bei denen die Widgets statisch sind oder nur leicht modifiziert werden, gibt es einige einfache tools , aber was ist mit einem komplexeren Programm?
BEARBEITEN : Ich sollte erwähnen, dass ich hauptsächlich Ubuntu verwende, also brauche ich ein Linux- oder OS-unabhängiges Tool.
Vielleicht möchten Sie sich die Adobe AIR-Technologie ansehen. Sie können die Benutzeroberfläche mit einer Markup-Sprache namens MXML (ähnlich wie HTML, strengere Syntax) beschreiben und die Funktionen mithilfe von ActionScript, einer JavaScript-ähnlichen Skriptsprache, definieren. AIR-Apps sind plattformunabhängig, da sie auf der AIR-Plattform ausgeführt werden, die betriebssystemspezifische Dinge für Sie abstrahiert. Sie können aus demselben Grund auch relativ langsamer sein als native Apps - dies ist jedoch bei kleinen Anwendungen kein Problem. Es hängt davon ab, was für Sie wichtiger ist - Laufgeschwindigkeit oder Entwicklungsgeschwindigkeit.
Der Hauptnachteil bei AIR besteht darin, dass Benutzer die AIR-Plattform auf ihrem Computer installieren müssen, um AIR-Anwendungen zu installieren und auszuführen, genau wie Sie Java installieren müssen, bevor Sie eine in Java geschriebene Anwendung ausführen können. Die meisten Plattformen haben heutzutage Java out of the box, aber AIR ist noch nicht so allgegenwärtig.
Und über XUL, bitte korrigieren Sie mich, wenn ich falsch liege, aber anscheinend ist es die Auszeichnungssprache für die Beschreibung der UI in Mozillas Anwendungen wie Firefox, Thunderbird usw. und wird für die Entwicklung von Erweiterungen für ihre Anwendungen verwendet. Ich konnte keine Hinweise darauf erhalten, dass XUL für echte Desktop-Anwendungen verwendet wird.
XUL und bieten im Wesentlichen, was Sie gefragt haben. Es ähnelt HTML insofern, als Sie eine beschriftete Sprache zur Beschreibung der Schnittstelle verwenden und Sie JavaScript für Ihre Codierung verwenden können. Es wird sicherlich für Desktop-Entwicklung verwendet, einschließlich solcher Produkte wie Firefox, Thunderbird, Songbird und Komodo Edit / IDE.
Wenn Sie auf dem Desktop arbeiten, haben Sie mehr Freiheit als das Ausführen einer Web-App, das Lesen und Schreiben von Dateien und durch XPCOM sogar das Ausführen von Nicht-JavaScript-Code.
Im Mozilla Developer Center gibt es eine große Menge ziemlich aktueller Dokumentation. Was Sie speziell suchen, ist, wie Sie eine xulrunner App erstellen - das ist das Framework, mit dem Sie Desktop-Apps erstellen können XUL.
Mit XUL kann man sicherlich gute Desktop-Apps erstellen. Der Nachteil ist, dass es keine große Entwickler-Community gibt (außerhalb von Mozilla, Songbird und Erweiterungs-Entwicklern), und dass es nicht viel Unterstützung für Leute gibt, die in die Community kommen, um Apps zu erstellen. Es gibt eine Mailing-Liste und es gibt einen IRC-Kanal. Die Herausforderung besteht darin, dass es Macken geben wird, wenn du xulrunner benutzt, und es wird begrenzte Unterstützung geben, während du sie durcharbeitest. Es ist eine Art "Henne-und-Ei" -Problem, denke ich - eine vielfältige, große Entwickler-Community würde mehr Unterstützung geben - und mehr Unterstützung würde die Community wachsen lassen.
Ich verwende XUL seit zwei Jahren, um ein Produkt zu entwickeln, und ich debattiere immer noch, ob ich den gleichen Weg noch einmal wählen würde oder nicht.
Ich denke nicht, dass wir genug Informationen haben, um dir zu sagen "Solltest du [du] XUL lernen" - aber wenn du ein hohes Maß an Unterstützung von einer großen Community brauchst, dann solltest du wahrscheinlich einen anderen Rahmen suchen andere haben erwähnt. Wenn Sie sich durchschleichen können und es angenehm finden, Ihren Typ durchzuarbeiten, kann dies eine gute Ressource sein und Ihr Web-Hintergrund könnte Ihnen dabei helfen, den Boden zu verlassen. Wenn Sie Interesse an Firefox Extensions haben, werden diese Fähigkeiten direkt übertragen.
Da ich keinen starken Web-Hintergrund habe, wenn ich versuche, auf HTML-Anwendungen umzusteigen, vermisse ich, wie einfach es ist, in XUL eine Schnittstelle zu erstellen. Wenn Sie etwas basteln möchten, werfen Sie einen Blick auf den XUL Explorer und die XUL-Periodensystem .
Wenn Sie etwas wie C # nicht lernen möchten, könnten Sie AIR-Anwendungen mit Flex schreiben. Es hat eine Markup-Sprache, verwendet aber auch einige echte Programmierung mit ActionScript. Für mich war es eine gute Einführung in das Schreiben von Desktop-Anwendungen.
Ich bin in denselben Schuhen wie du. Bisher habe ich
angeschautund verpasste XUL ... hmm ... 1 Vorteil von XUL ist, dass ich es für Firefox Addons verwenden kann :) eröffnet Möglichkeiten.
Ich finde, dass sowohl für Titan als auch für Luft die Dokumentation etwas fehlt, daher fällt es mir schwerer, loszulegen. Ich habe wirklich mit Silverlight angefangen, aber mit WPF. für die Luft finde ich, dass sein Webkit geändert wurde, um einige css3-Funktionen zu deaktivieren like wie @font-face
und shadows :( enttäuscht
Es gibt attraktive Vorteile, wenn ich eine "native" Desktop-Programmiersprache verwende
Sehen Sie sich WPF an, das XAML nutzt, was wahrscheinlich eine nicht zu hohe Lernkurve für Sie darstellt.
Wenn Sie Ubuntu verwenden, sollten Sie sich das Mono-Framework ansehen, das auf Linux-Systemen C # ist. Es existiert eine Form von XAML, genannt Moonlight, die für Sie nützlich sein könnte. Zumindest eine Option, die Sie untersuchen können!
Tags und Links xul