Le blog francophone consacré
aux technologies Esri

Flex vs. Silverlight - Productivité et IDE


Dans le choix d'une technologie de développement, la productivité dans l'écriture du code et la description de l'interface utilisateur de l'application constituent un aspect primordial. Les technologies RIA sont par nature exigeantes dans ce domaine tant l'articulation entre le développeur et le designer doit se faire avec le plus de fluidité possible. La qualité et la productivité de l'IDE (Integrated Development Environment) doit être considérée avec vigilance. Dans ce domaine, Adobe et Microsoft proposent des approches assez différentes.

Flex

Coté Flex, on se rend vite compte que les outils sont matures et probablement les plus productifs pour la conception d'interface. Flex Builder est à la fois complet, efficace et simple à prendre en main en un seul outil permettant aussi bien de gérer l'IHM que de coder en ActionScript. Avec peu de formation, on arrive donc à développer rapidement une première application. On se méfiera tout de même de cette simplicité qui, sur des projets conséquents, peu conduire à un codage mal structuré et s'avérer catastrophique à maintenir. On notera également que Flex étant une technologie uniquement cliente il faut souvent la coupler à des technologies de développement serveur (PHP, .Net, Java, …). Celles-ci étant impossible à intégrer dans Flex Builder, vous devrez manipuler différents outils de développement pour un même projet.

Une application Web ArcGIS dans Flex Builder

Flex Builder (en application complète ou en tant que plug-in pour Eclipse) est donc l'outil incontournable, payant mais assez complet pour ne pas nécessiter d'autres produits. On notera enfin que l'API Flex ArcGIS propose des composants graphiques (ou non) complètement intégrés à Flex Builder ainsi que des templates d'applications.

Silverlight

Coté Silverlight, on retrouve le savoir-faire de Microsoft en terme d'outils de développement avec Visual Studio 2008 (payant) ou Visual Web Developper (gratuit). Outil exceptionnel pour la partie codage, Visual Studio offre l'énorme atout de pouvoir combiner les développements client et serveur si ces derniers sont basés sur la plateforme .Net (ASP .Net, WCF, …). On mettra aussi l'accent sur des fonctionnalités avancées qui peuvent s'avérer extrêmement importante sur des applications complexes comme le Refactoring, Unit Testing ou rofiling pauvres ou innexistantes dans Flex Builder. En revanche, Visual Studio se révèle vite très insuffisant pour la gestion de la partie IHM de votre application et l'outil Expression Blend s'avère rapidement indispensable.


Une application Web ArcGIS dans Microsoft Expression Blend

Avec une approche complètement graphique et très puissante en termes de créativité, l'application Expression Blend produit à la volée le code XAML. Blend (pour les intimes) fonctionne en parallèle de Visual Studio et permet véritablement la mise en place de workflows collaboratifs entre les développeurs et les designers. Chacun son outil, c'est donc l'approche proposée par Microsoft. Pour l'avoir tester sur un véritable projet, cette approche est vraiment payante si vous acceptez d'investir un peu en temps et en licences. On notera également que l'API Silverlight ArcGIS propose des composants graphiques (ou non) complètement intégrés à ces deux outils ainsi que les mêmes templates d'application pour Visual Studio et pour Blend.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

3 commentaires :

Yann a dit…
Ce commentaire a été supprimé par l'auteur.
Yann a dit…

Bonjour,

La démarche de vos articles est bienvenue. Malheureusement, je ne compte plus les imprécisions disséminées un peu partout. Je ne parlerai que pour Flex, et que pour cet article. Sachez que FlexBuilder est un produit sur Eclipse. Qui dit Eclipse, dit multitude de langages proposés. Il suffit juste par exemple pour Java d'installer le plugin gratuit Java Web Tools pour avoir une suite complete Flex / J2EE. Je vous ramène vers cette page : http://livedocs.adobe.com/flex/3/html/help.html?content=projects_2.html De plus Flash Builder 4, version à utiliser pour l'API ArcGIS 2 beta intègre en plus un ensemble d'outils Flex très utiles comme FlexUnit pour les tests unitaires.

Je trouve regrettable que vos articles me donnent une impression de parti prit pour les produits Microsoft, sachant ce qu'on peut faire de très bien avec l'API ArcGIS Flex !

bien cordialement

Gaëtan Lavenu a dit…

Bonjour,

Effectivement, FlexBuilder étant basé sur Eclipse on peut envisager de développer avec d'autres langages comme Java mais cela n'est pas possible sans l'installation de complément. De la même manière Visual Studio peut accepter d'autres langages que ceux de Microsoft avec l'installation de compléments. Pous ce qui est de FlexUnit, comme vous le dite, c'est pour la version 4 de FlashBuilder que je ne considère pas dans mes article car pas encore disponible (pas plus que je n'évoquerai Visual Studio 2010).

Je suis désolé que mon article vous donne l'impression d'un "parti pris" pour Silverlight car ce n'est ni mon opinion ni ma volonté. Concrètement, sur 10 application Web ArcGIS, nous déployons aujourd"hui chez nos clients 9 applications Flex pour 1 application Silverlight. Ceci représente l'état du marché des RIA ce qui ne veut pas dire que celui-ci n'évolue pas. Je suis toujours surpris de voir à quel point les développeurs Flash/Flex sont fermés à l'idée que d'autres technologies de RIA puissent arriver à faire aussi bien voir mieux sur certains point que l'offre d'Adobe. On retrouve ça un peu partout sur les forum et c'est regrettable. Ma série d'articles n'est pas terminée et sur d'autres aspects, Flex a encore un peu d'avance sur Silverlight et peut être les trouverez-vous alors plus impartiaux.

En tout cas, une de mes conclusions sera les deux technologies sont à la hauteurs des challenges des RIA et qu'il y a dans cette question du choix de Flex versus Siverlight un aspect culturel essentiel. En effet, vous ne convertirez pas un développeur Flex/Java en un développeur Silverlight/.Net et inversement. D'où l'intéret d'avoir le choix et bien comprendre les enjeux de l'une et de l'autre.