Techdays 2010, Web, RIA and fun

Voici le compte rendu de ma visite aux Microsoft Techdays 2010. Cet événement est réalisé sur trois jours, chaque journée commençant par une plénière abordant brièvement  différents sujets qui seront au programme, puis continuant avec différentes sessions par créneaux horaires.

Au programme  de mes 2 jours  de visite,  un parcours orienté sur les technologies Web et RIA, Visual Studio 2010 et un peu de fun également.

1ère plénière : infrastructure et développement des systèmes d’information agiles

Après une longue file d’attente pour récupérer mon pass et un passage au vestiaire (où d’ailleurs cette année aucune sacoche Techdays ne nous a été distribuée contrairement aux années précédentes), j’ai commencé cette journée par la plénière.  Plusieurs démos se sont enchainées sur des sujets variés : Azure, Windows 7, Virtualisation et Hyper V, Visual Studio 2010, Silverlight 4…

J’ai bien aimé les nouveautés présentées sur Visual Studio 2010, notamment le fait de pouvoir connaître les tests unitaires impactés par une modification de code (nouveauté que j’attendais déjà sur Team System 2008 qui a été repoussé à l’édition 2010), la génération automatique de tests unitaires d’après l’analyse des appelants des méthodes. J’avais déjà testé en beta 2, la nouvelle interface de l’IDE entièrement en WPF. Mais via cette plénière j’ai découvert des nouveautés comme l’amélioration du copier-coller de l’ALT+Sélection.

Un exemple de template de projet Visual Studio 2010, le projet WCF RIA Services, a été montré, en couplage avec Entity Framework et s’enchaînant avec une démo sur Silverlight 4 et ses fonctionnalités multi-touch et sa gestion de caméra. Un exemple parfait de démo avant-première des sessions auxquelles j’ai assisté par la suite. Au passage un chiffre a été donné : + de 50% de taux de pénétration de Silverlight sur le marché français !

Au final cette plénière, bien que présentant certaines démos intéressantes, ne m’a pas trop enthousiasmé. Celle-ci était peut-être orientée moins « show à l’américaine » que les autres années.

Nouveautés de WPF 4

L’objectif principal recherché est l’unification sur différents plans (multi-touch et Surface, Silverlight 4 et WPF 4 de plus en plus proches…). Bien que Silverlight ait un mode OutOfBrower, sa philosophie Web reste différente de celle de l’application Windows avec WPF 4. Ces 2 technos ne devraient donc jamais fusionner mais elles se rapprocheront de plus en plus. En tout cas, un des prochains challenges après la version 4 sera d’avoir un code XAML unique pour ces 2 technos.

Voici en résumé les nouveautés présentées de WPF 4 :

Graphiques et animations :

  • Amélioration de la visibilité des polices via la propriété TextFormatingMode (activable ou non)
  • UseLayoutRendering de SL (Silverlight) pour améliorer les contours de contrôles
  • Les Easing Animations de SL
  • Visual State Manager (déjà accessible par extension avec un projet sur CodePlex)
  • La mise en cache (modifiable dynamiquement à l’exécution)  d’UIElements (quasi tous les contrôles) en bitmaps (gain de vitesse mais perte des avantages du vectoriel)

Nouveaux contrôles :

  • Datagrid, calendar, datepicker (intégraiton du toolkit en natif)
  • Custom Speller Dictionnary (dictionnaire personnalisé, utilisé en correction orthographique dans une textbox par exemple)

Nouveautés de Binding :

  • Binding direct sur les commandes de Vue Modèle sans « feinter » avec des StaticResource et Proxy comme en WPF 3
  • Nouvel objet ExpandObject (ajout de propriétés à l’objet dynamiquement) bindable
  • FlowDocument / FixDocument -> le sous-contrôle Run est désormais bindable

Nouveautés liés à Windows 7

  • Jump List
  • miniature taskbar : xaml entièrement customisable avec des interactions possibles (boutons…)
  • MultiTouch, moteur d’inertie

En résumé,  WPF 4 apporte de nombreuses nouveautés, dont certaines étaient déja présentes en Silverlight (les easing animations par exemple). Toutefois, la plupart des fonctionnalités importantes présentées ci-dessus sont déjà accessibles en WPF 3 par extensions (Visual State Manager, binding de commandes…).

L’extensibilité de Visual Studio 2010

Cette session présentait les nouveautés de l’extensibilité de Visual Studio dans son édition 2010, MEF étant une petite brique de cette extensibilité. Et contrairement à mes attentes, très peu de MEF (Managed Extensibility Framework) a été abordé.

Cette session a commencé par aborder les différentes techniques d’extensibilité de Visual Studio :

  • Personnalisation (Profiles xml, Start Page)
  • Macros/Addins
  • Visual Studio SDK
    • DSL Tools, MEF

Désormais, en édition 2010, les packages d’extension sont beaucoup plus facilement déployables (un simple fichier vsix, sans nécessité d’un msi/setup comme avant).

Une démo a ensuite été réalisée sur la création d’une extension, dont l’objectif était de fournir un template d’implémentation du design pattern Observateur. J’ai pu découvrir au passage le T4 (Text Templating) ainsi que les nouveautés de la version architecte de Visual Studio et ses nouveaux diagrammes UML.

Au final cette session a survolé très rapidement l’extensibilité de Visual Studio, sans grand contenu technique et démo de MEF.

Coding4Fun Windows Phone

Cette session fut découpée en 3 parties, une pour chacun des intervenants (Stephane Sibue, Fabien Decret et Pierre Cauchois).

Ayant beaucoup aimé la session Coding4Fun des Techdays 2009, j’attendais beaucoup de cette édition spéciale Windows Phone. Une première démo a été faite sur la cartographie mobile (cartographie maison et par service). Celle-ci ne m’a pas particulièrement impressionnée.

Vint ensuite une démo de code avec l’API OpenGL ES, réalisé avec l’HTC HD2 soit dit au passage, plutôt intéressante. Celle-ci consistait à gérer le scroll au doigt du téléphone tactile pour faire tourner un triangle 3D. Cette démo de code rapide ouvre toutefois de bonnes possibilités pour réaliser un super carrousel 3D.

Enfin, la dernière démo a commencé par le développement d’un petit jeu d’arcade en XNA. Quel rapport avec Windows Phone me direz-vous, vu qu’XNA n’est destiné qu’aux PC et Xbox ? En fait, Pierre Cauchois nous a montré comment ajouter à son petit jeu d’arcade XNA gérant le pad Xbox ou le clavier PC, la gestion du téléphone comme Gamepad. Le téléphone communiquait avec le jeu sur PC par sockets et permettait d’afficher un écran dédié avec différentes informations sur le jeu (barre de vie par exemple) et des actions spécifiques comme un bouton de shoot. Ainsi, en quelques minutes, on pouvait jouer au jeu d’arcade et shooter les ennemis avec son téléphone. Cela ouvre de belles perspectives de fun, en utilisant toutes les capacités du téléphone bien plus avancées qu’un gamepad classique. En résumé, ce fut une bonne session dans l’esprit Coding4Fun, qui a eu un vif succès dans l’assemblée.

Siliverlight 4 et WCF RIA Services

Cette session a abordé quelques nouveautés de Siliverlight 4 mais surtout son intégration avec WCF RIA Services.  Un résumé est déjà présent sur l’article suivant : http://blog-rec.soat.fr/2010/02/techdays-sot-silverlight/.

Je rajouterais toutefois que la présentation par David Rousset était très bien réalisée et que bien que RIA Services apporte un petit côté « magique » pour les démos qui ne s’appliquera pas dans les situations d’entreprise, je pense que cette techno peut toutefois être très utile soit pour les prototypes (en profitant des règles clients de validation automatique, le busy indicator intégré, le datapager qui fait des requêtes au fur et à mesure du chargement des pages…), soit pour réaliser une couche de web services très rapidement pluggée sur une couche d’accès aux données Entity Framework.

Les jeux en Silverlight

Ce fut une petite session fun, pour bien finir cette première journée, avec la construction en live d’un petit jeu d’arcade de shoot d’avions, coanimé par Valentin Billotte et Julien Frelat (auteur de QuakeLight pour les connaisseurs). Une session intéressante et un défi presque réussi (jeu presque codé entièrement dans les temps).

J’ai appris au passage durant cette session la sortie de VS 2010 en Release Candidate. Le speaker n’avait pas réussi à l’installer avant la session. En fait j’ai appris en fouillant sur le web un peu plus tard que cette version n’était pas compatible avec SL4. Il faut rester en beta 2, à moins que des bidouilles soient sorties d’ici là.

Une 2e plénière : nouvelles expériences numériques de votre système d’information

Je m’attendais à voir moins de monde ce 2e jour mais il n’en fut rien. La plénière était de nouveau pleine. J’ai découvert lors de ce show (beaucoup plus « show » que la plénière du 1er jour) les nouveautés de SQL Serveur 2008 R2 et son intégration avec Sharepoint 2010, avec notamment les fonctionnalités de BI et la possibilité de générer des cubes côté client  sur Excel 2010 (une présentation/démo de son utilisation chez Vente-Privée était au programme). Puis d’autres démos se sont enchainées sur Office 2010, Outlook (traduction textuelle de messages vocaux intégrée) et Power Point notamment et son travail collaboratif. Le petit show réalisé autour de cet outil était d’ailleurs plutôt fun et attractif. Enfin, une petite info au passage, Office 2010 aura une version Web App gratuite (avec publicité).

Développement Web avec outillage Microsoft – état des lieux

Cette session avait pour objectif de faire un état des lieux et comparer les différentes technologies Web Microsoft :

  • ASP.NET / ASP.NET MVC / ASP.NET avec Ajax  / Silverlight.

Le niveau technique n’était pas très élevé, rendant la session peu intéressante (mais finalement en cohérence avec le niveau 100 annoncé).

J’ai toutefois découvert et apprécié une démo de Dynamic Data To Linq. En quelques clics, on peut réaliser une interface ASP.NET liée à nos données en base avec Linq to Entities et faire très très rapidement un back office d’administration des données de notre base. Cela peut-être très utile en début de projet (au lieu de modifier à la main la base SQL) ou pour partager un back office rapidement entre développeurs. Toutefois, pour un back office professionnel ouvert à des utilisateurs, je ne le conseillerais pas.

Comprendre les nouveautés de la plateforme ASP.NET 4.0 WebForms

Présenté par Aurélien Verla , que j’avais déjà rencontré aux Techdays 2009, également sur une session de découverte d’ASP .NET 4.0, cette session était bien ficelée.

ASP.NET 4.0 apporte de nombreuses nouveautés sur les parties WebForms, Ajax, MVC et Dynamic Data. Cette session se concentrait sur les WebForms.

Je rajouterais au  bon résumé déjà réalisé par l’article suivant : http://blog-rec.soat.fr/2010/02/lasp-net-4-webforms-des-techdays/ :

  • Un rendering amélioré de certains contrôles (le contrôle Menu par exemple)(facilité pour appliquer des styles css par rapport aux webforms 3.5)
  • Une SessionState compressée
  • La possibilité de faire du SEO (Search Engine Optimisation) avec le moteur de Routing (et donc profiter de ce moteur sans faire du ASP.NET MVC). Cela était possible en ASP.NET 3.5 avec quelques bidouilles, mais pas de manière aussi intégrée, notamment sur le post des formulaires,  et les metakeyword dynamiques.

En résumé, de nombreuses nouveautés pour cette version avaient déjà été présentées en 2009, mais de nouvelles comme le QueryExtender et le moteur de Routing ont fait leur apparition et semblent plutôt intéressantes.

C# et Linq avancé

Cette session fut animé par le célèbre Mitsu Furuta, session  d’un niveau technique élevé (400). Des démos ont été réalisées avec l’utilisation de la puissance de la DLR du framework .Net 4.

En 2009, Mitsu avait réalisé un ReadWrite Selector, pour faire un accesseur en écriture d’une propriété au travers d’une simple requête Linq. Celle-ci se basait sur la compilation d’une Func Lambda et utilisait la réflexion (cela équivalait au fonctionnement interne de PropertyPath du Binding en WPF). Désormais, avec les nouveautés de la DLR, notamment l’Expression qui peut s’appliquer à des Actions et non des Func, Mitsu a repris son précédent code et l’a optimisé pour atteindre le même objectif mais sans reflexion (et donc des performances optimales).

Ensuite, il a enchaîné sur la démo de créations de vue modèles dynamiques. L’intérêt ici est de pouvoir ajouter dynamiquement des propriétés à une vue modèle (classe) (ou d’en enlever) sans la coder explicitement (grâce à la DLR une nouvelle fois).

Enfin, il a terminé par une démo très technique sur la création d’un « mini-compilateur ». L’application finale désérialisait des expressions lambdas sérialisés en Xaml (juste pour prouver qu’en .NET 4.0, le Xaml peut servir d’enveloppe de sérialisations) équivalentes à un calcul mathématique (2+3). Puis elle compilait ces expressions lambdas pour trouver le résultat mathématique attendu : 5 !
L’intérêt des démos sur la DLR 4 peut paraître au final très abstrait, mais cela peut ouvrir des portes sur la méta-programmation en .NET.

Silverlight 4 : revue des principales nouveautés

Une bonne présentation des différentes nouveautés de Silverlight 4 a été réalisée :

  • Drag & Drop
  • Impressions
  • Gestion du clic droit
  • Gestion de la webcam/micro
  • Nouveaux états du Visual State Manager
  • Support des Network Credentials
  • RichTextArea
  • Amélioration du mode OutOfBrowser

Un petit bémol à noter, l’intégration du Html hébergé, petite nouveauté très plaisante, ne sera disponible qu’en mode OutOfBrowser.

Mes techdays se sont finalement terminés sur une démo de réalité augmentée assez bluffante et très prometteuse.

Nombre de vue : 26

AJOUTER UN COMMENTAIRE