Au cours des deux dernières années, tous les projets sérieux sur lesquels j'ai travaillé étaient soit basés sur le Web, soit dotés d'une interface utilisateur non graphique (services, scripts de ligne de commande, etc.). Je peux créer une application WinForms ou faire du WPF simple si nécessaire, mais je n'ai jamais vraiment exploré certaines des API de niveau inférieur comme MFC ou QT.
Je comprends que cela dépend de la situation, mais en général, cela vaut-il la peine de bien apprendre le développement de bureau ou les applications se déplacent-elles sur le Web et les appareils mobiles à un rythme qui rend ces connaissances moins pertinentes? En outre, vous attendez-vous à ce que les développeurs avec lesquels vous travaillez possèdent une expertise en interface graphique de bureau?
Réponses:
Je dirais que oui. Il y a une sorte d'effet pendulaire dans le développement du programme. Tout d'abord, tout s'est déroulé directement sur l'ordinateur. Puis, lorsque l'ordinateur est devenu suffisamment puissant pour exécuter plusieurs programmes, ils ont obtenu des ordinateurs centraux avec des terminaux stupides. Mais les terminaux stupides sont vraiment nuls en termes de convivialité, donc dès que les ordinateurs sont devenus assez puissants pour mettre des quantités raisonnables de matériel dans un système de la taille d'un terminal, nous avons eu des ordinateurs personnels, et tout fonctionnait directement sur l'ordinateur.
Ensuite , ils ont inventé le World Wide Web, et nous sommes de retour à un ordinateur central (serveur) et un terminal muet (navigateur.) Mais muets terminaux encore sucent vraiment en termes de facilité d' utilisation, et les gens commencent à réapprendre les leçons d'il y a 30 ans , et nous nous éloignons à nouveau de cela. Une grande partie du développement vraiment chaud de nos jours concerne les applications de bureau (ou mobiles) qui s'exécutent localement, mais sont capables de se connecter à Internet à des fins spécifiques pour améliorer leurs fonctionnalités.
la source
Même si vous n'avez jamais l'intention de faire du développement de bureau, je vous suggère d'acquérir suffisamment d'expérience pour avoir une opinion éclairée sur le moment où il est préférable d'utiliser une solution de bureau sur un client Web.
la source
Oui, mais pas de la façon dont vous pensez.
La programmation GUI n'est pas plus difficile et ne nécessite pas de compétences spécialisées en plus de la familiarité avec l'interface de programmation gui. Connecter des boutons, des fenêtres et des commandes n'est pas très difficile et est assez facile avec des environnements de programmation modernes par rapport aux premiers jours avec des trucs comme MFC. La programmation GUI est quelque chose qui est assez facile à apprendre quand cela est demandé.
Cependant, alors qu'il est assez facile de connecter des boutons et des zones de texte, il est très difficile de savoir quand et où placer les boutons, et de concevoir une interface graphique à utiliser par les êtres humains. C'est une compétence très précieuse et importante à posséder. Cependant, les principes de conception qui s'appliquent aux interfaces natives et au Web sont très similaires.
Apprenez donc à concevoir de bonnes interfaces utilisateur qui sont efficaces et ne confondent pas les utilisateurs, et vous vous familiariserez gratuitement avec la programmation pour eux.
la source
Cela dépendra vraiment de votre situation. J'ai récemment travaillé pour une entreprise du Fortune 500 qui avait plusieurs projets pour reconvertir des applications Web en applications de bureau (SmartClient / Click-Once). Dans leurs circonstances particulières, cela avait beaucoup de sens et éliminait plusieurs problèmes d'utilisation dont leurs applications existantes souffraient.
Si vous êtes un employé à temps plein et que votre entreprise ne conçoit généralement pas d'applications de bureau, il n'est probablement pas logique d'être à jour sur Winforms ou WPF. Cependant, si vous êtes consultant et que vous souhaitez être en mesure d'offrir un autre service à vos clients, cela ne peut pas faire de mal.
la source
Hmm, outre GMail, Stack-Exchange et les services bancaires à domicile de ma banque, j'utilise toute la journée des logiciels non Web. Désormais avec l'avènement des smartphones et tablettes, les applications web sont encore moins attractives pour moi (j'utilise mon smartphone client Facebook). C'est côté utilisateur.
Côté développeur: au cours de mes 10 dernières années, j'ai travaillé presque uniquement sur des logiciels non Web (et ma carrière a couvert de nombreux domaines très différents en tant que consultant logiciel) et je ne vois aucune future tendance Web dans mon travail.
Alors oui, c'est toujours un environnement d'apprentissage graphique de bureau indispensable .
la source
Bien sûr "ça dépend" - mais je pense que votre expérience est typique. J'ai rarement eu à créer un client lourd pour l'une des applications que j'ai écrites. À moins qu'il n'y ait une raison spécifique pour laquelle le client doit être exécuté sur le bureau (problèmes de connectivité ou jeu 3D, etc.) - je pense qu'il est plus facile pour le développeur et les administrateurs de maintenir une "instance" de l'application. S'ils ont les compétences nécessaires pour concevoir une application Web, ils devraient être en mesure de passer dans le domaine des applications de bureau en général.
En fait, je pense qu'il est plus important qu'un développeur client épais apprenne la programmation d'applications Web - l'héritage d'apatridie de HTTP en fait un paradigme de développement d'applications plus difficile à comprendre (ou au moins vous devez réfléchir un peu plus que simplement gifler sur un panneau).
N'oubliez pas - vous avez des technologies comme Silverlight et Adobe Flex / AIR qui peuvent chevaucher la ligne entre l'application de bureau / Web.
la source
Selon l'équipe IE9:
Il ne devrait pas y avoir d'écart entre les applications natives et Web. L'accélération matérielle, le JS rapide et l'épinglage du site le démarrent
Je pense que c'est une valeur sûre que ces technologies se rapprochent. Si vous êtes un développeur Java, il y a très peu de différence entre le développement d'applications de bureau et d'applications Web (à l'aide de GWT). Il n'est pas déraisonnable de s'attendre à ce que de plus en plus de plates-formes de développement "de bureau" puissent cibler le moteur de navigation. Il n'est pas non plus déraisonnable de s'attendre à ce que de plus en plus d'applications de bureau aient un modèle de distribution de type Web (mise à jour automatique en arrière-plan, exécution en bac à sable, comme Chrome).
la source