Archive

Articles taggués ‘Visual Studio 2010’

Développement d’applications sur Windows Phone 7

L’année dernière, pendant mon année d’alternance, j’ai travaillé sur la plateforme Windows Phone 7. Je vais essayer de partager avec vous mon expérience sur cette plateforme mobile qui reste un peu méconnue du grand public, tout en essayant d’avoir un esprit critique sur le sujet.

Dès mon arrivée en septembre 2010, j ‘ai eu la chance  de manipuler des terminaux qui n’étaient pas encore commercialisés (date officielle de sortie : le 21 octobre 2010). Voici les réactions immédiates qui me sont venues concernant le hardware. Côté design rien d’impressionnant,   les téléphones sont assez sobres mais ce qui m’a surpris ce sont les performances : une rapidité d’exécution pouvant faire pâlir certains de ses concurrents et des écrans de très bonne qualité. La gamme des téléphones est assez homogène (caractéristiques techniques moyennes : processeur 1Ghz, 512MB de RAM, capacité entre 8 et 16Go, écran 800x480pixels, APN 5mégapixels avec Flash).

Au niveau de l’OS, le premier démarrage donne vite un brin de déception : on trouve un premier bureau avec les applications épinglées (grosses icônes carrées) et un autre avec « une grosse liste horizontale de toutes les applications », autant dire qu’il ne faut pas avoir peur de slider lorsqu’on a une grosse liste d’applications… On retrouve donc une interface Metro assez basique et on se rend vite compte que, mis à part la couleur des icônes et l’épinglage d’applications, rien n’est modifiable. En ce qui concerne les applications natives, on retrouve les classiques  (« Téléphone», « Contacts », « Photos », « Musiques + Vidéos », « Internet Explorer 8 » et « Jeux » qui correspond au Xbox Live),  la suite Microsoft Office Mobile et le moteur de recherche Bing accessible à tout moment (grâce à la touche recherche). Enfin, on a le Windows Phone MarketPlace, sur lequel, j’ai pu me rendre compte tout au long de l’année, qu’on retrouve petit à petit les grands classiques des autres markets (pour n’en citer aucun).

Maintenant, que le tour de l’utilisateur lambda est fait, passons à la partie un peu plus technique.

Le développement d’application WP7 repose sur une version de Silverlight « adaptée ». En plus du framework traditionnel, on trouvera toutes les APIS spécifiques aux SmartPhones : accéléromètre,  géolocalisation, caméra, tâches : téléphoner, envoyer un message, lancer le marketplace, et d’autres encore. On trouve aussi les 2 modes de navigation propres aux applications WP7 que sont le panorama et le pivot ; dans le cadre de mon projet l’accent était mis sur l’utilisation du panorama pour garder l’authenticité de WP7 et ne pas essayer de copier la navigation par onglets des autres plateformes mobiles. Toutefois, on observe une certaine amputation au niveau des composants classiques qui composent Silverlight et celle-ci s’avère vite handicapante.

Qui dit Silverlight, dit pattern MVVM (Model View ViewModel)… Ces deux notions étaient pour moi totalement inconnues et mes premiers pas furent hésitants, mais une fois les grands principes compris, on devient très vite adepte du concept.  Pour faire simple, et sans rentrer dans les détails voici un petit schéma  qui explique le pattern:

MVVM est basé sur le principe de « Databinding » qui permet de synchroniser une propriété du ViewModel avec une propriété d’un composant graphique de la View (y compris les événements : click, changement de sélection,…).  Cette technique devient très vite appréciable : code minimal, rafraichissement  automatique  dans les 2 sens entre la View et ViewModel.

De plus, du fait de sa faible dépendance entre les interfaces graphiques et le code métier, MVVM facilite les tests de code et la séparation des taches des développeurs et des designers. J’en profite pour faire un petit point sur les outils mis à disposition. Tout d’abord, on trouve l’incontournable IDE pour les technologies Microsoft, Visual Studio auquel est associé le Windows Phone Developer Tools (SDKs + Emulateur). Pour moi, l’environnement s’est avéré être très complet : parmi les choses appréciables, on trouve un petit éditeur d’interfaces graphiques, le déploiement sur l’émulateur ou sur un device, un débuggeur pas à pas (dans les 2 cas de déploiement). Il est possible d’effectuer tout le développement dans Visual Studio, toutefois, dans le cadre d’un projet où un designer a un rôle à part entière à jouer, il peut utiliser l’outil Microsoft Expression Blend pour créer les interfaces graphiques sans se soucier du code métier qui tournera derrière. Pour ma part, je pense que Blend est un « jouet de luxe » et qu’on peut rapidement s’en passer.

Voici un petite liste des concepts que j’ai pu utiliser et qu’il est judicieux d’évoquer :

  • L’ IsolatedStorage est un espace de stockage de données propres à chaque application et qui est abstrait du reste de système de fichiers et facile d’utilisation.
  • L’application possède plusieurs points d’entrées (launched ou actived) et de sorties (closed et deactivated) dans lequel on peut faire des traitements différents selon que l’utilisateur ferme ou mette en background l’application. On trouve aussi  une méthode Application_UnhandledException qui permet d’effectuer des actions importantes (sauvegarde du contexte par exemple) avant que l’application se ferme dans le cas d’une exception non traitée (donc crash) et cela s’avère très utile.
  • Dans l’attente de la gestion du multitâches, le développeur doit gérer la sauvegarde du contexte de l’application lors de sa « mise en background » et le rétablissement de ce contexte lors de la réactivation de l’application. Ce procédé appelé le tomstoning est assez fastidieux puisqu’il faut sauvegarder unitairement toutes les données nécessaires, mais il est toutefois inévitable dès lors que l’application possède des données persistantes. Dans le cadre de mon projet, c’était un point essentiel à respecter et une grande partie des tests y était consacrée.

Avec tout cela, on peut donc réaliser des applications avec des interfaces graphiques très riches sans produire beaucoup de code car le pattern MVVM très puissant quand on a compris les bonnes pratiques. J’ai pu aussi m’appuyer sur un MSDN très complet et plutôt bien présenté.

Pour moi, le principal aspect négatif est que le framework manque parfois de composants graphiques ou de propriétés dans les composants existants. Cela a entraîné que j’ai vite eu le besoin de créer des composants « custom ». Un des autres faits est que la plateforme manque encore de contributeurs. J’ai été confronté à quelques problèmes techniques qui n’ont pas trouvé de réponse sur les forums appropriés.  Enfin, j’ai pu constater qu’on obtenait vite de mauvaises performances  si l’application est mal architecturée ou si on ne se soucie pas de décharger un maximum le thread principal.

Après une  expérience de 3 mois sur un projet WPF et un peu de recul, le MVVM que j’ai pratiqué sur WP7 n’était pas optimal (trop de code behind). Il s’avère que, à l’heure actuelle, le framework Silverlight pour WP7 n’est pas complet pour pratiquer un bon MVVM et que si l’on souhaite mettre en place une vraie architecture MVVM, il faut utiliser l’outil MVVM Light Toolkit et complexifier un peu son code.

En conclusion, et pour donner un avis tout à fait personnel, le développement d’applications sur Windows Phone 7 s’appuie sur de bonnes bases (Silverlight pour des interfaces interactives riches, MVVM pattern, environnement de développement complet et pratique),  mais laisse rapidement transparaitre une grosse lacune : le framework WP7 n’est pas assez riche par rapport à ces aînés (Silverlight et .NET). Beaucoup de personnes pourront vite être repoussé par l’étiquette Microsoft, mais pour moi, le développement d’applications sur WP7 est aussi intéressant que le développement sous Android (pour avoir pratiquer les 2). Microsoft doit toutefois, selon moi,  enrichir son framework et l’interface de son OS car elle présente un excès de sobriété.

Nouvelles versions

  • Actuellement, on trouve la version de l’OS 7.5 « Mango » : Multitâches complet, IE9, copier-coller, … et la version 7.1 du SDK Windows Phone.
  • A venir, l’OS nom de code « Tango » (date inconnue) avec certainement un nouveau SDK.

Les liens utiles

Sortie de Visual Studio 2010

La date de sortie de Visual Studio 2010 est maintenant officielle : ce sera le 12 Avril 2010. C’est Rob Caron qui l’annonce.

Rappelons que la sortie avait été repoussée suite à des problèmes de performance. Une version Release Candidate devrait être disponible en Février avec une licence « Go Live ». Espérons que les problèmes de performance soient résolus dans cette version.

Le blog d’Aurélien Norie

Visual Studio 2010 : une nouvelle version preview planifiée

Les performances de la beta 2 de Visual Studio 2010 n’étant pas au rendez-vous, Microsoft a planifié une nouvelle version preview et retarde le lancement de la version finale de quelques semaines.

L’annonce de Scott Guthrie.

Categories: .NET, Outillage Tags:

TeamPrise disponible dans Visual Studio 2010 Ultimate

Visual Studio 2010 Ultimate, le remplaçant de la suite Visual Studio Team System intègrera la suite TeamPrise client. Cette suite permet notamment d’accéder aux fonctionnalités d’ALM (Application lifecycle management) de Team Foundation Server depuis un environnement Eclipse: gestion des sources, gestion des tickets, gestion des builds et reporting.

Quelques détails sur l’acquisition de Microsoft.

Modélisation UML avec Visual Studio 2010

Comme je l’avais annoncé dans un précédent billet, j’ai installé Visual Studio 2010 sur une machine virtuelle (merci à la DSI). Mes premiers essais ont porté sur la modélisation UML. C’est un enjeu important pour Microsoft qui va pouvoir compléter son usine logicielle. Aujourd’hui en effet, la modélisation UML se fait généralement avec des outils comme Enterprise Architect.

Afin de me faire une idée objective, j’ai réalisé mes tests sans aucune lecture préalable. Je n’ai pas encore fait le tour des possibilités mais voici mes premières impressions:

  1. La prise en main facile. Il faut créer un projet de modélisation et ensuite ajouter les diagrammes souhaités.
  2. L’interface est conviviale. A titre d’exemple, voici un diagramme de classe : vsts2010-class-diagram
  3. 5 diagrammes sur 13 d’UML sont disponibles : diagrammes d’activités, de composants, de use case, de classes, de séquences. UML n’est pour l’instant pas complètement supporté dans les 5 diagrammes
  4. Je pensais trouver dans cette première version un générateur de code, mais je crois qu’il va falloir attendre (ou alors la fonctionnalité est bien cachée)

Pour terminer, voici 2 fonctionnalités que  je n’ai pas encore testées me paraissent intéressantes:

  1. Les diagrammes ou les éléments de diagrammes peuvent être liés aux work items de VSTS. J’ai utilisé une fonctionnalité équivalente avec le plug-in d’Enterprise Architect, et je trouve celà vraiment pratique.
  2. Les diagrammes peuvent être versionnés dans le gestionnaire de sources très simplement.

Visual Studio 2010 en beta 1

La beta 1 de Visual Studio 2010 est disponible depuis le milieu de semaine. Une présentation générale est également disponible.

Les enjeux importants de cette version sont à deux niveaux:

  1. l’IDE en tant que tel avec tout ce qu’il peut apporter pour le développeur (modèles de projets Azure par exemple, support natif de JQuery,…)
  2. Mais n’oublions pas que derrière cette interface, il y a une nouvelle version de .NET avec la programmation parallèle et le support de P-LINQ, Entity Framework 4.0,…

Je suis en train d’installer cette beta 1 sur une machine virtuelle et ferai part de mes premiers retours.

Categories: .NET, Outillage Tags: , ,