HTML/CSS HTML, CSS, JavaScript und Konsorten als GUI-Ersatz?

SvenF311

doesn't like
ID: 151941
L
24 April 2006
307
61
Hallo!

Einer meiner Kollegen hat neulich (wiederholt) angedeutet, dass ich meine Qt/C++ GUIs doch eigentlich viel besser und noch viel portabler mit HTML5 realisieren könnte/sollte.

Meine HTML-Kenntnisse sind seit ca. 10 Jahren überholt, daher möchte ich mich hier etwas schlau machen. Wäre es aktuell möglich z.B. einen eMail-Client (bestehender Freemail-Account, pop3/smtp) als Teil einer Website zu implementieren? Also quasi einen Thunderbird, der nicht kompiliert werden muss sondern direkt im Browser ausgeführt werden kann?

HTML5, CSS3, JavaScript, ... was müsste ich dafür alles können? Welche Bücher wären diesbezüglich empfehlenswert? Und warum ist dieser Kollege eigentlich noch nicht in meinem Spam-Filter? :evil:

MfG
Sven
 
Die benötigten Elemente sind überschaubar, haben jeweils aber viele mögliche und teilweise wichtige Spezialgebiete. Sich hier sofort parallel in alle für so ein Projekt einzuarbeiten könnte eine echte Herausforderung sein.

  • HTML. Du brauchst nicht zwangsläufig HTML5. Im Bereich HTML hat sich in den letzten 10 Jahren nicht soooo viel verändert, was man nicht auch mit den alten Kenntnissen hinbekommt. Hauptsache ist einer aktueller Doctype (z.B. XHTML) der valide verwendet wird, damit möglichst alle Browser damit klar kommen.
  • CSS ist fürs Aussehen gut. Da kann man sich auch sehr spezialisieren, was hier aber nicht wirklich nötig sein wird. Die einfachsten Grundelemente sollten reichen. Aber auch dann ist nicht ausgeschlossen, dass das Fluchen auf den Internet Explorer einkehrt.
  • JavaScript kann helfen um das Verhalten eines lokalen Programms zu simulieren, d.h. eine Benutzereingabe, ein Zeitablauf, usw., kann ein sofortiges Ergebnis liefern, ohne dass die komplette Seite neu geladen werden muss. Ist natürlich ganz schick. Das Spezialthema nennt sich AJAX. Es ginge aber theoretisch auch ganz ohne. Kommt eben drauf an wie komfortabel es der jeweilige Benutzer haben soll.
  • PHP als Vertreter einer serverseitigen Sprache, was C++ im Aussehen schon mal nicht so unähnlich ist, wobei ich mangels C++-Vergangenheit nicht sagen kann wie leicht oder schwer oder "gut" der Umstieg ist. Hier werden für das Hauptelement gar nicht mal so viele Funktionen benötigt (es gibt auch durchaus schon fertige Mailklassen, die senden, empfangen usw. können), jedoch auch viel drumrum bis mal ein ganzer Mailclient steht.
  • MySQL als Datenspeicher. Auch hier gibt es viele Spezialgebiete und einfache Strukturen sollten reichen.
  • Apache für den Server, damit alles andere läuft. Einfachste Variante ist ein fertiges Hostingangebot zu wählen.
  • Sicherheit. Das betrifft die Servereinstellungen (soweit bei Fremdhosting möglich), die Art der PHP-Verwendung (unsichere Stichworte register_globals, ..), die Art der SQL-Verwendung (unsichere Stichworte SQL-Injections, ..), die Art der JS-Verwendung (unsichere Stichworte XSS) und auch die grundlegende Überprüfung von Benutzereingaben auch an Stellen an denen man sie nicht vermutet.
Ich denke mal das sind die wichtigsten Themengebiete. In deren Kombination kann man schon ziemlich machen. Der Aufwand steigt natürlich je schöner, komfortabler, schneller und sicherer eine Anwendung sein soll.
 
Äh klar, für die Optik wäre natürlich auch Grafiken allgemein ein weiterer Punkt geworden. Ich meinte mit den Grundelementen eher, dass man nun nicht jede Positionierungsart etc. beherrschen muss. Man kann sich ja das HTML so halbwegs zurecht legen, damit das CSS möglichst einfach wird. Selbst ich kann noch nicht aus jedem HTML-Gerüst jedes gewünschte Ergebnis machen und bisher habe ich auch noch nie die Tiefen der CSS-Möglichkeiten gebraucht.
 
Aber wenn du schonmal sehen willst, wie ein Web-basierter Mail-Client aussehen kann, schau mal hier: https://www.123together.com/d/exchange_hosting_demo.xhtml
:arrow: Roundcube
ist ein weiteres Beispiel für ein Online-Thunderbird, ist denke ich ein schönes Beispiel was möglich ist (sogar Mails verschieben mit Drag'n'Drop).


Man muss aber nicht unbedingt die Software ins Web verlagern, mit Adobe Air ist es z.B. auch andersherum möglich mit Web-Technologien (HTML5, JavaScript und CSS3) Desktop-Applikationen zu bauen.
 
Besten Dank für die schnellen Antworten. Jetzt bin ich zumindest wieder einigermaßen auf dem Laufenden und kann etwa abschätzen, dass der Aufwand sogar noch größer wäre, als ich bislang befürchtet habe. Zumindest für mein aktuelles Projekt sind Apache / PHP ein absolutes KO-Kriterium. Danke!

MfG
Sven