2011-01-02 5 views
3

Als Web-Entwickler (PHP, Symfony, Doktrin) seit 2 Jahren, wurde ich vor kurzem von einem Freund gebeten, eine Desktop-Lösung zu entwickeln. Also habe ich ein Projekt entwickelt, eine LAMPE auf seiner Maschine installiert und er ist jetzt meistens glücklich damit. Aber ich bin nicht. Es scheint einfach nicht richtig zu sein, auf eine Serverantwort von einem lokalen Host zu warten. Offensichtlich ist PHP nicht für die Desktop-Entwicklung geeignet. Also, meine Frage ist: Welche Sprache \ Framework würden Sie einem PHP-Programmierer raten, wenn er eine Desktop-Anwendung entwickeln würde (etwas, das Sie installieren können, hat seine eigene GUI, aber nutzt die ähnlichen Konzepte von Web-Anwendungen: CSS, Javascript , orm).Wechsel von der Web- zur Desktop-Entwicklung

Ich würde gerne Python als mögliche Antwort auf meine Frage zu bringen. Hat jemand eine Erfahrung mit der Entwicklung einer Desktop-Anwendung mit Python, mit einem ORM und (oder) HTML-basierter GUI?

+0

Eine App mit HTML-basierten UI ist eine Web-App, oder?Sehen Sie sich PyGtk, PyQt, wxpython und sogar das eingebaute Tk an. – 9000

Antwort

2

Sie sollten unbedingt Python verwenden. Es ist großartig und wirklich einfach zu starten und extrem leistungsstark.

utilizing an ORM and(or) HTML-based GUI 

Bitte tun Sie dies nicht. HTML hat seine Zwecke und es ist nicht in Desktop-Apps. Bitte zwinge deine Erfahrung nicht in neue Technologien.

Sie sollten sich die verschiedenen Python-GUI-Frameworks ansehen. Tkinter, PyQt (meine Präferenz) oder GTK

+0

HTML ist eine Auszeichnungssprache. Warum nicht für Desktop-Apps verwenden? Warum nicht Browser einbinden, um Javascript zu interpretieren? Es scheint keine gute Idee zu sein, dass ein Webentwickler auf die Verwendung von jQuery und seinen Lieblings-Plugins verzichtet. – Dziamid

+0

Weil Apps, die das tun, bei weitem die schlimmsten sind, die ich je benutzt habe. Es ist nur ein anderes Paradigma. Sie interagieren mit Desktop-Apps anders als Web-Apps. HTML ist jetzt 20 Jahre alt. – Falmarri

0

Vielleicht ist Adobe AIR etwas zum Anschauen? Überprüfen Sie ihre sample applications. Wenn Sie nicht möchten, dass eine "proprietäre" Technologie verwendet wird, lesen Sie HTML5-Technologien wie Web Storage und Web SQL (nicht in der HTML5-Spezifikation). Diese Technologien sind vollständig clientseitig (können aber auch auf ein Netzwerk erweitert werden) müssen auf einen Server warten.

Ich habe keine Ahnung, wie leistungsfähig/einfach mit dem Web SQL-Weg zu arbeiten ist, aber es gibt einige gute AIR-Anwendungen da draußen.

+0

Verfügt Adobe AIR über eine Datenbank-Abstinenzschicht? Funktioniert es mit SQLite? – Dziamid

+0

AIR verwendet Adobe FlexORM, aber es gibt mehrere Alternativen. (siehe http://stackoverflow.com/questions/3299889/best-orm-for-adobe-air-flex). Es ist in der Tat SQLite. – joelcox

-1

Ist die Zielplattform Windows? Wenn ja, erwäge C# mit WPF. Die Benutzeroberfläche wird mit XAML erstellt, das HTML/CSS sehr ähnlich ist. C# verwendet das .NET-Framework. Obwohl es eine sehr viel andere Programmiersprache als PHP ist, sollte der Übergang nicht zu schwierig sein.

1

Es scheint einfach nicht richtig für eine Server-Antwort von einem lokalen Host

Genau zu warten! Haben Sie Ihre App sowohl auf der Serverseite als auch im Browser profiliert? Es gibt keine Grund für eine lokale Webanwendung, langsam zu sein, außer wenn es suboptimal entworfen oder implementiert wird. Gleiches gilt für eine Desktop-App, die in der Regel schwieriger zu erstellen ist.

Also, feuern Sie Ihren Firebug, tun Sie explain plan zu jeder Datenbank Abfrage Ihrer App Probleme, fügen Sie alle Profiling Ihre PHP-Einstellungen erlauben, und sehen, wo das Problem liegt. Höchstwahrscheinlich liegt es nicht in der Wahl der Sprache.

+0

Fairer Punkt, aber Ausführungszeit ist kein Problem. Das Problem besteht in Einschränkungen, die durch einen Webbrowser erzwungen werden. Eine echte Desktop-App sollte eine eigene GUI haben, besser auf die Systemressourcen zugreifen können. – Dziamid

+0

Ein guter Punkt, aber es sind nicht die Grenzen der Benutzeroberfläche, sondern die Geschwindigkeit, mit der sich das ursprüngliche Poster beschäftigt. Oder ich habe es verstanden. – 9000

0

Ich bin kürzlich auf ein Projekt namens Titanium gestoßen. Es ist eine Plattform für die Entwicklung von nativen Desktop (und mobilen) Anwendungen mit Web-Technologie (HTML/CSS, Javascript und Server-Side-Sprachen wie Python, Ruby und PHP! Genau das habe ich gesucht. Ich habe jedoch keine anständige gefunden Dokumentation oder Beispiele, Community ist klein, so scheint es im Moment unterentwickelt zu sein.Es zielt hauptsächlich auf mobile Entwicklung eher als Desktop Abgesehen von Titan, sehe ich derzeit keinen besseren Weg für einen Web-Entwickler zu gehen.

Verwandte Themen