Avec Silverlight 4, vient le temps des applications riches d’entreprise. Le développeur a tout pour développer des applications fiables, évolutives, sécurisées et réactives. Identiques en tous points à des applications desktop ou web classiques, elles sont surtout beaucoup plus ergonomiques.
Métier et riche en même temps
Avec les performances d’internet aujourd’hui, plus rien ne justifie d’avoir des applications complètement portées par le client, base de données comprise. C’est encore plus vrai quand la collaboration est un critère important. On veut pouvoir profiter du potentiel et de la puissance des data-centers du cloud.
Il peut pourtant être intéressant de pouvoir continuer de travailler en mode déconnecté. Quoi de plus frustrant en effet que de perdre le fruit de son travail lorsque le train passe sous un tunnel. C’est une vision partagée depuis un moment par Google (Gears), Adobe (Air) et Microsoft : avoir les avantages d’internet sans les inconvénients.
Les RIA intéressaient jusqu’ici surtout les sites de vente ou de médias en ligne. La consolidation de Silverlight (sécurité, performance, composants, interaction) offre de nouvelles perspectives.
Mais en quoi Silverlight peut-il rejoindre les pré-requis spécifiques d’une application métier et au fond, qu’est-ce qui fait une bonne application métier ?
L’application CRM en SaaS de CAS® (www.cas.de)
Productivité
Le premier aspect d’une application métier est la productivité. Elle doit répondre exactement au besoin de l’utilisateur (sans fioritures mais aussi sans lacunes). Elle doit aussi être facile à maintenir et à faire évoluer. Exit donc les technologies de pointe, qu’un développeur sur dix seulement est capable de comprendre. Et la disponibilité devient primordiale elle aussi.
Avec la découverte de composants au runtime, l’IoC (Inversion de Contrôle) et l’injection de dépendance avec MEF (Managed Extensibility Framework), le modèle MVVM (idéal pour Silverlight), les patterns les plus reconnus sont adoptés pour le bonheur de la maintenabilité et de la réutilisabilité de vos applications. Avec le développement unifié pour toutes les plateformes (Common Runtime .Net), le partage des fichiers entre développeur et designer, le partage des services sur le cloud, la productivité du développement n’a jamais été aussi forte. Avec le mode déconnecté, la présence sur le pc ou le smartphone, le mode out-of-browser (OOB), la productivité de l’utilisateur est maximale.
Interaction
L’interaction est elle aussi un critère essentiel. Une application en plug-in, complètement isolée, c’est bien mais ça limite le service rendu. Dans Silverlight 4, l’interaction avec l’utilisateur et ses applicatifs est plus grande.
Il y a d’abord l’interaction avec l’utilisateur :
-
Le support du texte riche (RichTextArea).
-
L’API de Notification pour les alertes.
-
Le support complet du clavier en mode plein écran.
-
La gestion de la souris (molette, click droit).
-
Le presse-papier, enfin géré.
-
La géo-localisation qui permet de lier l’action à la situation de l’utilisateur.
-
La Webcam et le microphone supportés (indispensable pour les meetings).
-
Les nouveaux événements pour les transitions sur ItemsControl (BeforeLoaded, Loaded, Unloaded).
Il y a ensuite l’interaction avec le reste du système :
-
Le stockage avec l’accès aux répertoires du compte utilisateur où se trouvent les documents.
-
Le partage grâce à l’interaction avec les logiciels qui exposent une API COM sous Windows.
-
L’import avec le support du glisser-coller depuis une source extérieure, par exemple depuis l’explorateur, très pratique pour l’upload de fichier, l’ajout de pièces jointes.
-
La gestion de l’impression, complète et offrant un contrôle intégral des éléments à imprimer.
-
La confiance avec la sandbox et l’isolated storage.
-
Le mode Trusted pour aller plus loin dans l’interaction.
Il y a enfin l’interaction avec le reste du monde, mais en toute sécurité :
-
Les WCF RIA Services qui font la glue avec le tiers métier.
-
La validation des entrées.
-
La cryptographie et le support du SSL.
-
La prévention des risques de Cross Site Scripting (XSS).
-
Les fichiers de politique cross-domain pour l’extension des ressources.
-
Le temps réel (WCF RIA Services) qui apporte un vrai confort et une réactivité maximale.
Workflows
Dans les applications métier, les processus sont indispensables et souvent complexes. Une étape de workflow peut intervenir à tout moment pour l’utilisateur, nécessitant son intervention. Si son application métier n’est pas lancée, il peut être prévenu par mail, par exemple mais cela ne palie pas tout : finalement, on n’a pas les yeux rivés sur sa messagerie en permanence. Quoi de mieux alors, que d’avoir un statut affiché en bas de l’écran, comme pour l’arrivée de mail dans Outlook. L’utilisateur n’a plus qu’à cliquer sur le statut pour lancer l’application et valider sa phase de workflow.
Et sur mobile ?
Pouvoir travailler sur la même application depuis son poste fixe au bureau, continuer sur le smartphone dans le train, et revenir dessus sur son portable chez soi ou dans la chambre d’hôtel, voilà la vraie mobilité. Silverlight 4 est opérationnel sur windows mobile et avec le multitouch, on palie aisément l’absence de souris. Votre application vous suit partout, vous n’êtes plus jamais pris de court. C’est vraisemblablement l’avenir des applications métier.
Horizons
La technologie Silverlight se rapproche plus que jamais des technologies desktop classiques en termes de productivité (utilisateur et développeur), comme en termes de sécurité ou de fonctionnalités. On peut donc enfin réinventer toutes ces applications métiers que nous pratiquons au jour le jour, en beaucoup plus ergonomiques et pratiques. Les utilisateurs ne seront pas trop durs à convaincre et la maturité certaine de cette dernière version devrait rassurer les responsables informatiques. On peut s’attendre à une déferlante d’applications métier sous Silverlight dans les années qui viennent, notamment sur Codeplex ou le Showcase Silverlight (http://www.silverlight.net/showcase/).

Je ne sais pas si ça vient de moi, mais on
n'entend plus trop parler de Moonlight en ce moment. Je rappelle que Moonlight
est l'implémentation open source de Silverlight, et est basé sur Mono. Qu'à
cela ne tienne, je me suis dit "allons voir s'il se passe quelque chose"
