Techdays 2009 : jour 1

Publié le 10 février 2009 par Olivier Duval

Les techdays 2009 c'est 16 000 inscrits pour les 3 jours, et le plus grand évènement européen, organisé par Microsoft et ses partenaires.

Au delà des innombrables sessions technico-techniques, cela donne souvent le ton pour les années à venir de la stratégie Microsoft, ou bien, ce qui ne va plus être. L'autre intérêt de participer à ce type de manifestation, c'est d'être aussi "entre nous", professionnels de l'informatique, que cela soit le développement ou l'exploitation, à partager les mêmes problématiques. Dans un monde où l'on ne se sent pas forcément compris par les non techniciens, cela regonfle à bloc, et génère une certaine énergie.

Le palais des congrès est à 2 pas de nos bureaux, c'est déjà un bon point, s'il y a des creux (et ça sera le cas) un aller-retour sera plus simple.

Je n'assisterai pas à des sessions dont j'ai déjà eu l'occasion de me frotter (Mono, ...), où bientôt proposées par les réunions Alt.NET (Entity Framework, ...), ou qui ne semblent avoir que peu d'avenir.

Ci-après, quelques notes prises au cours de quelques sessions.

Keynote

Quelques présentations ont guidé cette keynote.

  • MSF : moteur de résolution de contraintes, pour la gestion de l'agenda des Techdays par exemple. Même si, le lien proposé sur le site afin d'obtenir l'ensemble de ses sessions est ... propriétaire, et ne fonctionne que sur une application installée sur un mobile,
  • plugin VS.PHP : PHP dans VStudio, avec possibilité d'effectuer des points d'arrêt pour le debugging,
  • Surface et sa fameuse table : voir ce qui est possible de réaliser avec le SDK Surface + WPF, le tout avec un canard. Assez bluffant, merci Mitsu. Je pense que c'est cette table que l'on peut voir à l'émission Médias le magazine.
  • bien entendu Windows 7 et OneNote, par une james bond girl, cela a dû enflammer les milliers de geeks dans la salle,
  • Visual Studio 2010 avec C++ et l'approche multi-coeurs. L'analyseur de performances présenté est intriguant tant il paraissait bien réalisé dans les indicateurs : threads, mémoire, ...
  • Azure est sans nul doute la plateforme qu'il faut surveiller de près, le S + S (Sofware + Services : Azure et Mesh). Je me suis déjà inscrit sur la plateforme, après quelques mois d'attente, j'ai enfin reçu un ticket d'entrée. De mon point de vue, ce type de développement est l'avenir, car cela permet notamment de s'affranchir de beaucoup de contraintes (infrastructure d'hébergement, de bande passante, de mise à disposition de ressources sur demande) qui n'ont pas lieu d'être dans le développement d'applications Web. Une application est accessible on the cloud par une Url du type app.cloudapp.net (par exemple gallery). Live Mesh permet de partager et synchronisation des applications sur plusieurs types de systèmes (PC, Mac, Mobile).

Windows Azure

par David Rousset et Pierre Lagarde

Azure = plateforme d'hébergement de logiciels, virtualisée, mutualisé - vous payez que ce que vous consommez

Lors d'un développement d'une application, cette dernière est packagée puis uploadée sur la plateforme Azure. Le SDK offre tout un environnement d'exécution pour le développement, un Azure like local. La restriction se trouve au niveau des fichiers, qu'il n'est pas possible de gérer, on passera dans ce cas par les Blobs.

On trouve sur la plateforme plusieurs types de services : Windows Azure, SQL Services, .NET Services, Live Services, MS Sharepoint services, MS CRM Services, chacun demandera l'acquisition d'un code d'invitation, via le site Azure (voir l'ensemble des services proposés). Il vaut mieux être patient, et c'est vrai. Pour le service Azure, j'ai attendu 2 mois avant d'en obtenir un. De plus, le SDK ne fonctionne que sous Vista SP 1 ou Windows 2008 (sic).

Azure supporte les standards HTTP, REST, SOAP, Atompub, autant dire qu'il faut vraiment s'y intéresser, au travers de WCF notamment.

Windows Azure est basée sur 3 briques : compute, storage, management. Pour le stockage, Azure propose les types Blobs, Tables ou Queue. Un système ingénieux de notification (Worker Role) permet l'échange de messages entre les applications, avec une surveillance de ces derniers basée sur l'évènementiel.

Azure storage Explorer : projet codeplex pour interroger les blobs, tables ou queues de votre service Azure.

La démonstration était un thumbnail de photos, stockées et consultables sur Azure.

Quelques notes prises au fil de la session :

Un provider Linq est disponible pour manipuler directement les objets "Tables". A partir du projet Cloud de Visual Studio, clic droit, "Create Test storage Tables" lancera la création des tables dans l'environnement de développement.

WorkerRole : classe RoleEntryPoint - assembly StorageClient - System.Data.Services

Zone de sécurité : Medium Trust par défaut, pas de Full Trust - il existe un Azure Trust

F5 (lancement seul) vs. Ctrl + F5 : attention pour la 2è méthode, à chaque fois, une instance sera créée dans l'environnement de développement local Azure.

.NET Services Azure

Présentée par Winwise.

.NET Services constitue l'un des services proposé par la plateforme et propose 3 briques :

  • une fonction de Service Bus qui vous permettra de faire communiquer plusieurs applications afin d'échanger des messages / données, suivant le modèle suivant : sender - service bus (Azure) - receiver,
  • une gestion d'accès ou plutôt une fédération d'identités,
  • un service de workflow

Service Bus

Le process s'effectue aux travers de WCF, et notamment à partir de la manipulation des bindings WCF.

endpoints : mex (Metadata EXchange) - binding : netTcpBinding -> netTcpRelayBinding

Les protocoles supportés : HTTP ou sb (service bus), selon le format d'URL suivante : http|sb://servicebus.windows.net/services/MyService/a/b

Pour la démonstration, un service a été développé : un client côté Windows pour éditer des formations, et du côté du nuage, windows.net, l'accès au flux de ces dernières, par l'URL suivante. La démo a aussi montré comment 2 applications Windows pouvaient partager les formations, une qui produit, l'autre qui consomme, en se basant sur le mode événementiel de .NET Services : l'application qui reçoit écoute et reçoit les données lorsqu'elles sont disponibles.

Autre démonstration : la possibilité d'exposer en HTTP classique une vidéo : elle se transforme alors en streaming pour être lue avec Windows media player.

Fédération d'identités

Mots clés : Identité IdP : claims - STS : Security Token Service

Le site federatedidentity.net permet de simuler une identité.

Possibilité de choisir un service d'identification tiers - pour des applications.

Conclusion :

  • Moteur de règles pour transformer un token X en Y
  • Basé sur des bindings WCF
  • Windows Workflow Foundation sur Azure

Le SDK de .NET Services.

Cela demandera d'être approfondi je pense En attendant je me suis abonné à un blog qui en résume les grands principes dans un billet.

Nouveautés ASP.NET 4.0

Présentée par Aurélien Verla de Wygwam.

La session a résumé les travaux de la prochaine version d'ASP.NET. Elle se compose de plusieurs projets : ASP.NET MVC RC1, WebForms 4.0, DynamicData vNext, Ajax v4 Preview 3

WebForms 4.0 : travail sur la réduction, voire la suppression du ViewState tout en gardant le modèle de Page actuel, pouvoir contrôler les ClientID générés, ajout d'un CachingProvider

GeneratedImage (System.Web.GeneratedImage) : handler de traitement d'images dynamiques, avec une bibliothèque de transformation et une gestion du cache clientside/serverside.

Ajax 4.0 : Nouveau modèle "pure" Ajax - le serveur ne sert qu'à distribuer que de la donnée : HTML + JSON, le rendering est effectué côté client. L'objectif est de réduire la quantité de données envoyée au serveur.

Etat des lieux aujourd'hui : UpdatePanel, AjaxControlToolkit, opaque sur les contrôles serveur (mode debug génère des fics. JS de +sieurs centaines de ko).

Concernant l'UpdatePanel, il présente un défaut principal : envoie en méthode POST les données, contient aussi le ViewState - le retour également contient le ViewState modifié.

MS Ajax Pure Ajax Client Model : ne nécessite pas de plugin, économie de bande passante et de charge serveur. Le serveur renvoie du JSON et non plus du HTML.

Utilisation de contrôles ClientSide : DataSource, DataView, Templates, LiveBindings (~WPF) (on trouve également un projet jQuery qui traite du même sujet : jTemplates).

Les extensions pour les templates s'appuient sur l'XHTML compliant (transitional).

Command Bubbling : même concept qu'un ItemCommand serveur

déclaration dans les tags HTML de namespace à utiliser, par exemple

<body xmlns:sys="javascript:Sys" xmlns:dataview="javascript:Sys.UI.DataView" xmlns:class="http://schemas.microsoft.com/aspnet" ...>

cela permettra d'appeler un service WCF, qui renvoie du JSON ({"d": {...}}), et ensuite d'utiliser une dataview avec un template pour afficher le résultat JSON.

jQuery : créé par John Resig - licence MIT & GPL

Avantage que MS participe au projet jquery : le support.

avantages ASP.NET Ajax : Ajax requests, Client Templates, Components et Controls, Ajax controltk

avantages jQuery : Selectors, chaînage de méthodes, animations, plugins

exemples :

$(':text') : ttes les textbox
jQuery.each() : base du traitement par lots

La session s'est terminée par une belle écriture d'une ligne de code jQuery pour gérer des images, et exploitant le chaînage des méthodes, rendu possible grâce à jQuery.

Conclusion

Bien que je sois parti tôt des Techdays, cette 1ère journée fût très enrichissante, notamment du côté d'Azure, ou d'ASP.NET 4.0. Je vais demander de suite des journées de 35 h afin de pouvoir regarder tout ça de près.