[WPF] Qui utilise et pour quoi ?

Yop,

Alors voila, actuellement au boulot de grosses interrogations sont en cours pour savoir si le passage à WPF est à faire ou pas.

On a déjà pas mal d’applicatifs (plutôt domaine industriel) développés en .Net (c#) avec les winforms dont la plupart sont reliés à des applis en managed c# soit par interface direct soit par remoting (Glop on va faire monter tes statistiques de doigts de main)

A priori le coût de passage à WPF est estimé grosso modo à 400h pour avoir un développeur WPF autonome et efficace sur le sujet (si qqun a d’autres chiffres je suis preneur sachant qu’on parle d’une personne qui développe déjà en .Net)

Maintenant j’aimerais savoir si sur la zone, il y a des gens qui sont passés à WPF, si oui dans quel cadre (le petit dév perso, le dév pro one shot ou carrément une ligne de produit) ?

J’ai pas une grosse culture de WPF (je suis en train de digérer les présentations microsoft), mais j’ai l’impression que l’apport reste essentiellement visuel, même si la séparation de la présentation et du modèle semble facilité.

Y a t’il un intérêt à porter des applicatifs déjà développés en .Net c# sous WPF ?

Merci d’avance à tout ceux qui pourront partager leur expérience…

Cette question m’intéresse énormément, j’en profite pour demander à ceux qui pourraient apporter leur expériences dans le domaine quel éditeur XAML ils ont utilisé, et ce qu’ils en ont pensé. Est-ce que l’intégration entre Expression Blend et Visual C# est agréable à utiliser en VS 2005 ? Et en VS 2008 ?

Et bien moi aussi ca m’interresse.
Je test differents trucs depuis un an pour une étude de la migration de nos vielles applications client-serveur :slight_smile:
Et je me demandais un peu quelle stratégie adopter (Asp.net/ajax) ou WPF… Sachant que le browser est le passage obligé (parce que c’est évident) mais que l’IHM est hyper importantes.

Edit : Et sinon, en editeur xaml gratuit j’ai (un peu) tester KaXaml

Perso je commence à bien toucher WPF, et pas qu’en mode “home-made-demo”, ou “TechDays démo flashy avec 0 métiers et 40 animations par bouton”.
Un exemple est ce que j’ai fait chez Microsoft pendant mon stage avec Mitsu : VLinq (http://code.msdn.microsoft.com/vlinq).

En ce moment, je bosse plus sur Silverlight (2.0 hein, quand meme^^), mais le gros du truc est assez commun avec WPF.

Alors, d’abord, bien que la plupart des démos portent sur les animations et les avancées au niveau graphisme, pour moi le plus gros avantage est que l’on fait complètement table-rase de Win32, et qu’on a une vrai API moderne, orientée objet, purement managé (à part pour le thread de rendering, mais qu’on ne manipule pas de toute facon), et remplie de mécansime qui poutrent allègrmenet de leur maman : Moteur de Binding qui pouttre, RoutedCommands, RoutedEvents, DependencyProperties / AttachedProperties, la notion de contrôle qui n’est plus la même (Behavior + Template alors qu’avant on faisait du “Spagetti je fais un bout de rendering mais faut quand meme que je gère l’input de l’utilisateur et en plus je peux pas trop réutiliser les composants existants parce qu’ils sont basés sur du Win32”), ICollectionView et tout ce qui va avec, validation…
Après tout n’est pas rose, un des gros soucis est justement le fait qu’il faille pas mal de temps pour apprendre à maitriser tout le tintouin.

Un autre truc, la cohabitation entre WinForm et WPF, c’est faisable dans une certaine mesure, mais déjà, c’est pas parfait, et en plus, si ton but est de concevoir tes applications WPF comme une appli WinForm, tu loupes 90% des avantages que j’ai listé au dessus (donc c’est pas bien). Bref, WPF, oui pour des nouveaux projets (pour tout ce que j’ai cité au-dessus), encore plus oui si tu as des projets RIA qui démarrent aussi (capitalisation des compétences autour de WPF et Silverlight 2), mais pour des projets existant avec une équipe qui roule déjà… bof, tu risques de passer à côté des avantages en te bouffant tous les inconvénients car tes développeurs ne voudront peut être pas remettre en cause la facon dont ils ont l’habitude de concevoir les différents écrans.

Bon merci pour les réponses…

Ça confirme le ressenti que j’avais. Pas d’intérêt à faire du portage en WPF.

J’ai quand même du mal à apprécier la portée de wpf pour développer des applications « industrielles » où le look and feel reste ultra classique…

Surtout qu’en l’occurrence on est amené à travailler en coopération avec d’autres fournisseurs de logiciels (déjà que parfois on a du mal parfois à obtenir les composants compilé avec visual 2008 :confused: )

Autant la rupture avec les MFC était clairement annoncée avec l’arrivée du c# et .net, autant le discours de MS est beaucoup moins clair sur WPF et son placement vis à vis de l’existant.

Pour les développeurs c’est parfois un peu eux qui poussent à l’utilisation des dernières techno sans forcément prendre en compte tout les paramètres :slight_smile:

Non mais comme dit girafologue, l’interet est que tres marginalement dans un look and feel (peut etre) “plus joli”. A part dans des cas bien precis ou tout est base sur des animation funky qui vont etre gallere a faire autrement c’est certainement pas la motivation principale pour passer a WPF. Si y avait que ca, ca aurait aucune interet a long terme pour personne. C’est surtout une remise a plat fondamentale par rapport a win32, et c’est tout le reste qui fait du code plus moderne et plus propre avec des concepts plus haut niveau de gestion des donnees et leur relation avec l’affichage.

La séparation entre modèle et présentation est certes intéressante (architecture en couche)… Je crains cependant que dans notre cas où on a déjà une séparation assez nette entre le modèle et la couche présentation (une ihm séparée du noyau qui exécute les modèles), l’interêt soit d’autant plus limité.

Enfin j’avais cru comprendre que c’était juste une surcouche des winforms (qui elle même plus bas faisait appel aux win32)… J’ai totalement faux ?

Autre question subsidiaire, est ce qu’il y a des soft MS produit en WPF ? (A priori on a rien vu de tel dans Visual .net 2008)…

Winforms = surcouche win32, WPF=remise a plat de zero. Donc si tu penses que WPF a quoi que ce soit a voir (autre que l’interop) avec winforms ou win32, oui tu as tout faux :). Ca tape directement sur le MIL qui s’appuie sur le DWM (Desktop Windows Manager) et DirectX pour du rendu accelere en hard avec toutes les nouvelles fondation du driver model dans le kernel qui sont arrive avec Vista. Y a des couches de compatibilite a chaque etage, mais fondamentalement c’est une mise a jour depuis tout en bas qui touche a tous les composants depuis le kernel, drivers, windows manager, MIL, API, Appli. C’est bien pour ca que le travail pour en arriver la pour MS est collosal et que ca prepare le futur de windows pour les 10/15 prochaines annees. C’est ce genre d’evolution et elle se fait en gardant une compatibilite a chaque couche ce qui est indispensable mais peut causer une certaine confusion sur ce qui change vraiment quand tout ce qu’on voit c’est la couche de compatibilite, ou une surface restreinte du a ca.

Certains elements de la suite Expression qui sont des nouveaux produits (dont Expression Design, Expression Blend), Visual Studio lui meme a des parties en WPF (designer WPF), Yahoo a une version de son messenger en WPF, etc. Vu le changement de modele de prog, et le fait qu’il faut se former a WPF et tout c’est clair que le cout fait qu’il est plus rentable de s’y mettre pour un nouveau devel que pour faire evoluer de l’existant. C’est normal :crying: on recommence pas une appli devel depuis 15 ans de zero sur un coup de tete.

Je remonte le sujet vu que je me pose la question entre Silverlight et ASP .NET en dehors de l’aspect visuel et de l’architecture.

J’ai lu sur un article, une comparaison sur ces 2 environnements vu qu’on est nombreux à se poser la question. Il y a des plus et des moins (serveur vs client, isolated cache pour Silverlight, mode déconnecté ??, sécurité). Mais voilà, je n’ai pas d’autres sujets plus complet qui me dit qu’un tel est meilleur que l’autre. Je peux avoir sûrement avoir tord de vouloir les comparer.

Si je commence à faire du Silverlight demain, comment je peux savoir que je fais du bon code silverlight et non pas un pseudo Silverlight en pensant Winform/Webform ? Parce que voilà, sur les quelques projets bidons pour tester, bah, je pense comme ça.
Et forcément, je rate plein de truc spécifique qui pourrait me faire dire que Silverlight sa roxxe du poney de dieu.

Et enfin la question qui tue, comment connaître la version de Silverlight utilisée sur mon petit Visual Studio 2008 SP1 ? Le Help de VS2008 ne m’indique pas la version de Silverlight ou du moins pas la version que j’aimerais plutot voir. Parce que j’ai plutôt ça: Version 9.0.30729.146

Voilà, voilà.

Edit: et là je me rends compte qu’on parlait de WPF. Mais bon, Silverlight repose sur WPF. Même question avec WPF si c’est vraiment différent de Silverlight.

De mon point de vue de stagiaire avec peu d’ expérience , j’ai trouvé certain élément de WPF très intéressants ( les bindings :smiley: ) mais ziva le temps d’adaptation et la courbe de progression , les différences sont profondes .

ASP.net et Silverlight ont tous deux leurs avantages et inconvénients, et aucun des deux n’est la solution qui colle à tous les cas.

Principaux avantages d’ASP.Net (et ASP.Net MVC) non Ajax de mon point de vue :

  • Referencement (beaucoup moins d’efforts à faire pour faire indexer ses contenus par Google / Bing / Yahoo)
  • Modèle classique à 1 seul tier applicatif (le serveur WEB qui fait le rendu des pages et la logique qu’il y a derrère)

Principaux avantages de Silverlight

  • Modèle objet qui surpète
  • Pattern MVVM qui surdéboite
  • Technologie d’affichage riche (performance du moteur de rendu, affichage vectoriel, Video, animations…)
  • Uniformité du rendu sur tous les navigateurs (comment je peux plus lire de css maintenant…)
  • Performances générales (une grosse partie du boulot est faite sur la machine du client)

Pour de bonnes indications sur ta facon de bien coder ou non, tu peux regarder un peu ce qui se fait sur ce genre de blogs : http://www.nikhilk.net/ et te documenter sur les design pattern en vogue avec SL / WPF (MVVM, Injection de dépendances, …) et voir si ca te parle.

Merci bien, je vais décortiquer le lien.