@StringBuilder : autant je suis d'accord sur la 2ème partie concernant les performances, autant je suis complètement en désaccord sur le reste :) (+1 quand même)
Citation:
Pour en revenir au début du sujet, il faut savoir que la GUI, que ce soit ASP.NET, WinForms, WCF, WPF, ou Console, ou je ne sais quoi d'autre n'impacte qu'une faible partie du code d'une application.
Malheureusement d'expérience (HTML/CSS/JS, Flex, ASP.NET WebForms, ASP.Net MVC, WinForms, WPF, Silverlight, Excel, Swing...) la GUI représente une grosse partie du code ET une grosse partie du temps de développement.
Après tout dépend de ton contexte : bien sûr si tu as une partie métier très riche et complexe (pricing sur une ferme) et des besoins visuels réduits (quelques indicateurs) alors oui tu peux avoir du 99% - 1%.
Mais pour une application LOB (Line Of Business) comme une interface de trading, même si la partie métier est riche et complexe (pricing, risque, passage d'ordre...) l'interface affiche énormément de données en temps réel et en récupère beaucoup de l'utilisateur donc là tu passes la majorité du temps dans la partie UI/logique applicative.
Citation:
Bon, après, si on code une application purement GUI (jeu par exemple) évidement, la partie impactée est plus grande.
Un jeu non trivial n'est jamais purement GUI il faut souvent un moteur physique et une IA, donc au global tu développes autant du code non visuel.
Après si tu prends tout packagé c'est une autre histoire mais même l'intégration n'est pas forcément triviale.
Citation:
En C#, comme dans tous les langages, on travaille par modules, et 99% du code est présent dans des classes qui n'ont rien à voir avec la GUI. Tout comme elles n'ont rien à voir avec le SGBD utilisé ou la résolution de l'écran !
Tout dépend des applis : j'ai eu à développer de simples vues sur des tables SQL donc là 99% du code c'est du visuel, le reste c'est un simple DataReader.
Citation:
Donc pour apprendre le langage à proprement parler, le mode Console est tout aussi complet et efficace que n'importe quel autre type de projet.
Oui pour le langage mais sans savoir présenter les données tu ne sais faire que disons 50% de ce qui est demandé par le marché du développement.
Il y a bien sûr quelques devs qui ne verront jamais une GUI mais la plupart devront en développer, même des basiques et même si la personne n'est pas un dev : e.g. j'en ai connu un qui s'était fait une petite GUI PHP pour faciliter son administration SVN !
Donc c'est incontournable, ce n'est pas pour rien que la grande majorité des offres de dev demande un framework de GUI comme compétence (l'autre raison c'est l'incompétence de personnes pour qui WPF = VS = .Net = C# ~= Java = SWING... :))
Citation:
Si tu maîtrises les mécanismes de C#, alors le portage d'une application de Console à WinForms, WCF, WPF ou même ASP.NET n'est qu'une simple formalité (à quelques détails quand même, il faut l'avouer).
Si seulement :( pour avoir fait des migrations de WinForms à WPF, de Excel à WPF et même entre Silverlight et WPF je peux t'assurer que c'est très loin d'être une formalité : l'architecture globale change, les composants visuels (rendu des données et mise en page) sont différents dans leur structure et leur comportement, sans parler des façons différentes d'aborder une même problèmatique.
Développer une GUI "lourde" n'a pas grand chose à voir avec développer une appli web "classique" qui est très différent de développer une appli web SPA.