Nehmen wir an, die folgenden zwei Annahmen sind wahr.
- Ihre gesamte Nutzerbasis hat überall Breitbandzugang
- Es gibt einen imaginären Browser X, der die gesamte Entwurfsspezifikation der HTML5- und WHATWG-Gruppen konsistent implementiert und alle Benutzer verwenden Browser X.
Was sind die inneren Grenzen eines kommerziellen öffentlichen HTML5 Web - Anwendung , dass wir für die kommerzielle öffentliche Desktop - Anwendungen benötigen?
Ich interessiere mich für die Einschränkungen von Plugin-freien Webanwendungen, die für zusätzliche Funktionen nicht auf Flash / Java / SilverLight / etc-Bridges oder für zusätzliche Funktionen auf Browser-Plugins angewiesen sind.
Mögliche Einschränkungen, die nicht zutreffen:
- Datenbanken? Wir haben WebSQL und indexedDB.
- Datei IO? Wir haben die HTML5-Datei-API, die sowohl lesen als auch schreiben kann.
- Geschwindigkeit? Mit dem letzten Rennen der JavaScript-Engine ist der Browser nicht mehr langsam. Native C ++ ist nur dreimal schneller als die V8-Engine von Chrome.
- Entwicklungswerkzeuge? Das Web ist ausgereift und es gibt eine ganze Reihe von Tools, die zu zahlreich sind, um sie aufzulisten.
- Geschlossene Quelle? Ja, der gesamte Code ist Open Source. Dies ist ein zweischneidiges Schwert und es gibt zahlreiche Meinungen zur Verwendung von Closed Source oder Open Source Code. Ich persönlich glaube, dass die Vorteile von Open Source Code die Nachteile überwiegen.
- JavaScript / HTML5? Argumente wie "Ich persönlich denke, HTML5 und EcmaScript sind schreckliche Entwicklungsplattformen" zählen nicht.
Bekannte Einschränkungen:
- Kritischer Echtzeit- / Sicherheitscode (streng geheim) gehört nicht ins Web und kann es auch nicht. Es muss in einer einfachen, gut kontrollierbaren Sprache wie C oder C ++ geschrieben sein.
- Jedes Tool, das mit einer fremden Hardware eines Drittanbieters interagieren muss, die an Ihren Computer angeschlossen ist, kann nur schwer mit Ihrer Webanwendung kommunizieren.
Es gibt auch eine ganze Reihe von Programmen, die nicht ins Web gehören. Betriebssysteme, Treiber, Serversoftware, Low-Level-APIs. Ich bin mir dessen bewusst, klassifiziere sie jedoch nicht als "kommerzielle öffentliche" Anwendungen. Dies ist die Art von Software, die auf Computern vorinstalliert werden kann.
Abgesehen davon weiß ich, dass die beiden Annahmen schrecklich unrealistisch sind, aber wir könnten sie in 5/10/20/30 Jahren erreichen. Ich interessiere mich für die Art der Anwendungen und die Funktionen der Anwendungen, die sie vollständig mit dem Web inkompatibel machen .
Motivation:
Der Punkt:
Angesichts der Reihe von Problemen, bei denen eine Desktop-Anwendung eine gültige Lösung ist.
- Warum ist eine Webanwendung keine gültige Lösung?
- Wie erkenne ich, ob ich eine Webanwendung als Lösung verwenden kann?
Ich habe versucht, die Hauptschwierigkeiten bei Webanwendungen (Internetverbindung und Browserunterstützung) zu beseitigen, indem ich behauptete, dass sie nicht existieren.
Abgesehen davon sind HTML5-Offline-Anwendungen und Modernizr auf dem besten Weg, beide Probleme zu lösen.
Was sind die anderen Schwierigkeiten bei der Entwicklung von Webanwendungen?
Antworten:
Aus meinem Kopf ...
quelle
Grundsätzlich kann alles, was in das Server / Client-Modell passt, eine gute Webanwendung ergeben, und ispo facto kann auch das Gegenteil gesagt werden. Der Trend, ins Web zu wechseln, ist so schnell eingetreten, dass Programme das Modell und den Controller von seiner Ansicht trennen können, wenn man sieht, wie die meisten Programme in Model / Controller / View modelliert werden können.
Natürlich wird aus Effizienzgründen ein Controller auch auf der Clientseite platziert, um eine Überlastung des Servers mit fehlerhaften Anforderungen und Daten zu vermeiden.
Mein Punkt ist jedoch: Welche Programme passen nicht zur Modell- / Controller- / Ansichtssoftwarearchitektur, da es sich wahrscheinlich um dieselben Programme handelt, die nie in Webanwendungen konvertiert wurden. Gute Beispiele, die mir in den Sinn kommen, sind Betriebssysteme, Taskplaner, Eingabeaufforderung, Virenschutz und Spyware-Schutz. Jedes davon ist wahrscheinlich nicht auf einer Website implementiert, da es nicht zum Modell passt. Und es ist kein Zufall, dass jedes einzelne dieser Programme stark von Ihrem System abhängt. Die meisten erfordern direkten Zugriff auf Hardware, während andere lediglich eine höhere Sicherheit benötigen, um ausgeführt werden zu können, und nicht vertrauenswürdig sind, um von Internet-Websites ausgeführt zu werden.
Natürlich passt Google dieses Konzept mit seinem neuen Betriebssystem komplett neu an. Angeblich ist es im Gegensatz zu Windows nicht einfach ein System, das das Internet zunehmend nutzt, sondern ein System, das stark davon abhängig ist. Bald werden möglicherweise alle diese Programme online verfügbar sein und den Zugriff auf Ihre Hardware und Software ermöglichen, wenn eine strikte Zertifikatauthentifizierung durchgeführt wird, um zu verhindern, dass nur eine Site dazu in der Lage ist, sondern vertrauenswürdige Sites. Ich bin gespannt, was sie sich einfallen lassen, da ich in 20 Jahren denke, dass Computer nicht mehr mit installierbarer Software hergestellt werden. Vielmehr werden alle Dienste online verfügbar sein.
quelle
Die Software, an der ich gerade arbeite, hat sowohl einen Desktop-Aspekt als auch einen webbasierten Aspekt, gerade weil sie Daten von Peripheriegeräten von Drittanbietern erfassen muss. Der Entwicklungsbedarf für Treiber und ein Client-Desktop-Programm, um die Lücke zwischen Gerät und Web zu schließen.
Dies schließt Webanwendungen jedoch nicht aus, da diese Art von Desktopanwendungen dünn sein kann und sich die Logik hauptsächlich auf dem Server befindet.
Andererseits kann man unter dem Aspekt des Cloud Computing und der Massenvirtualisierung sagen, dass keine Anwendung notwendigerweise durch die Einschränkungen und Sicherheitslücken der Webtechnologie eingeschränkt werden muss. Das Ausführen von Desktop-Anwendungen aus einer virtualisierten Umgebung auf einem dummen Terminal (ähnlich wie Citrix) ist viel einfacher zu erreichen und könnte die nächste "Modeerscheinung" der Entwicklung sein.
Das Fazit ist, dass es jetzt mehr Auswahlmöglichkeiten als je zuvor gibt und viel mehr sprechende Köpfe die Technologie von morgen als den "besten" Weg spielen.
quelle
Ok, dann ist hier das Problem: Dieser Browser wird von Natur aus unsicher sein. Sie bitten uns also, einen Kompromiss zwischen den beiden zu schließen. Wenn Sie jedoch darüber hinwegkommen und davon ausgehen, dass wir Javascript haben (auf das Sie in Ihrem Beitrag hingewiesen haben), erhalten Sie die Antwort, dass es keine App gibt, die nicht nur mit HTML5 / Javascript geschrieben werden kann. Wir gehen jedoch von einem Browser aus, der nicht im Weg steht.
Das Ding hat einen lokalen Datenbankspeicher, kann über HTTP-Anfragen (von denen ein RESTafarianer sagt, dass dies ausreichend ist) Anrufe auf jede andere Plattform tätigen und (über Canvas) so gut wie alles zeichnen, was Sie wollen. Es gibt bereits 3D-Spiele, die mit offenen Standards (OpenGL ish) geschrieben wurden, und es gibt APIs, mit denen Sie fast alles tun können, was Sie wollen.
Der einzige wirkliche Nachteil ist die Geschwindigkeit. Es wird einige Zeit dauern, bis diese HTTP-API-Aufrufe an andere Systeme (Datenbanken) gesendet werden. Es wird einige Zeit dauern, um FILE (COM1 :) -Anfragen zu verarbeiten (um beispielsweise ein serielles Gerät unter Windows zu lesen). Dies sind also die Problembereiche, die ich erwarten würde. Natürlich gehe ich auch davon aus, dass Treiber so geschrieben sind, dass wie Dateien darauf zugegriffen werden kann, was meiner Meinung nach nicht mehr stimmt. Aber sie könnten einen solchen Mechanismus aufdecken;)
Für den Benutzer wird nicht viel anders sein.
quelle