Ich frage das, weil ich bei der Arbeit eine Webanwendung entwickeln soll, die von zwei Personen in einem Intranet verwendet wird. Es ist eine Anwendung, die einige Zustände in einem Arbeitsablauf beibehalten sollte. Also muss ich Daten in einer Sitzung aufbewahren und muss mich um Nebenläufigkeit kümmern. Es wäre so viel einfacher, eine normale Desktop-Anwendung zu entwickeln. Aber der Klient war klar darüber (ich wünschte, alles in der Spezifikation wäre so klar): Er möchte eine Webanwendung.
Ich weiß, dass viele Leute keine Anwendungen installieren wollen, aber hier sind zwei Benutzer, und ich kann sie auf ihren Computern installieren.
Ich möchte also wissen: Aus welchen Gründen sind Webapps heutzutage so beliebt? Ist es ein Hype und in zwei Jahren werden die Kunden mehr Desktop-Anwendungen verlangen? Oder gibt es etwas an Webapps, das sie besonders sexy / ansprechend macht?
Ihr Punkt im Allgemeinen ist falsch: Web-Anwendungen sind nicht beliebter als lokale Anwendungen.
In Ihrem speziellen Fall möchte der Client wahrscheinlich folgende Vorteile nutzen:
Wenn Sie mit Ihrer Bewertung nicht einverstanden sind, könnten Sie versuchen, sie davon zu überzeugen, dass Ihre Erfahrung darauf hindeutet, dass eine Web-App hierfür nicht am besten geeignet ist.
Oder vielleicht sollten Sie in Betracht ziehen, Continuation-basierte Web-Frameworks wie Seaside zu erkunden. Sie machen den persistenten Zustand durch statuslose Interaktionen einfacher.
Die häufigsten Gründe für IMO sind
Die meisten Posts, die ich bisher gesehen habe, versuchen, Web-Apps zu rechtfertigen, indem sie sagen, dass sie die Bereitstellung vereinfachen, die "OS Wars" beseitigen, Upgrades einfach sind, etc.
Der Sinn der Software liegt jedoch darin, den Endnutzern die Möglichkeit zu geben, produktiv zu sein. Das große Verkaufsargument einer Web-App macht die Arbeit eines Software-Profis ein wenig einfacher. Es ist sehr, sehr schwer, eine Rich-Web-Anwendung zu erstellen, die sich im Vergleich zu einer Desktop-App vorteilhaft verhält. Normalerweise gibt es viele Usability-Kompromisse, die gemacht werden müssen.
Manchmal sind diese Kompromisse lohnenswert, aber das Hauptziel sollte immer sein, dem Endbenutzer die bestmögliche Erfahrung zu bieten. Ich habe sehr wenige Web-Apps gesehen, die das genauso machen wie Desktop-Anwendungen.
Natürlich können Sie sagen "aber die Run-from-any-Browser-Funktion ist für den Benutzer". Vielleicht, aber ich werde eine schwer zu implementierende, aber einfach zu bedienende App über die einfach zu implementierende - aber nicht so einfach zu bedienende App an jedem Tag der Woche, wenn es ist etwas, mit dem ich regelmäßig interagieren muss.
Ich benutze Turbotax online, weil es ein einmaliges Jahr ist und die Instant-Update-Funktion ist entscheidend, aber ich möchte Quicken nicht aus einer webbasierten App heraus ausführen. Auf keinen Fall, nein wie.
Nun, Web-Anwendungen können einfacher zu pflegen sein. Wenn Sie die Datenstruktur eines herkömmlichen Desktop-Clients aktualisieren, müssen Sie sicherstellen, dass die Client-Software die korrekte Version aufweist. In einer Webanwendung ist dies keine große Sache.
Tippfehler / Bugs können auch leichter behoben werden - Sie müssen sie nur einmal aktualisieren und erneut bereitstellen. Eine herkömmliche Desktop-App müsste sich automatisch aktualisieren oder (wenn Sie wirklich ein Sado-Masochist sind) manuell aktualisiert werden.
Nachdem ich sowohl herkömmliche Desktop-Clients als auch Web-Apps verwendet habe, würde ich Web-Apps wählen.
Allerdings , ich bin überrascht, dass eine so kleine Anwendung eine Webanwendung sein müsste.
Für mich ist der Hauptgrund, Web-Anwendungen gegenüber Desktop-Anwendungen zu bevorzugen, dass sie so einfach zu verteilen sind. Ich muss die App nicht installieren, ich muss mir Sorgen machen, ob sie aufgrund eines Client-Problems wie einer Personal Firewall oder eines Konflikts mit anderen Apps usw. nicht funktioniert.
Ein weiterer Grund ist, dass ich Updates für die App einfach veröffentlichen kann.
Vielleicht ist die Antwort für Sie einfach, dass beides genauso gut funktioniert. Ohne weitere Informationen kann ich nicht erkennen, dass es einen überwältigenden Grund gibt, warum Ihre App besser als Web-App funktioniert. Aber aus den oben genannten Gründen sind Web-Apps sehr ansprechend.
Um ehrlich zu sein, denn Web-Anwendungen hatten bereits im Pre-Net-Tag drei große Vorteile gegenüber COM-basierten Winforms-Apps, die sie in fast allen Situationen sehr vorteilhaft machten.
%Vor% Diese Probleme waren von Bedeutung, weil sie für eine Winforms-Anwendung damals ein Alptraum waren, besonders Punkte 1 & amp; 2. ("dll Hölle")
Als .Net veröffentlicht wurde, wurden die ersten beiden Punkte ... .Net-Anwendungen, mit Klick einmal Bereitstellung, und keine Abhängigkeit von Registrierungsschlüsseln / GUIDS für die binäre Wieder- und Komponenten-Interoperabilität (Die Metadaten zur Implementation binäre Verträge ist in der Komponente gespeichert selbst, anstatt in der Maschinenregistrierung), diese Fragen wurden strittig.
Im Allgemeinen ist der einzige Grund, warum Sie heutzutage eine Webanwendung bevorzugen, # 3, wo Ihre Kundenbasis Nicht-Wintel-Plattformen enthält.
Es ist unmöglich zu beantworten, ob Web-Anwendungen beliebter sind als lokale Anwendungen. Natürlich gibt es bestimmte Arten von Anwendungen, die für das Internet besser geeignet wären.
Es wurde bereits erwähnt, dass Web-Anwendungen diese wahrgenommenen Vorteile haben:
Wenn diese Vorteile gut mit Ihrer Wahl der Anwendung funktionieren, dann großartig! Entwickeln Sie für die Online-Welt und profitieren Sie von den Vorteilen. Das Problem tritt auf, wenn Ihre Anwendung nicht für die Online-Welt geeignet ist. Versuche, eine Online-Version von Spore zu implementieren und zu sehen, wie weit du kommst.
Um die Dinge zu vereinfachen, ist die einzige Zeit, in der eine Webanwendung besser als eine Desktopanwendung ist, wenn die erforderliche Funktionalität und die Geschäftsanforderungen zeigen, dass die Online-Nutzung besser wäre als die lokale Verwendung. Mein Freund arbeitet in einem O2 Phone Shop und ihre neue Benutzerregistrierungsanwendung ist eine Online-Anwendung. Auf diese Weise können alle Daten lokal im Geschäft gespeichert und gleichzeitig an die Hauptniederlassungen übertragen werden, um sicherzustellen, dass das Telefon aktiviert ist. Diese Art von Anwendung ist für das Web geeignet, da sie an hunderten von Orten installiert werden muss und Daten lokal und in den Hauptniederlassungen protokollieren muss .
Aufgrund meiner persönlichen Erfahrung gibt es heute wenig Grund, eine Online-Bewerbung zu verwenden. Sehr wenige von ihnen haben große Vorteile für ihre Desktop-Kollegen, und bis eine Killer-App ankommt, gibt es keinen Grund, sie zu ändern.
Ich stimme Rich nicht zu, dass nach meiner Erfahrung Web-Anwendungen populärer sind, aber das hängt davon ab, was Sie unter Popularität verstehen.
Was ich in diesem Fall mit der Popularität meine, ist, dass ich, wenn ich einen zufälligen Programmierjob bei einer zufälligen kleinen oder mittelgroßen Softwarefirma akzeptiere, erwarten würde, dass sie an Software für das Web arbeiten. Es gibt natürlich viele Ausnahmen von dieser Regel, aber der generelle Trend für den größten Teil eines Jahrzehnts ist nun der Web-Entwicklung.
Viele der anderen Antworten geben gute Gründe für die Web-Entwicklung:
Der große ist meiner Meinung nach, wie Rich sagt, "reduzierte Kosten". Web-Entwicklung hat eine sehr geringe Eintrittsbarriere gegenüber anderen Programmiermethoden. Sie können mit HTML und CSS beginnen, mit JavaScript fortfahren, zu PHP und Flash wechseln und sich an dieser Stelle selbst als Webentwickler bezeichnen. Umgebungen wie C ++ und Java haben im Vergleich dazu eine brutale Lernkurve.
Nach meiner Erfahrung sind geschäftstüchtige Leute so in der "einfachen" Webentwicklung gefangen, dass sie oft vergessen, dass es Alternativen gibt. Ich war einmal bei einem Projekt, bei dem ursprünglich ein Webprojekt angefordert wurde, und der Projektmanager war überrascht, als das Entwicklungsteam sagte, dass eine Desktopanwendung angesichts der Anforderungen billiger zu entwickeln sei. Nichttechniker können einfach davon ausgehen, dass eine Webanwendung weniger kostet, weil sie den Unterschied nicht verstehen.
"Ich kann es auf den Computern von ihnen installieren." Und wenn Sie im Lotto gewinnen, was dann? Wer kümmert sich jetzt um diese liebevoll handgefertigten Desktops, Desktops mit einzigartiger Software?
Die zentrale Verwaltung einer Web-App - auch für zwei Personen - ist für eine Organisation von großem Wert.
Einige zusätzliche Gründe:
Mit einer Desktop-App müssen Sie entweder die Plattform / das Betriebssystem auswählen oder ein Tool verwenden, das (Hah!) Multi-OS-Fähigkeit verspricht (und dann die Hass-Mail von allen Seiten behandelt, wenn die Desktop-App anders aussieht) Irgendwelche von ihnen sind "zu verwenden gewöhnt".
Wie bereits gesagt, Upgrades sind so einfach wie das Umstellen des Codes auf den Server. Kein Muss, kein Aufhebens. Das Aktualisieren von Desktop-Apps kann ein Albtraum sein, insbesondere wenn Sie eine neue Version mit neuen Tools entwickeln und plötzlich alle anderen Komponenten (dlls, binaries, was auch immer) auf allen Desktops aktualisieren müssen. Im schlimmsten Fall funktioniert Ihre neue Version möglicherweise nicht einmal auf einem älteren Betriebssystem, da die Binärbibliotheken mit dem Betriebssystem geliefert werden. SO, jetzt aktualisieren Sie OS (und Hardware - yikes!) Auch.
Für eine Vielzahl von Anwendungen ist das Web-Interface einfach perfekt, besonders wenn Sie die Standardanwendung "Lesen, Schreiben, Bericht - aus der Datenbank" erstellen, ist das Web-Interface ziemlich anständig. UND es ist ziemlich gut in den meisten Browsern (siehe # 1). Desktop-Apps haben eine schlechte Tendenz, sich im aktuellen "schicken UI-Trend" zu verlieren (erinnern Sie sich daran, dass jede Windows-App mehrere Fenster haben musste). Die Menge an Code, die Sie nicht schreiben müssen, kann ziemlich viel sein.
Der KUNDE hat immer Recht. Jetzt ist der Vorbehalt, dass Sie als Designer / Entwickler so weit wie möglich in den Kopf des Kunden gelangen und ermitteln müssen, WARUM sie nach bestimmten Anforderungen fragen. Stellen Sie sicher, dass das IST-Problem zuerst gelöst wird, aber wenn das der Fall ist, dann verschieben Sie auf die Wünsche des Kunden.
Prost,
-R
Webbasierte Anwendungen sind bei Anwendungsbenutzern nicht beliebter.
Aber Anwendungsbenutzer zahlen oft nicht für ihre eigene Software.
Software-Käufer treffen keine Entscheidungen aufgrund technischer Vorteile.
Zunächst denke ich, dass es eine (kleine) Unterscheidung zwischen einer Web / App und einer Client / Server-App gibt. Die Webapp ist eine Art Client / Server-App, bei der der Server vollständig außerhalb der Kontrolle des Kunden liegt und der Client ein Browser ist. Eine Client / Server-App ist eine, in der der Kunde sowohl den Server als auch den Client besitzt und kontrolliert. Ihr Fall klingt eher wie eine Client / Server-App, keine Webapp an sich.
Zusätzlich zu all den Gründen, die alle erwähnt haben, warum Webapps attraktiver sind, vergessen Sie nicht zu erwähnen, dass die meisten von ihnen eine kostenlose Version anbieten. Nicht nur eine zeitlich begrenzte oder verkrüppelte Version, sondern eine kostenlose Version, die Sie für immer oder bis zum Abbruch verwenden können (im Gegenzug für Ihre persönlichen Daten, Aufmerksamkeit für Werbeeinnahmen usw.). Das ist ein enormer Anreiz (da die meisten Freeloader sowieso nicht für die App bezahlen würden), zusätzlich zu dem "no install" und "no upgrade" Vorteil.
Wenn Sie jedoch Kopien Ihrer Daten behalten müssen und Sie ein Hardcore-Entwickler und nicht nur ein Konsument sind, dann ist eine hybride Desktop-App, die mit einem Server synchronisiert, meiner Meinung nach eine viel bessere Lösung.
>Ich denke, ein Teil des Grundes hat mit den eingeschränkten Möglichkeiten für menschliche Interaktion zu tun, die die meisten Web-Apps bieten (es sei denn, Sie haben Lust).
Ich habe zum Beispiel früher bei einer Firma gearbeitet, die Software für das Gesundheitswesen herstellte, und wir hatten eine Menge Zeit damit, die Benutzer zu verstehen, wie sie mit der rechten Maustaste klicken und per Drag & Drop arbeiten. Also mussten wir für jede Aktion im Programm eine Rechtsklick-Menüoption, ein Symbol in der Symbolleiste und eine Menüoption wie Datei- & gt; Optionen- & gt; Exportieren.
habenIn einer Web-App scheint es so, als hätten Sie die meiste Zeit zwei Möglichkeiten - entweder einen Link oder eine Schaltfläche (ich verstehe natürlich, dass Sie alles tun können, was eine dicke App macht , aber ich sage nur die meiste Zeit, Sie stoßen nur auf Buttons und Links).
Aus diesem Grund scheint es, dass viele Benutzer weniger Probleme haben, Web-Apps zu finden. Sie suchen nur nach dem Button "Speichern" und klicken darauf. Daher bevorzugen diese Benutzer die Web-Apps, da sie sie als einfacher zu verwenden ansehen.
Und weil die Art von Web-Apps auch bedeutet, dass Sie oft von einer Seite weg navigieren, die irgendeine Art von Menü enthält (normalerweise gibt es oben kein "Datei, Bearbeiten, Hilfe" -Menü) jede Seite), gibt es weniger Lärm für sie durcheinander zu bringen. Sie sehen sich nur eine Seite an, die voller Felder und Dropdown-Listen ist, und sehen zwei kleine Schaltflächen am unteren Rand, die mit "Speichern" oder "Abbrechen" beschriftet sind. Es ist selten, dass ich eine dicke App sehe, die auf diese Ebene beschränkt ist.
Tags und Links web-applications desktop-application