Blog Arolla

TechDays 2012 – partie 1 – nouveautés du framework

Compte-rendu général de mon parcours de cette année aux Tech Days

Mardi 7 février (matin)

Arrivée en grande forme, tout juste à l’heure, mon badge est déjà imprimé, direction la plénière, je ne voudrais pas rater Eric Mittelette !

Plein les yeux et les oreilles, la plénière d’ouverture c’est l’apéritif des TechDays… Comme tous les ans, cette keynote est l’occasion de “faire le show” ! Je la trouve toujours utile pour se mettre dans le bain, et se préparer pour les trois jours à venir. Au menu dans le désordre : cloud, asynchronisme, IHM, NuGet, MvcScaffolding, objects connectés, Metro, C++ 11 dans VS11 CTP, HTML5 / CSS3, CAAS (Compiler As A Service) / Roslyn…

Pour continuer sur ma lancée, direction l’amphi bleu pour une session générale sur les nouveautés du framework 4.5, en trois parties :

  1. Asynchronisme, programmation parallèle, nouveaux mots-clés du langage async / await, amélioration des Task de la TPL

    On commence par une description de l’évolution des modèles de programmation asynchrone au fur et à mesure des versions du framework, avec les étapes suivantes :

    • Modèle de programmation asynchrones : BeginMethod / EndMethod
    • Modèle de programmation par évènements : OnMethodCompleted
    • Modèle de programmation basé sur des tâches asynchrones : objets Task de la TPL

    On continue avec une explication async / await (la nouvelle syntaxe permettant d’incorporer des exécutions asynchrones dans un code très similaire à la syntaxe synchrone classique. Point à noter que je n’avais pas identifié à ce jour, et qui rend cette fonctionnalité très intéressante : l’exécution du code après la fin du traitement asynchrone se fait automatiquement dans le contexte de l’appelant initial (par exemple le thread graphique). Cela permet de régler très simplement les problèmes d’accès concurrents !

  2. DataFlow et programmation parallèle

    Ici, j’ai découvert une nouveau morceau des capacités de parallélisation du framework, avec les DataFlow. On joue à construire des traitements en utilisant des blocs qui permettent d’enchaîner des transformations et des actions, chaque bloc œuvrant comme un acteur indépendant. On constitue ainsi des réseaux de blocs qui parallélisent les traitements. Tout ceci se trouve dans l’assembly System.Threading.Tasks.Dataflow.dll, et correspond exactement à mon besoin du moment (préparer l’Aroll@fterwork: parallélisation et programmation asynchrone…) En plus, ça me donne très envie d’aller creuser un peu le fonctionnement de ces blocs avec Reflector !

  3. Les nouveautés du framework qui sont des modifications du “Core” du framework

    J’ai noté en particulier :

    • Une nouvelle API HTTP
    • Des améliorations de Managed Extensibility Framework
    • l’introduction de la notion de Portable Library, qui permet de partager des modèles entre les différentes formes du framework .NET (.NET classique, Silverlight, Windows Phone, XBox…)
    • WCF contract first, c’est à dire la possibilité de générer une interface de service à partir d’un WSDL fourni
    • la possibilité de générer un “single WSDL” sur les services pour tout regrouper en un seul fichier (quand par exemple on veut générer un proxy du service avec une techno qui ne gère pas les WSDL sur plusieurs fichiers)
    • et plus encore !

A la sortie de cette session, je croise @cyriux (Cyrille Martraire, directeur technique d’Arolla), s’en suit une déjeuner très intéressant, à défaut d’être savoureux. Tant pis pour les sessions de 13h00, il faut savoir faire des choix.

La suite dans le billet n°2 !

@pirrmann

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *