2009-02-20 4 views
6

Entschuldigung für das lange Intro - nur versuchen, die Szene angemessen einzustellen, um Mehrdeutigkeiten und Verwirrung zu vermeiden.Graceful Degradation außerhalb der Domäne von Web-Anwendungen: Wie wichtig ist ein Problem?

Webanwendungen sind von dummen browserbasierten Schnittstellen für serverseitige Logik hin zu vollständig browserbasierten Anwendungen mit minimalem Bedarf an serverseitiger Logik gewachsen. Es ist möglich, diese Entwicklung zu beschreiben, indem klare Generationen von Webanwendungen identifiziert werden.

Betrachten wir im Moment nur zwei Generationen: Pre- und Post-Ajax. Es gibt sicherlich noch andere Faktoren, wie zum Beispiel CSS-Unterstützung und Access Control-Header, aber fangen wir einfach damit an.

Ausgehend von einem style-less-einfachen JavaScript-System ist es eine herausfordernde und fehleranfällige Aufgabe, eine Reihe von Verbesserungen zu implementieren, die eine Ajax-Lösung enthalten. Es ist keineswegs einfach.

Welcher Generation eine Webanwendung zu erscheinen scheint hängt von den Mitteln ab, über die auf die Anwendung zugegriffen wird. Die gleiche Webanwendung scheint eine App der ersten Generation zu sein, wenn sie über Lynx und eine App der neuesten Generation über FireFox 3.1 aufgerufen wird. Je nachdem, welcher Useragent auf die App zugreift, liegen dazwischen einige Ebenen.

Das Problem eine Web-Anwendung zu erstellen, die auf den Fähigkeiten des User-Agenten anmutig abbaut abhängig, wo etwas geschaffen Vorteil von aktuellen Browser-Funktionen zurückkehren vor, um die Funktionalität von etwas geschaffen vielleicht 15 Jahren würde zurück zu nehmen, wenn konfrontiert mit Lynx, ist sehr hart.

Ich kann mir eine Desktop-Anwendung nicht vorstellen, die einer solchen Abweichung in der Betriebsumgebung gegenübersteht.

Eine einzelne ausführbare Datei (im Gegensatz zu einer Reihe von Betriebssystem-spezifischen Varianten), die Funktionen in Vista nutzen kann, wird unter Windows XP und ohne bestimmte Vista-Funktionen gut funktionieren. Um über eine vergleichbare Entfernung wie eine Web-App zu degradieren, müsste die gleiche Desktop-Anwendung immer noch funktionieren, wenn auch in einer weniger anschaulichen Weise, wenn sie in einer Befehlszeilenumgebung wie DOS ausgeführt wird.

Führen Sie es unter Lynx, es ist eine Web App der ersten Generation. Führen Sie das gleiche unter FireFox 3.1, es ist eine schicke, glänzende zeitgenössische Web-App. Wenn Sie mit solch einem Problem konfrontiert werden, würden Sie es als schwierig, schwierig, aber machbar betrachten.

Führen Sie es unter DOS, es ist eine Befehlszeilenanwendung. Führen Sie es gleich unter Vista, es ist eine schicke, glänzende zeitgenössische Web-App. Wenn Sie mit solch einem Problem konfrontiert werden, würden Sie es für verrückt halten. Oder würdest du?

Haben Desktopanwendungen jemals eine so große Varianz in den Betriebsumgebungen wie Webanwendungen?

Ist dieses Problem (die Breite der Varianz, nicht die Varianz selbst) einzigartig für die Domäne von Webanwendungen oder kann es in der Desktopentwicklung gefunden werden?

Antwort

1

Desktop-Anwendungen haben nicht die gleichen Probleme, die Web-Anwendungen in dieser Hinsicht haben. Sie werden normalerweise auf einer gut definierten Plattform ausgeführt.

Dies könnte sich in Zukunft ändern. Das Computing verlagert sich von Desktops auf Mobiltelefone und kleinere Laptops. Desktop-Anwendungen müssen in Zukunft auf einer größeren Vielfalt von Plattformen laufen. Dies kann zu Problemen führen, da die meisten Frameworks, die wir zur Entwicklung von Desktop-Anwendungen verwenden, dies sogar noch schlechter handhaben als das Framework für Web-Anwendungen.

+0

oh, ich weiß nicht .. QT ist wirklich ziemlich gut für Cross-Plattform-Entwicklung. Ihr größtes Problem werden dann Gerätefunktionen sein - z. B. die Bildschirmgröße eines Telefons im Vergleich zum Desktop. – gbjbaanb

+0

Ich stimme zu, Cross-Plattform-Entwicklung ist bereits mit mehreren Sprachen und Frameworks möglich. Bei der grazilen Degradierung geht es jedoch bei Bedarf um eine geringere Bildschirmauflösung, Bandbreite, CPU, Speicher usw.. Qt oder andere Frameworks behandeln das nicht wirklich gut. – Mendelt

0

Im Bereich der Anwendung und Betriebssystem (OS) ist das Problem in der Regel umgekehrt. Es ist das Betriebssystem, das die Komplexität der Aufrechterhaltung der Kompatibilität bewältigt. Auf der anderen Seite diktiert die Anwendung in der Regel eine minimale OS-Version.

Ein anderer Ort, wo Anwendungen beginnen, dieses Problem zu sehen, ist die Java-Welt und in geringerem Maße alle anderen sogenannten Skriptsprachen, die auf Multi-OS funktionieren.

1

Ich kann mir eine Desktop-Anwendung nicht vorstellen, die einer solchen Abweichung in der Betriebsumgebung gegenübersteht.

Desktop-Anwendungen müssen mit Abweichungen umgehen, nur von anderer Art. Grafikkarten in Spielen sind ein gutes Beispiel dafür: Sie wollen eine ordentliche Unterstützung für Basiskunden, aber Ihr High-End-Kunde mit der glänzenden neuen Grafikkarte wird einen Lauf für ihr Geld wollen. Wenn Sie in den Bereich der On-GPU-Verarbeitung und On-Card-Speicherverwaltung eintreten, haben Sie Grund genug, die Varianz in den Betriebsumgebungen zu mindern.

Sie beschäftigen sich im Allgemeinen auch mit mehr prozessor- und speicherintensiver Software als mit einer Web-App, also müssen Sie dies ebenfalls berücksichtigen. Und ich spreche nicht einmal über Inter-OS-Bedienbarkeit (die viele Desktop-Software sehr anmutig handhaben).

Natürlich hält nichts einen Desktop-Software-Publisher strenge Kriterien für die Umwelt. Es ist nur eine Frage des Geschäfts. Aber nichts zwingt Sie auch nicht-Mainstream-Browser zu unterstützen (und unterstützen die meisten Web-Anwendungen wirklich Lynx?!?).

+0

"Und unterstützen die meisten Webanwendungen Lynx wirklich?" - Lynx wurde erwähnt, um die mögliche Breite der Varianz in der Betriebsumgebung zu demonstrieren, d. H. Obwohl es selten ist, ist es nicht unmöglich, eine solche Abweichung zu unterstützen. –

+0

Wenn Sie Äpfel mit Äpfeln vergleichen möchten, sollten Sie überlegen, was in beiden Welten als "Mainstream" gilt. Für mich ist das Äquivalent zur Unterstützung von Lynx wie die Unterstützung von Vista und einer 10 Jahre alten Version von RedHat (was in vielen Fällen eine vernünftige Anforderung sein könnte) – Kena

+0

Vista/RedHat ist nicht ganz das Gleiche. Sie würden nicht die gleiche ausführbare Datei für beide verwenden, Sie hätten für beide sehr ähnliche betriebssystemspezifische Varianten. Der Vista/RedHat-Vergleich ähnelt eher einer Lynx-spezifischen Version Ihrer Web-App und einer separaten FireFox/IE/Safari/Chrome/Opera-Version. –

Verwandte Themen