Depuis mes débuts en développement j'ai toujours fait du lourd. Entendez par là du client Lourd. A savoir du Winform principalement, de l'API Win 32 et du Xna. J'ai commencé à aborder WPF il y'a deux ans. J'ai rapidement abandonné cette technologie estimant qu'elle n'avait pas un bel avenir devant elle. Je trouve qu'elle est extraordinaire et parfaitement bien conçue, mais elle ne répond pas au futur des besoins que demanderons les applicatifs dans les mois à venir.
Avant SIlverlight 2.0 bx, le plugin de Microsoft etait plus un jouet qu'un outil professionnel. Il montrait avec force ce qu'allait être Silverilght et ce que nous allions pouvoir en faire. Il manquait encore un grand nombre de fonctionnalités, les fonctionnalités existantes n'étaient pas pérennes et les outils de développements associés n'était pas forcement stables...
L'arrive des 2.0 bx change la donne. Il s'agit d'un version reconnue par Microsoft comme étant Go Live. Microsoft s'engage donc a fournir un support et donc à ce qu'une société puisse répondre à ses exigences métier et graphique via cette technologie. C'est le point important à avoir en tête. Bien entendu Silverlight est un sous ensemble de WPF. Je suis tout à fait conscient qu'un développement graphique avec WPF ne sera pas forcement plus rapide mais utilisera des technologies Built in que nous n'auront pas coté Silverlight. Le développeur aura ainsi à travailler coté code .net là où avec WPF il aurait opéré coté Xaml. Je ne pense pas que ce soit réellement handicapant.
Ce qui me pousse vers Silverlight c'est d'imaginer l'avenir proche. Les applications lourdes vont progressivement péricliter sans toutefois disparaitre. La plupart des utilisateurs seront connectés à Internet à souhait depuis leur téléphone portable (chez orange Internet illimité c'est 6 euros par mois, les principaux opérateurs lancent même des mini pc uniquement dédiés à Internet). Ce qui sera important sur un ordinateur ce n'est plus son système d'exploitation mais son browser. Sa capacité à profiter d'internet et surtout les plugins qu'il peut recevoir. Il fut un temps où Microsoft n'avait pas peur d'offrir des API non multi plateforme obligeant les applicatifs à ne tourner que sous un Windows xXx. Face à ce changement majeur de mentalité, des technologies comme l'API Win 32, WinForm, et même WPF prennent un gout amer. On entend toujours parler d'une bataille entre le monde Windows et le monde Unix. Mais pour la plupart des Internautes ce combat est complètement inintéressant et dépassés ; Ce qu’ils recherchent avant tout c'est comment lancer le navigateur pour accéder aux sites de communautés, pour accéder aux mails, aux sites de recherche, etc. Si bien que ces derniers temps, on parlait plus de la bataille entre Internet Explorer 8 et le dernier Mozilla. Les deux sociétés derrière ces navigateurs rivalisent d'ingéniosité pour offrir plus de services aux utilisateurs. C'est seulement le browser qui donnera une chance pour l'internaute lambda de rester sur un système d'exploitation. Windows a encore de beaux jours devant lui grâce à la politique Marketing de Microsoft et parce que, en entreprise, le parc d'applications lourdes tournant sous son système est important. Ajoutons à cela que les outils de développement qu'elle offre sont les plus efficaces. Mais cet aspect des choses n’aura aucun intérêt pour les milliards d'internautes à venir qui utiliseront le réseau des réseaux.
Utiliser Internet se fait depuis n'importe quel système d'exploitation, depuis n'importe quel mobile, depuis n'importe quelle borne d'accès de n'importe quelle galerie commerciale. Plus une société offrira un moyen d'exploiter Internet de manière intelligente plus son avenir est assuré. Les IPhones de Mac, le futur portable de Google. Microsoft toujours numéro en terme de système d'exploitation mobile avec Windows Mobile va rapidement placer Silverlight sur ce créneau là pour suivre le mouvement. Ce que Microsoft anticipe aussi c'est le besoin d’applications riches composées d'une couche vue et d'une couche controleur sans aucune spécification d'accès aux données. Il estime aussi un autre besoin important : internet en tant que plateforme de service et non plate forme réseau. Une infinité de services sur Internet auxquels les applicatifs riches vont le connecter pour remplir leur interface. Un tel système applicatif suivra toujours la même procédure : l'utilisateur télécharge l'application depuis le browser (pour Silverilght un Xap) de manière transparente. Le browser lance l'application, l'application s'initialise, charge son interface et se connecte à différents agrégats de services (ou mashups) pour remplir son contenu. L'interaction avec les services se fait via cette interface réglementée et offerte par le fournisseur. Google place son modèle économique là dessus. Nombre de ses services sont gratuits... mais limités. Chacun d'eux amène sur un autre service ... limité. Le tout entrecoupé de publicités. L'accès à des services plus complet sera bien évidemment payant. Microsoft ne peut plus se baser uniquement sur son modèle économique à base de Windows et D'Office mais doit suivre ce modèle.
On ne doit pas limiter un applicatif et l'accès à des services à une configuration de machine on doit la rendre accessible sans limites (je n'inclus pas ici les aspects commerciaux dans le "sans limites"). WPF peut être très utile dans le cadre de besoins bien précis. Là ou le besoin de technologies que le browser et ses plugins ne peuvent pas offrir. Je pense à la 3D, je pense au mode offline (bien que le terme offline risque de devenir rapidement désuet avec Live Mesh) ou bien encore des outils de développement. Je verrais plus ce type d'applicatifs "ponctuels" en WPF qu'en Silverlight.
La conclusion de tout cela c'est que pour faire connaitre une application et pour toucher un maximum de personne ce n'est plus au développement Windows qu'il faut penser mais au développement RIAs. Dans ce domaine, Silverlight avec la technologie .Net les environnements de développement Microsoft et Windows Mobile a une réelle carte à jouer. Ajoutons qu’avec Live Mesh (plateforme de stockage en lien avec un support de synchronisation), SQL Server Data Service (base de données en ligne) et ADO.NET Data services, Microsoft avance à grand pas sur sa stratégie Software + Services (autre manière de parler du SaaS - Software As A Service).
Il s’agit de faire du réseau un fournisseur de services et plus seulement un moyen physique de faire transiter des données. Tout cela contribue à orienter le système d'information vers une architecture de services où les clients riches tissent des liens sur le réseau vers des services de données hétéroclites, formatent les données puisées de manière à répondre au besoin spécifique du client : c’est ça l’informatique à la demande.
Aujourd'hui mes technologies de prediclections passent par Silverlight, le Framework Entity, ADO.NET Data Services et Xna (for ever :) )