Le jeudi 9 juin 2011 se déroulait l’édition lilloise des Microsoft days proposé par Wygwam : les wygdays. Au programme cette année : SharePoint, Lync, HTML 5, Windows Azure, Windows Phone, Silverlight 5, IE 9, Bing Maps, Office 365, BI, TFS 2010 et C#5.

Beaucoup de sujets intéressants mais n’ayant pas le don d’ubiquité, il m’a fallu trancher parmi les différentes sessions et voici ce vers quoi mon choix s’est porté :

  • Présentation Internet Explorer 9
  • Choisir le meilleur Cloud
  • Nouveautés de Silverlight 5
  • Introduction à HTML 5
  • C# 5 Rx Extensions : Vers un développement asynchrone

Présentation Internet Explorer 9

La journée commence avec un peu de retard par une présentation d’IE 9 par David Rousset.

Après un bref historique du navigateur de Microsoft depuis 1995, le speaker nous fait un état des lieux très fair-play d’IE face à la concurrence. S’en suit le but même de la conférence : Les nouveautés d’IE9 et elles sont nombreuses : barre de recherche unifiée, isolation des threads pour chaque tabs, gestionnaire de téléchargement, outils de développement façon Firebug, sites épinglés et gestion du aero snaping. Le moins que l’on puisse dire c’est que le navigateur a rattrapé son retard face à Chrome et Firefox.

Côté sécurité, on voit apparaitre le filtrage ActiveX et un module permettant de protéger du tracking.

Les nouveautés se font aussi ressentir sous le capot avec un nouveau moteur de rendu supportant (partiellement) HTML5 et utilisant l’accélération matérielle via le gpu.

David nous présente le nouveau moteur JavaScript (Chakra) qui compile le JavaScript afin de booster les perfs permettant de se placer à côté des dernières versions des challengers habituels sur les benchmarks.

La conférence se termine par une ouverture sur IE 10 qui continuera sur la lancée de son prédécesseur et sera crossdevice.

Choisir le meilleur Cloud

Après un café rapidement avalé, me voilà assis à écouter le rédacteur en chef de Programmez!, François Tonic, nous parler de la manière de bien choisir son Cloud. Après avoir rappelé les différents types de Cloud (privé, public, hybride) ainsi que ce qui le compose (Iaas, Pass, Saas), nous parcourons les différentes offres du marché au travers de Azure, Force.com, cloudfoundry, openshift, app engine et j’en passe.

L’approche est pragmatique, si dans un premier temps le choix de son Paas se fera en fonction son environnement technique, il ne faudra pas hésiter à tester les apis de dev / admin.

François aborde ensuite les choses qui fâchent : la facturation :-).

Je me rends compte que les choses sont très complexes, lire chaque petite ligne du contrat est un passage nécessaire avant de signer. De plus les tarifs pratiqués poussent à réfléchir son architecture afin de l’optimiser au mieux. Chaque appel inutile se paye le prix fort en fin de mois et l’ardoise risque d’être salée pour les clients n’y prenant pas garde. La mise en place d’une architecture multi-tenant, malgré sa complexité, sera à adopter si l’on cherche à maitriser les couts et à obtenir une bonne réactivité face à une montée en charge.

La session prend fin après un focus sur la règlementation liée au Cloud. Il faut savoir que c’est le client qui est responsable et qu’il doit respecter les lois en vigueur concernant les données privés.

La matinée se termine sur une session plénière présentant les derniers projets menés à bien par Wygwam ainsi qu’un passage en revue des thèmes abordés lors des précédentes éditions de l’évènement.

Nouveautés de Silverlight 5

Le début d’après-midi sera occupé par un passage en revue des nouveautés de Silverlight 5. Parmi les quelques nouveautés, on notera l’arrivée du debugging xaml (pratique pour le binding), l’implicit data template qui permet de définir un ensemble de template qui s’appliqueront en fonction du type, la gestion des fenêtres enfant. Cette dernière version apportera aussi un support de la 3D avec une partie des api XNA.

La suite des nouveautés sont, à mes yeux, plus des évolutions que des nouveautés comme l’amélioration de la gestion du texte (characterspacing, linestacking), l’accès au disque dur qui n’est plus limité au répertoire utilisateur pour les trusted application, les list-box et combo-box se voient implémenter le text-searching, la latence de la lecture des fichiers multimédia est diminuée.

Introduction à HTML5

La session du milieu d’après-midi était dédiée à une introduction HTML5. David Rousset (encore !) et Giovanni Clément nous plombe le moral en nous rappelant l’état des lieux des navigateurs dans le monde : IE 6 représente encore 11% de part de marché 10 ans après sa sortie, 40% des navigateurs supportent HTML5 et 95% supportent Flash.

Après cette incartade, toutefois nécessaire pour planter le décor dans lequel prend place HTML5, la présentation à proprement parlé commence. Nous voyons l’utilisation de la balise vidéo qui ne résout hélas pas les problématiques d’encodage. En effet, il faudra compter au minimum 3 codecs (Ogg, H.264 & WebM) pour être sûr d’être lu par la majeur partie des navigateurs. Les spécifications n’ont pas tranché sur le format, heureusement que la balise permet de multiplier les sources en fonction de leur encodage…

Nous voyons ensuite l’utilisation de la balise canvas et svg au travers de site made in Microsoft : Bing et OneNote.

Je découvre au passage la librairie JavaScript Modernizr qui est simplement fabuleuse. Son objectif est de permettre, au travers d’un ensemble de polyfill, de bénéficier des avantages d’HTML5 sans sacrifier l’expérience utilisateur tournant sous des navigateurs anciens.

C# 5 Rx Extensions : Vers un développement asynchrone

Pour clore la journée, Eric Vernier et Giovanni Clément présente une session sur reactive extension. Dans un premier temps, Eric explique tout l’intérêt du développement asynchrone et de la manière de le mettre en œuvre au travers de la TPL (Task Parallel Library) et de PLinq puis le temps est venu (un peu rapidement) pour Giovanni de présenter Reactive Extension qui s’appuie sur Linq et le couple IObserver/IObservable.

Après une petite démo, on se rend vite compte que faire de l’asynchrone via Rx permet d’avoir un code facile à écrire, propre et très lisible. De plus il répond à de nombreuses problématiques de développement asynchrone comme la gestion des exceptions.