In den letzten Jahren waren alle seriösen Projekte, an denen ich gearbeitet habe, entweder webbasiert oder hatten eine nicht grafische Benutzeroberfläche (Dienste, Befehlszeilenskripte usw.). Ich kann eine WinForms-App zusammenstellen oder bei Bedarf ein einfaches WPF ausführen, aber ich habe mich nie wirklich mit einigen der APIs auf niedrigerer Ebene wie MFC oder QT befasst.
Ich verstehe, dass dies von der jeweiligen Situation abhängt, aber lohnt es sich im Allgemeinen immer noch, sich Zeit zu nehmen, um die Desktop-Entwicklung gut zu erlernen, oder bewegen sich Anwendungen in einem Tempo auf das Web und mobile Geräte, das dieses Wissen weniger relevant macht? Erwarten Sie auch, dass Entwickler, mit denen Sie zusammenarbeiten, über Erfahrung mit Desktop-GUIs verfügen?
Antworten:
Ich würde ja sagen, das ist es. Es gibt eine Art Pendeleffekt in der Programmentwicklung. Zuerst lief alles direkt auf dem Computer. Als der Computer dann leistungsfähig genug wurde, um mehrere Programme auszuführen, erhielten sie Großrechner mit dummen Terminals. Aber dumme Terminals sind wirklich schlecht in Bezug auf die Benutzerfreundlichkeit. Sobald Computer leistungsfähig genug waren, um eine angemessene Menge an Hardware in ein terminalgroßes System zu stecken, erhielten wir PCs, und alles lief direkt auf dem Computer.
Dann haben sie das World Wide Web erfunden, und wir sind zurück zu einem Mainframe (Server) und einem dummen Terminal (Browser). Aber dummen Terminals mangeln es immer noch an Benutzerfreundlichkeit, und die Leute fangen an, die Lektionen von vor 30 Jahren neu zu lernen , und wir neigen dazu, wieder weg. Ein großer Teil der aktuellen Entwicklung betrifft Desktop-Apps (oder mobile Apps), die lokal ausgeführt werden, jedoch für bestimmte Zwecke eine Verbindung zum Internet herstellen können, um ihre Funktionalität zu verbessern.
quelle
Selbst wenn Sie nie vorhaben, Desktop-Entwickler zu werden, würde ich Ihnen empfehlen, über genügend Erfahrung zu verfügen, um eine fundierte Meinung darüber zu haben, wann es besser ist, eine Desktop-Lösung über einen Web-Client zu verwenden.
quelle
Ja, aber nicht so, wie Sie denken.
Die GUI-Programmierung ist nicht schwieriger und erfordert neben der Kenntnis der GUI-Programmierschnittstelle auch keine besonderen Kenntnisse. Das Anschließen von Schaltflächen, Fenstern und Steuerelementen ist nicht sonderlich schwierig und in modernen Programmierumgebungen im Vergleich zu den Anfängen mit Dingen wie MFC ziemlich einfach. GUI-Programmierung ist etwas, das ziemlich einfach zu erlernen ist, wenn es verlangt wird.
Während das Anschließen von Schaltflächen und Textfeldern relativ einfach ist, ist es sehr schwierig zu wissen, wann und wo Schaltflächen platziert werden sollen, und eine Benutzeroberfläche zu entwerfen , die von Menschen verwendet werden soll. Das ist eine sehr wertvolle und wichtige Fähigkeit. Die Designprinzipien, die für native Schnittstellen im Vergleich zum Web gelten, sind jedoch sehr ähnlich.
Lernen Sie also, wie Sie gute Benutzeroberflächen entwerfen, die effektiv sind und die Benutzer nicht verwirren, und machen Sie sich kostenlos mit der Programmierung vertraut.
quelle
Es wird wirklich von deiner Situation abhängen. Ich habe kürzlich für ein Fortune 500-Unternehmen gearbeitet, das mehrere Projekte hatte, um Webanwendungen wieder in Desktopanwendungen (SmartClient / Click-Once) umzuwandeln. Unter diesen besonderen Umständen ergab dies einen großen Sinn und beseitigte mehrere Usability-Probleme, unter denen ihre vorhandenen Apps litten.
Wenn Sie Vollzeitbeschäftigter sind und Ihr Unternehmen im Allgemeinen keine Desktop-Apps entwickelt, ist es wahrscheinlich nicht sinnvoll, mit Winforms oder WPF auf dem neuesten Stand zu sein. Wenn Sie jedoch ein Berater sind und Ihren Kunden einen anderen Service anbieten möchten, kann dies nicht schaden.
quelle
Hmm, neben GMail, Stack-Exchange und dem Homebanking meiner Bank benutze ich den ganzen Tag Nicht-Web-Software. Mit dem Aufkommen von Smartphones und Tablets sind Webanwendungen für mich noch weniger attraktiv (ich verwende meinen Smartphone-Facebook-Client). Das ist benutzerseitig.
Entwicklerseite: In den letzten 10 Jahren habe ich fast nur mit Nicht-Web-Software gearbeitet (und meine Karriere als Softwareberater umfasste viele sehr unterschiedliche Bereiche), und ich sehe keinen zukünftigen Web-Trend in meinem Job.
Also ja, es ist immer noch ein Muss , Desktop-GUI-Umgebungen zu lernen.
quelle
Natürlich "kommt darauf an" - aber ich denke, Ihre Erfahrung ist typisch. Ich musste selten einen Thick-Client für eine der von mir geschriebenen Anwendungen erstellen. Es sei denn, es gibt einen bestimmten Grund, warum der Client auf dem Desktop ausgeführt werden muss (Konnektivitätsprobleme oder 3D-Spiele usw.). Ich glaube, dass es für Entwickler und Administratoren einfacher ist, eine "Instanz" der Anwendung zu verwalten. Wenn sie über die erforderlichen Fähigkeiten zum Entwerfen einer Webanwendung verfügen, sollten sie im Allgemeinen in der Lage sein, in den Bereich der Desktopanwendungen einzusteigen.
Eigentlich finde ich es wichtiger, dass ein Thick Client-Entwickler das Programmieren von Webanwendungen lernt - die ererbte Zustandslosigkeit von HTTP erschwert es einem Paradigma für die Anwendungsentwicklung, den Kopf herumzureißen (oder man muss zumindest ein bisschen mehr nachdenken als nur schlagen) Bedienelemente auf einem Panel).
Vergessen Sie nicht - Sie haben Technologien wie Silverlight und Adobe Flex / AIR, mit denen Sie die Grenze zwischen Desktop- und Webanwendungen überschreiten können.
quelle
Nach Angaben des IE9-Teams:
Es sollte keine Lücke zwischen nativen und Web-Apps geben. HW-Beschleunigung, schnelle JS- und Site-Fixierung starten
Ich denke, es ist eine sichere Wette, dass diese Technologien enger zusammenwachsen. Wenn Sie ein Java-Entwickler sind, gibt es kaum einen Unterschied zwischen der Entwicklung von Desktop-Apps und Web-Apps (mithilfe von GWT). Es ist nicht unvernünftig zu erwarten, dass immer mehr "Desktop" -Entwicklungsplattformen auf die Browser-Engine abzielen. Es ist auch nicht unangemessen zu erwarten, dass immer mehr Desktop-Apps über ein webähnliches Verteilungsmodell verfügen (automatische Aktualisierung im Hintergrund, Sandbox-Ausführung wie Chrome).
quelle