Pourquoi Silverlight? Si le Web ne cesse d évoluer et de s accroître, on peut en dire autant des attentes des utilisateurs. Lorsque le premier navigateur Web a été développé, il était destiné à fournir un moyen relativement simple de définir des liens hypertexte entre les documents. Cette première génération de navigateurs fut ensuite couplée aux protocoles qui englobent l Internet. Des documents éparpillés sur des serveurs à travers le monde purent ainsi être reliés les uns aux autres à l aide de liens hypertexte. Au fil du temps, le public des utilisateurs d Internet changea : d un petit groupe d universitaires ou de spécialistes en recherche informatique, il passa à l ensemble de la population. Et ce que les experts du domaine avaient accepté en matière d interface utilisateur se révéla bien pauvre pour les applications commerciales. Aujourd hui, les internautes exigent des interfaces utilisateur de grande qualité et simples à utiliser. Or, à mesure que le nombre d informations disponibles sur Internet s est accru pour englober finalement toutes sortes de fichiers multimédia, il est devenu plus difficile de satisfaire les attentes des utilisateurs en ce qui concerne la facilité d accès aux informations désirées. La nécessité de proposer aux utilisateurs des méthodes d accès aux ressources Internet à la fois sophistiquées et simples d emploi conduisit à développer des technologies d application avancées. L une d entre elles consista à créer des outils de navigateur enfichables ou plug-ins, qui permettaient au navigateur d utiliser un certain nombre de mécanismes de calcul locaux de l utilisateur. Les contrôles ActiveX, les applets Java et les applications Flash sont autant d exemples de technologies de plug-in. L AJAX (Asynchronous JavaScript and XML) est un autre exemple d outil qui fut introduit pour développer de nouvelles interfaces utilisateur capables de réaliser des mises à jour immédiates. Avec AJAX, la zone d écran du navigateur ne clignote pas et ne se bloque pas, car il n est plus nécessaire d actualiser l ensemble de la page. Si la technologie AJAX permet aux développeurs de créer des sites Web avec du contenu plus complexe et plus dynamique que le HTML, elle possède aussi ses limitations. Elle permet une communication asynchrone avec le serveur, ce qui signifie que les applications peuvent être mises à jour automatiquement à l aide de threads d arrière-plan. On évite ainsi le clignotement de l écran qu on remarque si souvent avec les interfaces utilisateur Web complexes. Mais AJAX est à strictement parler un mécanisme de communication de navigateur à serveur. Il lui manque les graphismes, l animation, la vidéo et les autres capacités nécessaires pour fournir des interfaces utilisateur réellement multimédia. xi
xii Introduction Microsoft s est efforcé de développer une stratégie d expérience utilisateur ou UX (User experience) pour répondre à ces limitations en identifiant trois niveaux d expérience utilisateur désirés : «bon», «excellent» et «ultime», auxquels correspondent des technologies de développement et d exécution spécifiques. Ces différentes technologies sont rassemblées dans ce livre sous l appellation commune du terme «riche». Lorsque nous utilisons le mot «riche», nous faisons allusion à un concept qu il n est pas facile d illustrer par des mots. Il s agit du sentiment que l on éprouve lorsque l on utilise une application Web classique limitée par les capacités du navigateur et du HTML par rapport à une application de bureau capable d exploiter toutes les ressources et tous les services du système d'exploitation. Les applications Web d aujourd hui n offrent pas les mêmes sensations et ne possèdent pas les mêmes capacités que les applications de bureau et l utilisateur se rend généralement bien compte qu elles sont limitées par des contraintes technologiques. Avec Silverlight (et AJAX), le but est de créer des applications Web qui ressemblent bien plus aux applications de bureau et à terme, de proposer des applications qui ne pourront se distinguer des applications de bureau. Le niveau d expérience utilisateur le plus bas, que l on qualifie de «bon», peut être obtenu avec le navigateur amélioré à l aide d AJAX. Ce niveau définit la ligne de base des attentes en matière d UX aujourd hui : une application de navigateur asynchrone et dynamique qui tire parti de la puissance d AJAX. Le niveau le plus élevé ou «ultime» correspond à l application de bureau riche qui s exécute sous Windows Vista en utilisant la WPF (Windows Presentation Foundation) et le.net Framework. Ces éléments fournissent un moteur d exécution qui permet aux développeurs de créer des applications extrêmement riches, faciles à déployer et faciles à gérer. Ce niveau permet de proposer des images, des vidéos et des animations de qualité professionnelle, ainsi que des services d application comme la persistance sur fichier et l intégration avec d autres applications de bureau. La WPF sépare en outre les technologies de conception et de développement afin que les interfaces utilisateur puissent être conçues et définies à l aide d un nouveau langage appelé XAML (XML Application Markup Language). Des outils de conception comme ceux de la série Expression de Microsoft sont proposés aux concepteurs et aux graphistes qui peuvent maintenant produire leur travail sous forme de documents XAML. Les développeurs peuvent ensuite utiliser ce XAML pour donner vie aux inventions des concepteurs et activer le XAML avec du code. J ai indiqué que la stratégie UX distinguait trois niveaux car à mesure qu AJAX et.net/wpf ont évolué, on a pu constater qu un espace intermédiaire s ouvrait pour une technologie qui combinerait efficacement le meilleur de ces deux mondes : l évolutivité globale de l application Internet et la richesse des applications de bureau. Ce niveau peut être désigné comme celui de «l excellence» en termes d expérience utilisateur. Il correspond du point de vue technologique au navigateur amélioré par AJAX et un nouveau produit appelé Silverlight.
xiii Silverlight est un plug-in navigateur qui reproduit le XAML et expose une interface de programmation. Il permet donc aux concepteurs et aux développeurs de collaborer pour créer des applications Internet aussi riches que les applications de bureau. La première version de Silverlight exposait un modèle de programmation puissant orienté JavaScript pour traiter les éléments XAML dans le navigateur. Silverlight 2 renforce considérablement ce dispositif en incluant un moteur d exécution.net qui permet d utiliser des langages de programmation.net et de progresser plus loin encore, en manipulant du XAML, en proposant une base pour des contrôles, un support réseau, de puissantes bibliothèques de données, une extensibilité et des performances considérablement améliorées. Dans ce livre, vous allez examiner Silverlight et voir comment l utiliser pour améliorer l expérience utilisateur sur le Web. Silverlight peut changer la manière de concevoir la création d applications pour le Web. Au lieu de sites Web, vous créez des expériences Web. L excellence en termes d expérience s appuie sur une excellente conception et avec Silverlight, les concepteurs et les développeurs peuvent collaborer comme il ne l avaient jamais fait auparavant, grâce au XAML et à la suite d outils Microsoft Expression. Dans ce livre, mon but est de vous aider à comprendre les technologies qui peuvent être combinées pour développer et déployer des applications Web Silverlight, de l écriture du code de base qui utilise Silverlight jusqu aux outils avancés qui permettent de créer et de délivrer du contenu Silverlight. Lorsque vous aurez terminé ce livre et que vous aurez travaillé avec les exemples, vous serez prêt à mettre à profit vos acquis afin d améliorer vos applications Web existantes. Imaginez un peu ce que vous saurez faire demain! À qui ce livre est-il destiné? Ce livre a été écrit pour les développeurs qui travaillent déjà quotidiennement à concevoir de nouvelles applications Web et qui sont intéressés par l ajout de cette technologie Microsoft de premier plan cri à leur arsenal personnel. Il se propose de montrer comment elle peut être appliquée pour proposer aux utilisateurs des interfaces plus intéressantes, plus riches et plus efficaces. Les responsables en développement auront aussi le plaisir de découvrir un livre facile à lire, qui leur permette de comprendre comment Silverlight s intègre dans le paysage plus global des technologies Web Microsoft. Avec un peu de chance, ce livre devrait fournir aux responsables assez d acquis technologiques pour qu ils parviennent à comprendre l immense excitation qui saisit leurs développeurs lorsqu ils viennent leur parler de Silverlight!
xiv Introduction Contenu de ce livre Ce livre se décompose en deux parties. La Partie I, Introduction à Silverlight 2, vous fait découvrir les bases de Silverlight. Elle examine Silverlight lui-même et les outils qui sont utilisés pour créer et gérer des applications Silverlight, dont Expression Blend et Visual Studio. La Partie I examine aussi la technologie XAML et montre comment elle utilise le XML pour définir l ensemble de l expérience utilisateur, de la disposition des éléments aux contrôles en passant par les animations. Cette partie examine enfin le plug-in Silverlight lui-même et montre comment il peut être utilisé pour communiquer avec le navigateur afin de faire de vos applications des partenaires privilégiés du navigateur. La Partie II, Programmer Silverlight 2, aborde plus en détail les concepts de haut niveau de Silverlight 2. Il ne s agit pas d une référence exhaustive, mais plutôt d une introduction simple et rationnelle des principales tâches que vous effectuerez en qualité de développeur Silverlight. Vous découvrirez d abord les contrôles intégrés, puis apprendrez à créer vos propres contrôles. Ensuite, vous examinerez les données, les communications, la programmation des animations, les contrôles ASP.NET pour Silverlight ainsi que certains contrôles plus avancés pour gérer les éléments multimédia, l encre et le nouveau composant DeepZoom qui propose offre une technologie de présentation décoiffante pour les images. Le livre se termine enfin par un examen du nouveau support des langages dynamiques dans Silverlight. Configuration requise Pour développer les applications Silverlight d exemple de ce livre, vous aurez besoin des éléments suivants (disponibles à l adresse http://silverlight.net/getstarted/) : Visual Studio 2008 Expression Design Expression Blend Le SDK (Software Development Kit) Silverlight Pour Silverlight, la configuration système recommandée est de 128 Mo de RAM et d un processeur cadencé à 450 MHz ou plus sous Windows et de 1 Go de RAM sur un processeur Intel cadencé 1,83 GHz ou plus sous Mac OSX. Pour Visual Studio 2008, la configuration recommandée est un processeur cadencé à 2,2 GHz ou plus, 1024 Mo ou plus de RAM, une résolution de 1280 x 1024 et un disque dur à 7200 tpm (la configuration minimale est un processeur à 1,6 GHz, 384 Mo de RAM, résolution 1024 x 768 et disque dur à 5 400 tpm). Pour Windows
xv Vista, la configuration recommandée est de 2,4 GHz de cadence processeur et de 768 Mo de RAM. Le site Web d accompagnement Ce livre possède un site Web d accompagnement qui met à votre disposition l ensemble du code utilisé dans le livre. Les différents fichiers de code sont répartis par chapitre et peuvent être téléchargés sur le site d accompagnement à l adresse suivante : http://www.microsoft.com/mspress/companion/9780735625280