Partie I Approche de Silverlight 1
Transcription
Partie I Approche de Silverlight 1
Partie I Approche de Silverlight 1 Introduction Dans ce chapitre, vous découvrirez la nouvelle plateforme de diffusion plurimédias interactive Silverlight et les raisons qui ont poussé Microsoft à sa conception. Vous apprendrez en quoi Silverlight hérite de la bibliothèque .Net et propose un nouveau modèle de conception avantageux. Nous évoquerons également la nouvelle suite d’outils Expression Studio dédiée aux graphistes et aux intégrateurs et comment ceux-ci se positionnent dans la chaine de production. Silverlight laisse aussi bien la place aux langages .Net C# qu’aux langages libres et dynamiques comme JavaScript. Prendre partie pour l’un de ces langages est l’une des étapes incontournables de sa prise en main. Nous listerons donc les critères qui orienteront votre choix parmi ceux-ci. De manière générale, Silverlight est fait pour améliorer notre quotidien de designer ou de développeur, ainsi que l’expérience utilisateur sur Internet. Nous examinerons les moyens mis en œuvre pour atteindre ces différents objectifs. © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 1 11/01/10 10:03 2 Partie I Approches de Silverlight 1.1 Qu’est-ce que Silverlight ? Silverlight est un lecteur Internet existant sous forme de plug-in, anciennement connu sous le nom de WPF/E, initiales de Windows Presentation Foundation Everywhere. Les applications lisibles par ce lecteur sont des fichiers au format xap. Basé sur un moteur vectoriel puissant, il permet d’afficher du contenu dynamique et interactif pour le Web. Il facilite la conception et la diffusion d’applications riches sur Internet. Il fait partie de la plateforme de développement .Net (prononcer "dotte net") proposée par Microsoft, mais ne nécessite qu’une fraction héritée de celui-ci pour être exécuté, autrement dit, l’installation du lecteur seul suffit. Cette particularité lui permet d’être diffusé au sein de nombreux navigateurs sur Mac OS, Windows ou Linux (via le projet Moonlight pour Linux, voir Tableau 1.1). Tableau 1.1 : Navigateurs et systèmes supportés. Système d’exploitation Internet Explorer 8 Internet Explorer 7 Internet Explorer 6 Firefox 2 / 3 Safari 3 / 4 Windows 7 Oui - - Oui - Windows Vista Oui Oui Windows XP SP2 Oui Oui Oui Oui - - Oui - - Oui Oui Oui - Mac OS 10.4.8+ (PowerPC) - - Oui Oui Mac OS 10.4.8+ (Intel) - - Oui Oui Windows 2000 SP4 Windows Server 2003 / 2008 Linux, FreeBSD, SolarisOS Oui Supporté par le projet Moonlight développé par Novell Les applications .Net traditionnelles reposent sur la notion de client lourd, c’est-à-dire qu’elles nécessitent l’installation de la bibliothèque .Net. Celle-ci peut peser jusqu’à 195 Mo pour la version 3.5. Le lecteur Silverlight échappe à ce type de fonctionnement peu souple car c’est un environnement d’exécution pour les applications de type client léger. Cela signifie que son poids est suffisamment négligeable (de 4 Mo à 7 Mo selon les systèmes d’exploitation) lors du téléchargement, pour que son installation soit rapide et les applications exécutées très légères (souvent inférieure à 1 Mo). Sous Vista et Windows 7, les droits nécessaires à son installation sont moins contraignants pour l’utilisateur de la machine cliente. Bien que l’on puisse avoir l’impression qu’il s’agit d’un détail, les réseaux d’entreprises actuels sont souvent constitués de centaines, voire de milliers d’ordinateurs, et les déploiements qui en découlent nécessitent d’importants moyens humains et techniques. Dans ces conditions, le déploiement de clients légers est une stratégie efficace à court et moyen termes puisque les applications développées pour ces plateformes sont de plus © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 2 11/01/10 10:03 Chapitre 1 Introduction 3 en plus performantes et puissantes. Malgré un poids négligeable, Silverlight apporte un environnement de développement complet. 1.2 De .Net 1 à Silverlight Comme nous l’avons vu précédemment, Silverlight est à la fois une évolution parallèle et un héritage de la plateforme de développement .Net (prononcé "dotte nette"). Qu’est-ce que .Net ? Quel est son but et comment est-elle née ? Répondre à ces questions nous permettra de mieux comprendre les orientations prises par les équipes d’ingénieurs ayant participé à sa conception et nous permettra plus facilement d’envisager les améliorations possibles dans le futur. Il faut remonter le temps jusqu’à février 2002 pour voir la sortie de .Net 1.0, livré avec le Service pack 1 de Windows XP. Visual Studio.Net est à cette époque, l’outil de prédilection pour développer ce type d’applications. .Net est né des besoins d’interopérabilité (entre ancienne et nouvelle technologie) et de portabilité (valable pour les langages et les systèmes). Les objectifs sont simples : ■ Proposer une meilleure plateforme de développement. ■ Apporter un environnement indépendant du réseau ou du langage choisi quels qu’ils soient Visual Basic, C# ou C++, etc. ■ Délivrer un unique modèle de conception quelle que soit la version de Windows : XP, 2000, Windows CE, etc. ■ Concurrencer Java. ■ Faciliter la création de services web. ■ Accompagner les développeurs et assouplir la méthodologie de développement avec en point de mire l’industrialisation des processus. Microsoft propose de nombreux systèmes d’exploitation et .Net uniformise le développement d’applications. Les applications développées en .Net ciblent essentiellement l’OS Windows. Par ailleurs Microsoft réalise une première percée significative pour scinder le design des interfaces et le code logique, grâce aux formulaires Windows, surnommés Winforms. Avec ce type d’architecture, apparaît la notion de code "behind". Un fichier va contenir le code nécessaire pour fabriquer l’interface visuelle. Celle-ci sera simplement créée par de simples glisser-déposer de composants dans la fenêtre de prévisualisation sous Visual Studio. Un autre fichier contient désormais le code logique, ou code "behind", sans lequel l’interface ne répondrait pas aux interactions utilisateurs et ne possèderait aucune logique. Sorti fin 2005, .Net 2 est une véritable amélioration mais n’apporte que peu de nouveautés. Il faut attendre janvier 2007 pour découvrir .Net 3 qui révolutionne le développement d’applications sous Windows. .Net 3 n’est pas une refonte, mais une extension de .Net 2. Cette version apporte, en plus de C# 3 ou de technologies comme Linq, de nombreux bénéfices répartis en quatre modules : ■ WCF (Windows Communication Foundation) facilite la communication entre les applications, les domaines ainsi que partage de bas de données. ■ WCS (Windows CardSpace) pour l’authentification des utilisateurs. © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 3 11/01/10 10:03 4 Partie I Approches de Silverlight ■ WWF (Windows Workflow Foundation) pour l’amélioration des flux de production. ■ WPF (Windows Presentation Foundation) comme couche de présentation. WPF est la technologie qui nous concerne : Silverlight en est un développement à la fois hérité et parallèle. On peut considérer que WPF représente le futur de la technologie Winforms. Tout en conservant les capacités précédentes, il intègre les profils du designer et de l’ergonome qui, dans 90 % des cas, étaient soit mis à l’écart, soit relégués au second plan. Microsoft comprend en effet que la fonctionnalité n’est plus la seule garantie d’une réussite commerciale ou technique. De plus en plus d’applications voient le jour et beaucoup sont fonctionnelles. Toutefois, seules très peu d’entre elles y ajoutent l’ergonomie et l’esthétisme, deux facteurs que l’on retrouve pourtant dans l’industrie automobile, les téléphones portables et de nombreux autres secteurs. Grâce à l’environnement WPF, vous pourrez changer le visuel d’une application dans sa globalité. Modifier le design d’une barre de défilement ou d’une liste d’éléments se révèlera très simple. Tout ceci est réalisable grâce à WPF et au langage XAML (eXtensible Application Mark-up Language). Le XAML permet de formaliser n’importe quel dessin vectoriel ou composant visuel sous forme de balises XML. Un client peut dorénavant configurer le visuel d’une application en modifiant des feuilles de styles XAML et y apposer ainsi sa charte graphique sans faire appel à l’éditeur. Certes, ces opérations sont réalisables depuis longtemps en important des bibliothèques entières de classes, mais autant dire que les graphistes n’étaient pas vraiment présents dans le processus de création. Exit donc les interfaces grises, rectangulaires, héritées de Windows 3.1. WPF aborde donc avec succès l’un des grands chantiers de l’informatique moderne : la séparation complète du fond et de la forme, elle dépasse de loin les Winforms sur ce point. D’autres technologies ont également essayé de répondre à cette problématique : XUL, de la fondation Mozilla, ou encore le langage FXG basé sur SVG du côté d’Adobe. WPF a pris de l’avance, mais concerne les développements sur système Windows pour les langages de hauts niveaux. À partir de ce constat, une nouvelle problématique apparaît. De manière générale Microsoft est avant tout éditeur de solutions, quel que soit le système d’exploitation, c’est là son cœur de métier. Il se doit donc proposer des solutions indépendantes du système. Afin de supprimer le couplage existant entre l’environnement de développement et les systèmes d’exploitation Windows ciblés, WPF/Everywhere voit le jour. C’est l’ancien nom de code de Silverlight. L’objectif est clair : puisque l’on crée des solutions autant faire en sorte qu’elles ciblent le plus de systèmes d’exploitation possibles. Le moyen le plus efficace consiste alors à proposer un lecteur Internet sous forme de plug-in. Les navigateurs les plus courants sont ciblés en premier, et Silverlight voit finalement le jour en novembre 2007. Cette initiative de Microsoft répond avant tout aux attentes du marché actuel qui évolue rapidement vers les applications en ligne et répond au quasi monopole de la plateforme Flash. 1.3 Les avantages de Silverlight Développer avec Silverlight apporte beaucoup d’avantages, dont certains ne lui sont pas forcément propres, mais sont plutôt relatifs à l’ensemble des technologies asynchrones présentes sur le Web comme Shockwave, Flash, Silverlight et Ajax. Silverlight est avant tout orienté applications interactives riches et, dans ce cadre, il bénéficie également de toute l’expérience de Microsoft en matière de développement. Ce serait une erreur de penser que les graphistes sont délaissés car des efforts importants ont été réalisés pour fournir des outils de design et d’animations performants. Lors du rachat de Macromedia par Adobe, de nombreux acteurs de talent furent recrutés par Microsoft pour atteindre ces objectifs. Voici les avantages les plus significatifs de Silverlight : © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 4 11/01/10 10:03 Chapitre 1 Introduction 5 ■ Comportement asynchrone. Ajax est la première technologie asynchrone au sein du navigateur, mais c’est aussi la plus ancienne. Apparu avec Internet Explorer 5 en 2001, cette technologie, rapidement adoptée, provient d’un objet en particulier (XmlHttpRequest) permettant d’effectuer des requêtes client serveur. La spécificité des technologies asynchrones réside dans le fait qu’elles ne nécessitent pas le rechargement complet de la page du navigateur à la réception des données serveur. L’utilisateur peut même continuer à utiliser le reste de l’interface sans provoquer d’erreur. Silverlight possède de nombreuses méthodes asynchrones, plus modernes qu’Ajax permettant non seulement les échanges dans un format texte, mais également dans un format binaire. Ainsi, l’échange d’images, de flux vidéo, de données typées est possible ; le mode peer-to-peer est également supporté. ■ Il ne dépend pas d’une technologie serveur spécifique. Il vous suffit d’un simple client FTP et le tour est joué. Vous n’avez pas besoin d’une configuration serveur spécifique ou propriétaire. Un serveur Apache traditionnel fera très bien l’affaire pour diffuser votre site ou votre application Silverlight. ■ Ouvert aux technologies du Web. Les langages dynamiques, comme JavaScript, ont la capacité de communiquer avec une instance de plug-in Silverlight de manière transparente. La communication est en réalité possible dans les deux sens. De plus la lecture, l’écriture ou l’envoi de données sont réalisables dans des formats courants, comme XML, ou JSON, de même que l’accès à n’importe quel type de technologie côté serveur. On peut ainsi interfacer sans problème une application Silverlight avec des services, côté serveur, codés en PHP, ASP, etc. ■ Il bénéficie d’une compatibilité multi-environnement. Comme nous l’avons dit au début de l’introduction, Silverlight est accessible en tant que lecteur sur Mac OS, Windows et Linux (Moonlight) et sur les navigateurs Chrome, Firefox, Internet Explorer 6, 7 et 8, Safari. Votre application, bien que développée avec Visual Studio, Expression Blend ou même Eclipse, sera donc visible et accessible au plus grand nombre. ■ Les applications ne nécessitent pas de déploiement. Autrement dit, une fois accessible à une adresse donnée, l’application est lisible et exécutable au sein des navigateurs par les internautes. Cela est peut être anodin ou normal si vous travaillez actuellement sur le marché du Web, mais la philosophie actuelle (en mutation) consiste encore à déployer des clients lourds et des applications locales poste par poste. Dans des réseaux comprenant des milliers de postes clients, le déploiement de telles applications est extrêmement coûteux en ressources humaines et techniques. Les applications Silverlight apportent une réponse efficace à ces problématiques de diffusion. ■ Les langages logiques .Net supportés sont gérés. Le code géré (dit aussi managé) est l’opposé du code interprété. C# ou VB sont des codes compilés, JavaScript, PHP, HTML sont interprétés. Cela signifie qu’ils sont lus par le logiciel d’une machine cliente ou serveur dans le cas de PHP. Pour un langage comme JavaScript, cela se traduit par des différences de performances flagrantes selon le navigateur, mais aussi par des différences d’interprétations. Dans un site web traditionnel, l’aspect visuel, ainsi que la version du langage, peuvent donc varier fortement selon les navigateurs (IE, Firefox ou Safari par exemple). Au sein de Silverlight, toutes ces problématiques sont résolues, l’affichage sera le même quelle que soit la plateforme, la version du langage reste constante. On obtient également beaucoup de performances car le langage est géré. À la compilation, il est transformé et optimisé en langage intermédiaire. Par la suite, selon la machine cliente, le système d’exploitation et le navigateur, le lecteur s’adaptera pour l’optimiser en un langage machine adapté à chaque navigateur (voir Chapitre 3). © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 5 11/01/10 10:03 6 Partie I Approches de Silverlight ■ Il contient un moteur d’affichage vectoriel puissant. L’ensemble des composants ou objets visuels sont vectoriels. Ils sont donc affichés grâce au moteur vectoriel Silverlight. De nombreuses problématiques, comme le poids des fichiers déployés ou encore la génération d’objets de manière dynamique, sont ainsi résolues. Les animations vectorielles sont non seulement possibles, mais également simples à réaliser. L’affichage de texte avec des polices de caractère embarquées, des vidéos ou des images est aisé à mettre en œuvre. Les visuels ne sont pas figés sous forme de bitmap ce qui facilite grandement la mise à jour des applications et le travail collaboratif. ■ Il améliore la collaboration entre designers et développeurs. Héritant de WPF, Silverlight bénéficie de la même architecture de production. Cela signifie que le langage XAML est présent pour formaliser l’ensemble des éléments visuels d’une application. Tout ce que le graphiste va produire génère du XAML, de la mise en forme jusqu’au moindre pictogramme visuel. La conséquence directe est que la création d’un composant (ou contrôle) personnalisé, comme une mire de connexion par exemple, s’effectue en deux étapes distinctes complètement autonomes. Les designers interactifs ou les intégrateurs créent les éléments visuels et les animations. Le développeur ajoute le code logique. C’est une vision un peu simplifiée de la réalité, mais cependant assez proche. L’avantage réside dans le fait que les graphistes participent pleinement à la conception. De plus, ce qu’ils produiront sera fidèlement réutilisé par les développeurs et non recréé ou retraduit par ceux-ci. À tout moment, les designers pourront mettre à jour le visuel sans mettre en danger l’aspect fonctionnel ou modifier le code logique. 1.4 La suite Expression Studio La gamme Expression Studio fait partie de la stratégie WPF. Cette suite de logiciels apporte un confort jamais atteint pour le développement d’applications Microsoft. Les objectifs de la gamme Expression Studio sont : ■ Permettre la création d’applications riches connectées (Rich Desktop Application) ou d’applications riches pour navigateur (Rich Internet Application) via Expression Web ou Blend intégrant Silverlight. ■ Améliorer la qualité graphique et l’ergonomie des applications en proposant de nouveaux outils aux profils de type graphiste, intégrateur ou designer dans l’environnement .Net et Silverlight, tout cela en scindant le fond et la forme. Ces outils facilitent la mise en place de un flux de production reposant sur la collaboration intermétiers. ■ Proposer de nouvelles solutions aux besoins de la "vidéo à la demande" très présents sur le Web grâce à Silverlight, Expression Encoder et au format wmv. ■ Répondre aux problématiques traditionnelles propres à la création de site Internet via Expression Web. NOTE INFO Pour rappel, Visual Studio est l’outil de développement phare de Microsoft. Du point de vue d’un développeur et concernant des projets standard, Visual Studio peut être utilisé seul. En effet, il est possible de bâtir un projet Silverlight sans besoin de logiciels de la gamme Expression Studio (Blend ou Design). Toutefois, cela ne serait pas pertinent, on pourrait en effet se demander quelle serait la valeur ajoutée de telles applications ? La gamme Expression facilite justement l’accès au développement à de nouveaux acteurs. Ces nouveaux profils, que sont l’intégrateur, l’ergonome et © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 6 11/01/10 10:03 Chapitre 1 Introduction 7 le graphiste, par leur apport, enrichissent de manière considérable l’approche et le ressenti d’une application pour l’utilisateur. La gamme Expression Studio apporte une ouverture exceptionnelle au monde du graphisme qui, jusque-là, était laissée de côté. Blend et Design ont donc pour mission de fournir du contenu graphique et interactif, ainsi qu’une ergonomie accrue en comparaison des applications bureautiques ou Internet standard. Voici une liste des outils compris dans la suite : ■ Expression Web pour la création de sites Internet ; ■ Expression Blend pour la conception d’interfaces riches ; ■ Expression Design pour la conception graphique vectorielle ; ■ Expression Encoder pour l’encodage des fichiers au format wmv en haute définition ; ■ Expression Media pour l’organisation et la lecture des médias ; ■ Visual Studio pour la conception, le développement et l’architecture d’applications. Pour notre part, nous couvrirons la conception d’applications interactives riches via l’utilisation d’Expression Blend et de Visual Studio. 1.5 Positionnement métier Comme nous le voyons, WPF et les outils de la gamme Expression sont sur le point de bouleverser les modes opératoires existant. La tendance actuelle repose sur un besoin devenu essentiel qui consiste à formaliser le graphisme grâce à des langages déclaratifs de type XML. Il est intéressant de noter que ce mouvement, initié par Mozilla avec le XUL et par Adobe avec le SVG il y a quelques années, est aujourd’hui concrétisé par Microsoft. Cependant, nous parlons bien de tendance, ce qui signifie que d’autres acteurs comme Adobe reprennent la même direction. Le FXG est la version Adobe du XAML, les deux langages se ressemblent fortement. L’enseignement que l’on peut tirer de cette situation est que les modes et flux de production s’uniformisent et sont en pleine mutation. Les prochaines années seront riches à tous points de vue. Les capacités de Silverlight, Flash et Ajax (et nouvellement XHTML 5) à proposer des langages performants et à diffuser du contenu innovant seront décisives. Ce qui est abordé dans cette section est donc valable pour tous les acteurs du marché quelle que soit leur provenance. 1.5.1 Designer interactif Au sein de l’environnement .Net, trois logiciels de la gamme sont le théâtre de cette évolution : Expression Blend, Expression Design et Visual Studio : ■ Expression Design concerne essentiellement les graphistes. Il contient l’ensemble des outils nécessaires à la création vectorielle. Cependant il joue aussi le rôle de passerelle et permet d’importer nativement de nombreux types de fichiers dont le format Adobe Illustrator ou le format Photoshop psd. ■ Expression Blend cible avant tout les designers interactifs, les intégrateurs et les designers d’eXpérience Utilisateur. Les ergonomes peuvent aussi dans une certaine mesure créer des maquettes et prototype en partie réutilisables (voir Chapitre 10). © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 7 11/01/10 10:03 Partie I 8 ■ Approches de Silverlight Visual Studio comme outil de développement principal est conçue pour les développeurs et possède un puissant outil de débogage que Blend ne fournit pas. À ce jour, il est considéré comme l’un des meilleurs produits délivrés par Microsoft. Le tableau 1.2 indique la localisation de Blend / Design dans la chaîne de production, ainsi que l’investissement à prévoir en fonction du rôle de chacun. On remarque que chacun peut l’utiliser, Blend étant un outil polyvalent et multiforme. Tableau 1.2 : Positionnement de Blend au sein de la chaîne de production. Outils et niveau d’utilisation Rôle Expression Design Expression Blend Visual Studio Graphiste Fort Moyen Aucune Designer interactif Moyen Fort Faible à moyen Développeur Aucune Faible à moyen Fort Comme on peut s’en rendre compte, un nouveau profil émerge : le designer interactif. On peut considérer ce profil comme un nouveau genre de designer web. Dans la majorité des cas, c’est un graphiste ayant évolué et acquis une réelle culture de développeur ainsi qu’une connaissance aiguë de l’ergonomie. L’intégrateur HTML représente en partie ce type de profil. Il est à la fois confronté à des langages comme JavaScript, PHP (réalisation de modèles) et CSS, tout en conjuguant cette technique à une sensibilité de graphiste. La différence entre intégrateur et designer interactif repose essentiellement sur la partie animations et transitions. On peut voir le flasher comme designer interactif. Son objectif principal est de coupler le visuel, l’ergonomie, l’animation et les transitions. Il considère la logique applicative et la fonctionnalité comme importantes, mais coulant de source et plutôt dévolues aux développeurs. Au sein des environnements WPF et Silverlight, le designer interactif tient un rôle crucial puisqu’il fait le lien entre les profils situés à chaque extrémité de la chaîne de production. C’est un élément fédérateur. Silverlight et WPF proposent un modèle qui facilite la collaboration, mais c’est le profil de designer interactif qui formalise et permet cette communication. On pourrait y voir un mélange des genres douteux, mais sans lui, on se retrouverait dans une situation délicate où les graphistes n’auraient finalement que peu d’influence sur la production. 1.5.2 La chaîne de production Tout projet conçu avec Blend s’inscrit dans le cadre WPF, les applications Silverlight sont un sousensemble de WPF. Cependant, au contraire des applications WPF bureautiques, les applications Silverlight sont multi-plateformes et multi-navigateurs. Les projets Silverlight suivent la logique classique de tout développement applicatif avec un renforcement singulier de la collaboration entre chaque pôle métier. Voici le détail de chaque étape et son impact métier : ■ Cahier des charges. Profils concernés : client, D.A. / D.T., chef de projet, graphistes, développeurs, ergonomes et utilisateur final… © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 8 11/01/10 10:03 Chapitre 1 Introduction 9 ■ Maquette fonctionnelle et story-boards. Profils concernés : 50 % développeurs et 50 % graphistes ou ergonomes. Réflexion papier commune sur la disposition des objets de l’interface et sur l’ergonomie de l’application. La navigation et la cinématique doivent être pensées à ce stade. ■ Squelette technique et maquettage. Les collaborateurs du projet sont dans le même bureau et travaillent ensemble à : 1 l’élaboration du squelette technique, profils concernés : 95 % développeurs et D.T., 5 % graphistes ou ergonomes 1 la création de plusieurs maquettes sous Expression Design ou Illustrator "Look & Feel", profils concernés : 5 % développeurs et 95 % graphistes ou D.A. Cette phase se termine lorsque l’une des maquettes est validée par le client. ■ Production. Cycle de "va et vient" dit itératif entre chaque pôle métier qui est une interaction continue entre les profils. Durant cette phase chaque pôle métier fournit à l’autre les éléments dont il a besoin afin d’avancer dans le développement du projet. 1 Développement de la partie logique de l’application, profils concernés : développeurs et directeur technique ; 1 Intégration graphique des éléments composant l’application, profils concernés : graphistes, designers interactif ou intégrateurs, directeur artistique. Figure 1.1 Le cycle itératif de production. Développeur Designer interactif Un designer interactif est toujours nécessaire. Toutefois, si le projet nécessite peu de ressources et qu’il est de faible envergure, ce rôle est dévolu à un graphiste ou à un développeur, ou encore aux deux à tour de rôle selon les besoins. 1.6 Langages de développement et choix Choisir un langage de développement n’est pas seulement un choix pragmatique, cette décision est étroitement liée à la sensibilité et à l’histoire personnelles de chacun. Nous allons toutefois lister les langages, et essayer de nous décider pour l’un d’eux de manière impartiale. 1.6.1 Langages accessibles Plusieurs langages sont accessibles aux développeurs dans la gamme Expression Studio, ils sont catégorisés en trois types distincts. La première catégorie concerne les langages managés propres à la CLR (Common Language Runtime). On y compte : © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 9 11/01/10 10:03 10 Partie I Approches de Silverlight ■ Le langage déclaratif XAML. XAML signifie eXtensible Application Mark-up Language. Ce langage permet de formaliser le graphisme : les courbes vectorielles, les dégradés de couleurs ou les couleurs unies, les styles, les composants visuels, les animations, les modèles de composants qui correspondent à la forme et au graphisme de ceux-ci. ■ C#. Le langage logique que nous utiliserons tout au long du livre (voir Chapitre 2). ■ Visual Basic. Langage de haut niveau, comme C#, mais plus spécifique dans son écriture, nous ne l’utiliserons pas dans ce livre. La deuxième catégorie concerne les langages managés dynamiques gérés par la DLR (Dynamic Language Runtime). Ils ne seront pas couverts ici. Parmi eux on trouve : ■ IronPython. C’est le portage du python pour la plateforme .Net, vous trouverez plus d’informations à l’adresse suivante : http://www.codeplex.com/IronPython. ■ IronRuby. C’est la version du langage Ruby propre à .Net, vous trouverez plus d’informations à l’adresse suivante : http://www.ironruby.net/. ■ JScript. C’est un langage créé par Microsoft qui jouit de la norme ECMA. ■ JavaScript. Version spécifique du langage du même nom mais compilée par la DLR La troisième catégorie fait référence au langage non compilé (donc interprété) JavaScript, cela engendre moins de possibilités et d’accès au lecteur Silverlight, mais l’accès est transparent. Le XAML est le seul langage dont vous aurez besoin quel que soit le code logique que vous choisirez. Celui-ci est orienté présentation, c’est un langage déclaratif de type XML (voir Chapitre 2). 1.6.2 CLR, DLR et langages non compilés Nous aborderons en détails les notions de CLR et de DLR au Chapitre 3. Sachez simplement que la CLR est le compilateur gérant les langages natifs de la plateforme .Net, donc de l’environnement Silverlight. Au sein de Silverlight, deux langages sont gérés par défaut dans les projets : Visual Basic et C#, mais la CLR donne accès à d’autres langages moins connus comme F# par exemple. D’une toute autre manière, la DLR ouvre et enrichie Silverlight d’autres langages dynamiques qui ne sont pas forcément hérités de ou propres à .Net. Un langage dynamique est un langage capable de faire évoluer sa structure à l’exécution, autrement dit un langage dont il est facile d’étendre les capacités des classes ou objets natifs dynamiquement. Ce type de langage n’est pas réellement dans la culture originelle de Microsoft mais les anciens dogmes provenant des années 80 sont en cours de mutation. L’évolution de C# en est un flagrant exemple. La DLR est en réalité une surcouche à la CLR, elle permet à des langages dynamiques d’accéder au lecteur Silverlight en communiquant avec la CLR. JavaScript est un cas particulier, il peut être géré de deux manières, soit par la DLR, soit de manière transparente. Lorsqu’il est géré par la DLR, sa mise en production est, au départ, plus complexe mais dans ce cas, il accède entièrement à la CLR et bénéficie des avantages liés à cette dernière. Dans le cas d’une utilisation transparente, il donne directement accès à une petite partie des capacités du lecteur Silverlight, mais les performances à l’exécution sont beaucoup moins élevées puisqu’il n’y a pas de compilation. Le choix du langage dépendra essentiellement de votre culture de développeur. Cependant, décider d’utiliser ou non directement JavaScript comme langage non compilé est un peu moins évident, vous devrez vous poser deux questions : © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 10 11/01/10 10:03 Chapitre 1 ■ ■ Introduction 11 Quel type de projet souhaitez-vous construire ? 1 Si vous souhaitez construire un projet Silverlight à faible interactivité, comme des bannières ou de petits sites événementiels, JavaScript paraît plus adéquat car sa mise en œuvre, ainsi que l’architecture projet, est moins complexe. Le plus logique sera alors de créer un site web Silverlight dans lequel JavaScript assurera la logique. 1 Si vous souhaitez au contraire créer une application riche ayant une forte interactivité utilisateur, optez pour C#, Visual Basic ou n’importe quel langage géré par la DLR (selon votre culture). Tous ces langages ont accès à l’ensemble des fonctionnalités du lecteur Silverlight et permettent des performances bien supérieures à l’intégration simple de JavaScript. Bien que cela soit réellement possible, réaliser une bannière avec C# est sans aucun doute disproportionné. Quel est votre corps de métier ? 1 Si vous êtes intégrateur HTML ou que vous cumulez les expériences dans ce secteur, vous avez sans doute déjà développé avec JavaScript et vous connaissez peut-être AJAX. Vous n’aurez donc pas d’effort de reformation dans un premier temps. Vous vous apercevrez cependant que certaines interactions seront moins faciles, voire impossibles à mettre en place en JavaScript. Je vous encourage à envisager un apprentissage C# à moyen terme. Visual Basic est un très bon langage bénéficiant d’une grande communauté, mais sa syntaxe est très spécifique. C# est tout de même plus proche de ce que nous connaissons. 1 Si vous êtes un développeur Java ou .Net, C# paraît tout désigné, la puissance de ce langage, son confort d’utilisation, son orientation vers des langages fonctionnels, surtout dans sa version 3 (avec les inférences de type par exemple) sont sans égales. Pour notre part, nous utiliserons de façon significative le XAML et opterons pour le langage C#, assez proche de la norme ECMA (les origines de l’auteur…) sur de nombreux points. JavaScript ne nous servira qu’à l’intégration de Silverlight au sein d’une page HTML. Ce livre s’adresse en partie aux designers web, dans ce cadre et pour diverses raisons, nous n’aborderons pas Visual Basic, IronRuby, IronPython ou JScript. Au Chapitre 2, afin de commencer notre apprentissage de Silverlight, en douceur, nous ferons un rapide retour sur les bases du langage XML et XAML, ainsi que sur C#. De cette manière, vous les assimilerez plus facilement par la suite. © 2010 Pearson Education France – Pratique de Silverlight – Éric Ambrosi Silverlight.indb 11 11/01/10 10:03