Forum: PC-Programmierung Oberflächen in HTML5 programmieren? Geht das schon?


von Paul H. (powl)


Lesenswert?

Hi,

Ich würde gerne Oberflächen für Programme in HTML 5 erstellen. Ist das 
heutzutage irgendwie schon sinnvoll machbar?

Die Idee dahinter ist, dass ich mir zunächst Software zur Ausführung auf 
dem Rechner schreibe. Wenn ich jetzt aber bewerkstelligen möchte, dass 
ich diese Software auch über einen Webbrowser bedienen kann muss ich mir 
nur noch irgendwo ein Server-Programm schreiben und kann die 
HTML5-Oberfläche geringfügig anpassen. Es geht also um 
Wiederverwertbarkeit.

Bisher habe ich immer mit C# und WPF geliebäugelt aber da bin ich ja 
rein auf Windows-Systeme beschränkt. Ein HTML5-Prog bzw. ein 
Server-Programm welches mir so eine Oberfläche dann im Webbrowser 
bereitstellt kann man auch mal auf nem Raspberry Pi laufen lassen.

lg PoWl

von Rene S. (Firma: BfEHS) (rschube)


Lesenswert?

Hallo,

guck mal hier, das ist eine der schicken Sachen die mit HTML5 gemacht 
wurden. http://html5drummachine.com/

Da sind eigentlich alle Elemente drin die man braucht. Und mit der 
Canvasfunktion kannst du im Prinzip frei zeichnen.

Grüße aus Berlin

von Borislav B. (boris_b)


Lesenswert?

Könnte jQuery bzw. jQuery UI was für dich sein?

von Arc N. (arc)


Lesenswert?

Paul Hamacher schrieb:
> Bisher habe ich immer mit C# und WPF geliebäugelt aber da bin ich ja
> rein auf Windows-Systeme beschränkt.
> Ein HTML5-Prog bzw. ein
> Server-Programm welches mir so eine Oberfläche dann im Webbrowser
> bereitstellt kann man auch mal auf nem Raspberry Pi laufen lassen.

HTML5 + JS hat MS ab W8 offiziell für Apps vorgesehen ;)
http://msdn.microsoft.com/en-us/library/windows/apps/br229565.aspx

Bei WPF-Anwendungen kann JS im WebBrowser-Control mit der Anwendung 
interagieren
http://www.dotnetfunda.com/articles/article840-working-with-webbrowser-in-wpf.aspx

Mozilla arbeitet auch an so etwas
https://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/

von Paul H. (powl)


Lesenswert?

Was ich vermeiden will ist, dass ich mir mehrere Konzepte zur 
Programmierung grafischer Oberflächen simultan in den Kopf jagen muss, 
denn ich programmiere nur fürs Hobby und hab da nur begrenzt Zeit.

Lassen sich mit HTML5 überhaupt schon Programmoberflächen gescheit 
entwickeln? Ich meine, hat man da überhaupt genug (grafische) 
Möglichkeiten und gibt es da evtl. Bibliotheken?

Wenn ich mir hinterher einen Haufen Steuerelemente selber 
zusammenschustern muss geht auch wieder Zeit drauf ;-)

von Arc N. (arc)


Lesenswert?

Paul Hamacher schrieb:
> Was ich vermeiden will ist, dass ich mir mehrere Konzepte zur
> Programmierung grafischer Oberflächen simultan in den Kopf jagen muss,
> denn ich programmiere nur fürs Hobby und hab da nur begrenzt Zeit.

Die Konzepte sind ähnlich, weniger zu lesen/lernen wird es dadurch 
nicht.

> Lassen sich mit HTML5 überhaupt schon Programmoberflächen gescheit
> entwickeln? Ich meine, hat man da überhaupt genug (grafische)
> Möglichkeiten

mit Canvas und WebGL geht eigentlich alles, was man auch vom Desktop 
kennt.
Schwieriger bis unmöglich wird's, wenn auf die Hardware zugegriffen 
werden soll (serielle Schnittstelle und USB geht bspw. mit Chrome, Rest, 
gute Frage...)

> und gibt es da evtl. Bibliotheken?

Viele Bibliotheken... jQuery UI, Kendo, jQWidgets, Appcelerator usw. usf
Oder man legt sich z.B. auf das fest, was Google oder Intel für richtig 
halten
http://chrome.blogspot.de/2013/09/a-new-breed-of-chrome-apps.html
http://software.intel.com/en-us/blogs/2013/03/12/one-code-base-to-rule-them-all-intel-s-html5-development-environment

> Wenn ich mir hinterher einen Haufen Steuerelemente selber
> zusammenschustern muss geht auch wieder Zeit drauf ;-)

Ja, auch wenn man das beruflich hin und wieder macht...

von Jan H. (j_hansen)


Lesenswert?

Welche Funktionalität müssen die Oberflächen haben? Und was erwartest du 
dir von der Fünf in HTML5? Soweit ich das herauslese willst du eher 
HTML+JS, und das JS dann mit einem Framework oder jQuery.

von Rolf Magnus (Gast)


Lesenswert?

Jan Hansen schrieb:
> Welche Funktionalität müssen die Oberflächen haben?

Das ist denke ich der wichtige Punkt. Grafische Möglichkeiten hat man 
sicher viele, aber wenn man die Standardkomponenten der Oberfläche 
nutzen will mit allem Verhalten, wie sie das System bietet -  Buttons, 
Menüs, Dialoge, Maus- und Tastaturbedienung mit allen 
Standard-Tastenkürzeln u.s.w., dann wird's vermutlich auch nicht mehr 
ganz so einfach.
Da kann man dann auch sowas wie Qt nehmen, das auch für die gängigen 
Plattformen verfügbar ist und sich besser in die Plattform einfügt.

von Michael H. (hxx)


Lesenswert?

@TO:

Schau Dir mal www.sencha.com oder www.qooxdoo.org an., das
sind Frameworks wie wpf oder qt nur eben für Html/ js

Gruß
Micha

von Paul H. (powl)


Lesenswert?

Es geht jetzt nicht darum, die Anwendung nur im Webbrowser laufen zu 
lassen sondern die Oberfläche komplett mit HTML5 (als Synonym für 
HTML+JS) umzusetzen und natürlich in die eigene Software einzubetten.

Einfach aufgrund der Wiederverwertbarkeit sowohl der Oberfläche als auch 
des Wissens, wie man solche Oberflächen erstellt. Lieber konzentrier ich 
mich in meinem Hobby auf eine Technik voll als auf mehrere nur so 
halbherzig.

Natürlich könnte man dann, wenn die Applikation hinterher auch aus dem 
Browser heraus bedienbar sein soll überlegen, ob man sie generell nur 
aus dem Browser heraus aufruft und nur noch ein passendes Backend 
programmiert.

Das kann man ja dann meinetwegen auch in C# oder Java machen und ist 
dann überall lauffähig.

Und einen Browser kriegt man notfalls auch noch in ein Programmfenster 
eingebettet.

Klingt das sinnvoll?

Ach ja zur Funktionalität: Alles Mögliche von MP3-Playern über 
Terminplaner, DMX-Steuersoftware, Logikprogrammierung ähnlich zu FUP, 
Einfache "Schaltpanels" mit Buttons... also keine grafisch unglaublich 
aufwändigen 3D-Oberflächen. Sagen wir einfach und modern aber vor allem 
funktionell.

von Michael H. (hxx)


Lesenswert?

Paul Hamacher schrieb:
> Es geht jetzt nicht darum, die Anwendung nur im Webbrowser laufen zu
> lassen sondern die Oberfläche komplett mit HTML5 (als Synonym für
> HTML+JS) umzusetzen und natürlich in die eigene Software einzubetten.
>

> Und einen Browser kriegt man notfalls auch noch in ein Programmfenster
> eingebettet.

Also hier gibt es auch Möglichkeiten:
Chrome und andere Browser bieten Möglichkeiten "HTML"-Anwendung nach dem 
Download "Offline" zu nutzen (Bei Chrome Stickwort "Offline Apps" und 
"Packaged Apps").

Ebenso gibt es Packager, z.B. auch bei Sencha, bei denen das HTML/JS 
dann mit einem Browser-Kern gebunden wird und so zu ener 
StandAlone-Anwendung wird. Solche Mechanismen erlauben dann Teils auch 
den Zugriff auf Resourcen des lokalen Rechner (in gewissem Umfang), was 
bei reinen Browser
Anwendungen aus Sicherheitsgründen sehr eingeschränkt ist.

Wenn aber die rasche und "installationslose" Ausführung der Anwendung
als "Webseite" im Browser nicht ein Primärziel ist, sondern schon von
vorne herein es eher eine DesktopAnwendung werden soll, würde ich 
ehrlich gesagt aber in Deinem Fall eher zu QT greifen
(oder z.B. Python+QT, Py+GTK etc., evtl. auch Java). U.a. Zugriff auf 
lokale Resourcen des Rechner, weil die vorher genannten Möglichkeiten 
IMHO noch nicht "erwachsen" sind und nicht zu letzt weil ich
HTML/JS softwaretechnisch nicht wirklich für das gelbe vom Ei halte 
(aber das muss jeder für sich entscheiden.)

> Natürlich könnte man dann, wenn die Applikation hinterher auch aus dem
> Browser heraus bedienbar sein soll überlegen, ob man sie generell nur
> aus dem Browser heraus aufruft und nur noch ein passendes Backend
> programmiert.
Separater Backend empfiehlt sich IMHO auf jeden Fall:
Getrennter, einfacher und universeller Backend der z.B.
JSON oder XML-Nachrichten per HTTP empfängt und sendet, damit bleibt man 
im Frontend flexibel, egal ob Desktop, Browser, Mobile oder
gar CommandLine App für Batch-Automatisierung, dann ist alles drinne.


Gruß
Micha

von Jay W. (jayway)


Lesenswert?

Hallo Paul,

es gab mal ein Betriebssystem, dass deinen Wunsch umgesetzt hatte. 
Nannte sich WebOS und wurde von Palm entwickelt. HP hat es übernommen, 
weiterentwickelt und nach der Ankündigung zukünftig auch seine PCs und 
Laptops damit auszustatten, doch stillschweigend beerdigt. Demnächst 
wird wohl LG es für die Bedienung seiner Fernseher einsetzen.

Der Unterbau war Linux mit WebKit-Aufsatz und einem JS-Framework wie 
Mojo oder Enyo. Die Anwendungen wurden in HTML+CSS+JS erstellt. Alle 
notwendigen Hardware/System-Zugriffe etc. wurden durch das Framework 
bereitgestellt.
Zusätzlich gab es für Anwendungen wie Spiele auch eine Möglichkeit mit 
C/C++ Anwendungen zu erstellen.

http://de.wikipedia.org/wiki/WebOS

Gruß Jay

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.