|
msterdam,
le 28 juin 04, la nouvelle édition du TechEd
Europe retrouve la Hollande. En 1999, les
conférences Visual C++ et TechEd furent
organisées au même endroit, le fameux RAI Center d’Amsterdam. Le Rai Center (immense
centre d’exposition similaire à la Porte de
Versailles à Paris), se trouve en périphérie du
centre ville.
Les festivités débutent par les «
pré-conférences ». Pour les non initiés, une
journée de pré conférences est une session
consacrée à un sujet dense animé par un ou
plusieurs speakers de renom. Cette journée est
généralement optionnelle, elle précède la
conférence elle-même, dont les sessions durent
environ 1h15 sur un sujet précis. Cette année,
Microsoft nous propose 7 pré- conférences sur
les sujets suivants:
• PRE001 Building an
End-to-End Integration Infrastructure with
BizTalk Server 2004
• PRE002 Building Data Driven Systems with
SQL Server 2000 and SQL Server 2005
• PRE003 Getting 'Smart' with Windows
Clients
• PRE004 Guidance about Patterns and
Practices
• PRE005 Implementing Server Security
Focusing on Active Directory
• PRE006 .NET for IT Professionals
• PRE007 Writing Secure Code
Après quelques hésitations
entre les conférences sur « écrire du code
sécurisé » (PRE007) et «conseils au sujet des
patterns et des bonnes pratiques » (PRE004),
j’ai finalement choisi cette dernière. La
conférence PRE004, est consacrée à
l’architecture et expose une synthèse des
nombreux travaux réalisés cette année par le
groupe architecture de Microsoft. Les speakers
de cette session ont donc choisi de nous
démontrer pendant toute une journée quelques
morceaux choisis :
-
Service Oriented Applications (Keith Pleas)
-
Test-Driven Development (James Newkirk)
-
Application Configuration (Rockford Lhotka)
-
Designing a Data Access Layer (Fernando G.
Guerrero)
-
Designing Security (Rafal Lukawiecki)
-
“Shadowfax” reference Application (Wojtek
Kozaczynski)
Personnellement, deux thèmes m’ont
particulièrement marqué : la sécurité animé par
l’excellent Rafal Lukawiecki et « Shadowfax »
pour avoir découvert un gigantesque framework
orienté architecture distribuée.
Selon Rafal « la sécurité n’a jamais été autant
d’actualité, et pourtant, il reste d’énorme
progrès à faire ». Il poursuit par « Nous sommes
loin d’obtenir des systèmes 100% sécurisés ».
Alors plutôt que de se décourager, Rafal nous
propose une démarche déclinée en 6 étapes :
-
Identify Assets
-
Create an Architecture
overview
-
Decompose the Application
-
Identify the Threats
(menaces)
-
Document the Threats
-
Rate the Threats
Je ne renterai pas dans les
détails, mais la leçon mérite d’être ré-étudiée
dans une future présentation.
Shadowfax est le nom de code
d'un framework de développement d’applications
distribuées. Issue des travaux de la cellule
architecture de Microsoft, ce framework contient
une mine d’excellents patterns permettant
d’offrir aux utilisateurs plus de productivité,
de fiabilité et de traçabilité dans le domaine
des architectures orientées services.
Techniquement, le framework se base sur le
pattern Pipeline, à l’instar d’ ASP.NET et de
Biztalk 2004, celui-ci est hautement
personnalisable. Là encore je vous passerai les
détails, mais nous en reparlerons dans quelques
semaines, sans compter le prochain Symposium DNG
qui y consacre une session au mois d'Octobre.
Première journée : Day 1
Pour la majorité des participants c’est la
première journée, la tradition dans ce type de
manifestation veut qu’un Keynote débute les
festivités. L’animateur principal de ce grand
show est Jonathan Muray (Chief Technology
Officer, Microsoft EMEA). Jonathan nous explique
que le Tam-Tam placé sur tous les sièges de la
salle vont nous servir à marquer notre
enthousiasme durant le Keynotes.
Le premier sujet concerne l’accessibilité,
animé par un non voyant, Jürg Cathomas (Swiss
Federation of the Blind and Visualy impaired)
qui nous démontre à travers un site Web équipé
de la technologie Accessibility, qu’il est
capable de surfer, rechercher en toute quiétude
comme un voyant. En effet le site Web « parle »
et annonce de vive voix, en temps réel les liens
qui s’affichent sur la page. En conclusion, Jürg
demande à l’audience (sous l’émotion) de penser
à utiliser cette technologie dans ses prochains
développements (applaudissements chaleureux et
émus de toute la salle).
Le sujet suivant nous présente la roadmap des
prochains grands produits techniques. Courant mi
2005 : SQL Serveur 2005, Visual Studio 2005,
puis beaucoup plus loin Longhorn (prochaine
version après Windows XP), Visual Studio Orcas
(version après VS 2005).
On se recentre rapidement sur le Visual
Studio 2005 et sa capacité à gérer le cycle de
vie du développement logiciel comme jamais
(Design, Compilation, Tests …). Cette gestion
raffinée du cycle de vie porte le nom de Visual
Studio Team System (retenez ce nom, c’est une
véritable révolution dans le processus de
développement logiciel chez Microsoft). En effet
sous ce nom un peu commercial se cache de
nombreux outils tels que Team Management,
Project Management, Unit Testing, Code Coverage,
Security System, Load Testing … Toutes ces
fonctionnalités sont intégrées dans une seule
interface : Visual Studio 2005. Retenez aussi
que Team System rentre dans une démarche à long
terme que Microsoft appelle SDI (System
Dynamique Initiative) mais qui est commune à
d’autres éditeurs ou organisations (OMG).
Nous passons à un sujet plus « ludique » :
l’annonce de Visual Studio Express Edition. En
quelques mots, c’est une version de Visual
Studio 2005 sans Team System, mais avec tout le
reste et même parfois plus. En effet cette
version est destinée aux non professionnels
désirant programmer des logiciels sans dépenser
d’argent (vous l’avez compris la gamme des
produits Express est gratuite). Pour ne rien
gâcher, une base de données gratuite SQL Server
2005 Express est livrée avec tous les starter
kit intégrés au produit. Comme cette nouvelle
gamme de produits est fondée sur la version 2.0
du framework, vous pouvez bâtir une application
Web en quelques clics sans rien coder ! (grâce à
ASP 2.0).
Nous passons à l’annonce de la version serveur
de la VPC, le Virtual Server 2005 destiné à
virtualiser des OS serveurs dans des
environnements divers (comme plusieurs OS
simultanés sur des processeurs différents sur la
même machine). On imagine que ce type de
technologie peut soulager les développeurs mais
aussi les testeurs, les administrateurs. On
passe ensuite à une démonstration, basée sur une
application disponible aux participants du
TechEd sur tous les PCs de la salle «
Communication Network », le e-Phone. C’est
technologie s’apparente à du téléphone sur IP
appelé Voice over Internet Protocol (VoIP).
Et l'application démo est naturellement capable
d’enregistrer les appels entrants et sortants. A
la fois économique, et pratique !
Puis c'est au tour de l’annonce de la
prochaine sortie du service pack 2 pour Windows XP. Plus qu’un service pack, c’est une évolution
système majeure et notamment sur le plan de la
sécurité. Donc attention, après l’installation
de ce service pack, certaines applications
pourraient ne plus marcher. Moins structurant,
mais important, le service pack 1 pour Windows
Server 2003.
Le sujet suivant traite de mobilité. Il est
illustré par un Pocket PC Phone et un Smart
Phone humains. Deux compères déguisés nous font
une jolie démonstration de mobilité sur le ton
de l’humour.
On enchaîne par Microsoft Research. On y apprend
que cette filiale comprend plus de 700
personnes, que Microsoft à dépensé 8 Milliards
de $ dans cette filiale et que de nombreux
projets en cours d’étude aboutiront sur notre PC
dans les années à venir.
Pour nous convaincre du bien fondé de cette
initiative, le vénérable Jim Gray (que je ne
présente pas) vient nous présenter ses travaux
sur SkyServer) et SkyQuery (disponible en .NET).
En quelques mots c’est un projet visant à
soulager le CERN du stockage de toutes les
photos de l’espace, des planètes, des galaxies,
récoltées à travers le monde entier, vers des
sites distants gérés par des « noeuds »
SkyServer. Bref toutes les infos sont sur le Web
http://skyserver.sdss.org.
Ce Keynotes se termine par Win64,
c'est-à-dire Windows pour 64 bits. C’est un
responsable du département de la Visualisation
de l’université de Stuttgart qui nous fait une
démonstration d’une application graphique 3D
temps réel et en relief (des lunettes adéquates
étaient disponibles pour tous les participants).
Bref, une belle démonstration.
La journée se poursuit avec une session sur
XML, « DEV379 XML Today and Tomorrow » animé par
Mark Fussell (Lead Manager). Je connais Mark
depuis plusieurs années et sa passion XML n'est
plus à démontrer. Mark nous fait un comparatif
efficace des APIs v 1.* avec v 2.0. C’est sans
appel, le prochain Framework offrira plus de
flexibilité et de performance, notamment au
sujet d’XML.
La session suivante concerne un personnage
qui à marqué ma carrière : Don Box. Même si Don
est aujourd’hui architecte du projet Indigo chez
Microsoft, il reste un excellent orateur.
Pendant cette session intitulée « CTS405
Choosing a Hosting Model – Dealing with Threads
App Domains, and Processes », Don nous parle de
CLR hosting. L’aspect chargement (loading) est
un sujet qu’il affectionne. Don nous fait une
rétrospective brillante de toutes les techniques
de chargement de la CLR avec à chaque fois les
avantages et les défauts : une bonne leçon pour
des choix d’architecture sous .NET d’aujourd’hui
et de demain (v 2.0).
Après Don Box, le passage à un autre orateur est
toujours difficile, mais depuis quelques années
un certain Ken Beck a rempli ma bibliothèque sur
le thème de l’eXtreme Programming (XP). Non ce
n’est pas Ken en personne, mais un certain
Jan-Erik Sandberg, passionné par l’eXtreme
Programming (il se définit lui-même comme un
Mentor) qui va me rappeler que l’XP n’est pas
seulement théorique, mais très bénéfique pour
des équipes de petites tailles. C’est donc la
session “DEV316 eXtreme Programming : The
Alternative Way to Building High Quality Systems”,
qui conclurera cette journée. La session fut
parfaitement animée en apportant du réalisme aux
concepts initiaux d’XP.
Seconde journée : Day 2
Ce matin, c’est un peu la panique, les sessions
débutent à 8h30, le trafic des trams n’est pas
très bon et nous sommes tous (principalement des
participants du Tech Ed) tassés comme dans le
métro parisien. Enfin j’arrive (un peu en
retard) à mes premières sessions sur ASP.NET
2.0. Les sessions se nomment DEV313 et DEV314,
mais elles forment un tout cohérent animé par le
célèbre Scott Guthrie (un des pères d’ASP .NET,
Scott est actuellement responsable des
plateformes et des outils pour le WEB chez
Microsoft).
Pour avoir participé à la PDC (grande conférence
Microsoft relatant des technologies Microsoft à
3 ans) d’octobre dernier, j’ai déjà quelques
bases sur le sujet, mais je n’ai jamais assisté
aux sessions sur ASP.NET 2.0 (déjà animées par
Scott). A la PDC, je me suis passionné pour
Indigo le prochain serveur SOA intégré à
Longhorn (mais qui tournera aussi sous Windows
XP) et pour Avalon, la prochaine interface
graphique vectorielle de Longhorn. Microsoft
parle de 2006-2007 pour la sortie officielle de
ces produits. En quelques mots, ASP .NET 2.0 est
une évolution majeure de la version ASP .NET 1.0
& 1.1. On peut résumer ces évolutions par deux
axes principaux : les évolutions sur le plan des
librairies du Framework 2.0 spécifiques ASP.NET
et les évolutions sur le plan de l’environnement
de développement ASP.NET au sein de Visual
Studio 2005.
Côté librairies, elles reposent essentiellement
sur plus de couches techniques, mais aussi sur :
Côté Visual Studio 2005, les améliorations
portent sur plusieurs points :
-
Les extensions FrontPage ne sont plus
obligatoires
-
Les projets sont maintenant fondés sur un
simple répertoire
-
Le code source HTML est préservé ; comme par
exemple dans le cas de modifications dans la
fenêtre propriété, le code source garde son
indentation originelle.
-
Intellisense partout (et le mot est faible,
des petits smart tags apparaissent dans tous
les coins pour vous aider)
-
Amélioration de l’éditeur HTML comme par
exemple l’affichage des balises actives dans
le code HTML en bas d’écran.
-
Amélioration de l’édition du Code-Behind,
comme par exemple l’usage des classes
partielles (nouvelle caractéristique du
Framework 2.0)
-
IIS n’est plus obligatoire car un mini
serveur Web (basé sur le code Web Matrix)
est fourni. Il est lancé lors de chaque
session de test, puis arrêté en fin de
session
Bref, ASP.NET 2.0 est une évolution majeure qui
porte le développement WEB à un niveau jamais
atteint. Après un tel exposé, je pense
sincèrement que tous les développements Web
devraient se faire dans cette technologie.
Après avoir passé 2h30 sur ASP.NET, je passe à
un autre sujet beaucoup plus structurant mais
toujours aussi révolutionnaire : Visual Studio
2005 Team System. Le sujet est tellement
important qu’il est réparti en 3 sessions (3 x
1h15), mais comme pour ASP.NET 2.0 cela forme un
tout cohérent. Pour assurer la bonne
compréhension de Team System, c’est Prashant
Sridharan le chef du produit qui anime les trois
sessions (DEV301-303). jamais un outil de
développent n’avait atteint de telles
fonctionnalités dans la gestion du processus de
développement : tous les acteurs sont
représentés : Chef de projet, Utilisateur,
Testeur, Architecte Solution, Architecte
Infrastructure, Développeur. Tous collaborent à
travers un système adapté aux problématiques de
chacun, avec un seul objectif : produire plus et
plus vite du logiciel de haute qualité.
Pour terminer cette longue journée, je parie sur
une session dont je ne connais pas l’animateur,
David Webster, mais dont le titre est amusant :
« DEV390 .NET Framework : So you think you know
what an object is …».
Malheureusement pour moi, je comprends après
quelques minutes de session, que monsieur
Webster est un évangéliste développeur et que le
titre est à prendre au premier degré. L’audience
visée est la moyenne des programmeurs VB,
c'est-à-dire des gens assez neufs dans le monde
de l’objet. Après une demi-heure, je ne tiens
pas et quitte la salle, totalement déçu.
Je termine la journée sur la lecture de
documents sur Team System, et rentre à l’hôtel.
Troisième journée : Day 3 
Contrairement à la veille, je suis un peu en
avance (8h15). A noter que durant la journée, il
est extrêmement difficile de communiquer via
WIFI (le réseau est souvent saturé).
Pour la première session de 8h30, « DEV308 .NET
Diagnostics », je retrouve le fameux Richard
Grimes, auteur à succès dans le monde ATL/COM et
Managed C++.
Richard nous présente les principales techniques
pour diagnostiquer des applications .NET
compatibles 1.x. La présentation passe en revue
les techniques essentielles de traces et
d’assertions. Il nous conseille sur
plusieurs points : tracez uniquement les
éléments significatifs et ne livrez pas à vos
utilisateurs des applications compilées de type
"release" contenant des assertions. Vos
utilisateurs risquent de ne pas comprendre les
messages surgissant à des moments
incompréhensibles pour eux ; ceci risque de
ternir l’image de votre service délivrant des
applications « aux comportements instables ».
Puis Richard poursuit en nous illustrant un
défaut lié à la synchronisation (donc de
blocage) des APIs de traces utilisant la
fonction native du SDK Win32, «
OutputDebugString ».
Il enchaîne son exposé sur la capacité de
fournir au framework des « listeners » de traces
personnalisés en plus de ceux déjà présents (DefaultTraceListener,
EventLogTraceListener, TextWriterTraceListener).
On note que le gestionnaire de « listeners »
permet aussi de retirer sélectivement les «
listeners » prédéfinis. Dans le cas de la classe
« System.Diagnostic.EventLog », Richard insiste
sur ces nombreux défauts (pas de support
de formatage, EventLog peut se congestionner
rapidement si de nombreux messages sont publiés
…). Enfin il termine son exposé par des
caractéristiques propres au Debugger et à Visual
Studio (comme les attributs [DebuggerHidden], [DebuggerStepThrough]).
En résumé, les techniques de diagnostics sous
.NET 1.x ne sont pas agnostiques aux
performances et leurs usages doivent être
parfaitement contrôlés. Cependant, Richard nous
rassure (un peu) car selon lui la version 2.0
corrige certains défauts révélés dans les
versions 1.x.
La session suivante intitulé « DEV324 .NET
Versioning » et animée par l’auteur Juval Lowy
(son excellent livre « Programming .NET
Components » chez O’Reilly sera mis à jour
prochainement vis-à-vis de la version 2.0 de
.NET). Personnellement je connais bien les
stratégies de résolution des assemblages sous
.NET 1.x, mais l’exposé de Juval couvre les
techniques de « versioning » à la fois pour les
frameworks 1.x et 2.0. A l’instar de Richard
Grimes, Juval est très calme (ce n’est pas un
Don Box, ni un Rafal Lukaviecki), mais son style
que je qualifierais de « germanique » reste très
efficace. Juval expose particulièrement bien les
interactions entre Visual Studio et le framework.
Sur le plan de la version 2.0, Juval nous décrit
un nouvel attribut d’assemblage, permettant
d’exposer (dans un assemblage), une donnée
interne consommable par un assemblage client
clairement spécifié (ceci rappelle la motivation
du mot clef « friend » du langage C++), [assembly:InternalsVisibleTo("MyClient")].
Cependant, Juval insiste immédiatement sur les
effets de bords éventuels liés à cet attribut,
et conseille de ne pas en abuser. Enfin, il nous
montre que VS 2005 supporte au niveau de la
fenêtre des propriétés vis-à-vis d’un assemblage
référencé, un nouvel item nommé « specific
version » pouvant surcharger toute la stratégie
de résolution des assemblages (GAC, probing …).
La prochaine session, une fois n’est pas
coutume, n’est pas de type DEV mais DAT (pour
base de données). En effet, j’ai décidé d’aller
assister à la session nommé “DAT376 What’s New
in ADO .NET 2.0” car elle est animée par le
célèbre Dino Esposito, un italien basé à Rome,
auteur à succès et consultant pour Wintellect
aux USA. J’ai rencontré Dino il y a déjà plus de
quatre ans dans une session consacrée à
l’extension WSH via COM (il a en d’ailleurs fait
un livre), il avait à l’époque un fort accent
italien, qui a quasiment disparu aujourd’hui,
mais il a su garder sa personnalité et son
charme si particulier.
L’exposé de Dino débute par des propos
rassurants : ADO.NET 2.0 améliore les versions
précédentes (performances, découplages …) sans
aucune révolution. Les évolutions ADO .NET 2.0
se déclinent en 3 axes :
-
Amélioration des performances des objets
déconnectés
o Pour illustrer son propos, Dino, via un
graphique nous présente, tous
les méfaits de l’implémentation actuelle
(1.x) du DataSet, fondé sur un attribut de
sérialisation inadapté pour l’échange de
gros volumes de données.
Dans la version 2.0, le DataSet utilise
l’interface ISerializable piloté via un
script XML nommé DiffGram permettant
d’échapper à l’implémentation par défaut en
utilisant un « Formatter » .NET Remotting ad
hoc : SoapFormatter, BinaryFormatter. Dans
ce canevas vous pouvez étendre les capacités
de votre DataSet avec votre propre Formatter
dans une pure logique Remotting. Par exemple
CompactFormatter est la version adaptée au
Compact Framework (http://www.freewebs.com/compactFormatter/downloads.html).
-
API Provider indépendant du fournisseur
concret
o Je me souviens de mes toutes premières
présentations sur ADO .NET et
mon étonnement sur le fort couplage entre
certaines API et la nature du fournisseur (SqlServer,
OleDb …). Mais pourquoi, les ingénieurs ADO
.NET n’ont- ils pas utilisés le pattern
fabrique abstraite ? Comme quoi, le bon sens
finit toujours par gagner, car la version
2.0 introduit une API commune à tous les
fournisseurs de bases de données (j’imagine
le soulagement des éditeurs fournissant des
applications enfin agnostiques à la base de
données sous jacente). Par exemple :
string provider = "System.Data.SqlClient";
DbProviderFactory fact; fact =
DbProviderFactories.GetFactory(provider);
DbConnection conn = Fact.CreateConnection();
-
Intégration SQL Serveur 2005
o De nombreuses améliorations ont été
apportées comme par exemple (Non spécifique
à SQL Server 2005) l’amélioration des allées
et retours entre le serveur base de données
et vos appels (clients) massifs en cascade à
travers une notion de « batch de mises à
Jours». La classe DataAdapter, expose dans
la version 2.0 la taille du batch via la
propriété UpdateBatchSize (1 par défaut).
Une autre amélioration, cette fois
spécifique à SQL Serveur 2005, la
classe SqlDependency permet de pister via un
délégué les dépendances sur des résultats de
requêtes. Par exemple :
SqlCommand cmd;
cmd = new SqlCommand("SELECT * FROM Authors",
conn); SqlDependency dep = new SqlDependency(cmd);
dep.OnChanged += new OnChangedEventHandler(OnDepChanged);
cmd.ExecuteReader();
Pour conclure, Dino nous rappelle que ADO .NET
2.0 apporte des évolutions importantes
(performances, découplage, support du Compact
Framework), tout en étant compatible avec le
code 1.x.
La session suivante « DEV356 Visual Studio 2005:
Managing the Enterprise Build Process with
MSBuild » est consacrée au nouvel outil MSBuild
de Visual Studio 2005 dédié au processus de
construction orienté entreprise.
Cette session est animée par le jeune et motivé
Alex Kipman, Program Manager dans l’équipe
MSBuild. Pour ceux qui n’ont pas suivi les
comptes-rendus de la PDC, je rappelle que
MSBUILD (fortement inspiré par ANT) est le
nouvel outil Microsoft de construction
d’applications à la fois sous Visual Studio
2005, mais aussi sous Longhorn via son SDK. Alex
débute la session en nous présentant les
principales motivations du produit comme la
performance où l’extensibilité.
Mais la principale qualité de MSBuild est d’être
totalement intégré à Visual Studio 2005 tout en
étant complément utilisable en ligne de commande
sans aucun IDE dans un cadre de compilation
industrielle automatisée (c’est ainsi que
Microsoft construit les « builds » de Longhorn).
Pour nourrir MSBuild vous devez lui fournir un
fichier XML respectant tout un ensemble de
balises relatives au processus de compilation.
Alex nous démontre que Visual Studio 2005 est
totalement fondé sur MSBuild et que toutes les
options proposées dans les fenêtres de l’IDE
correspondent à des balises spécifiques au
fichier MSBuild, qui n’est autre qu’un fichier
projet (pour Visual Studio 2005) respectif au
langage de développement utilisé (par exemple .vbproj
pour VB .NET). Pour l’instant (Bêta 1) il n’y a
pas encore d’outils pour convertir vos projets
2003 vers 2005, mais la « release » devrait
proposer une conversion automatique). Alex
poursuit son exposé avec de nombreux exemples,
dont un illustrant l’extension de MSBuild à
partir d'un assemblage faisant appel aux
librairies MSBuild (Microsoft.Build.Framework &
Microsoft.Build.Utilities) pour rediriger les
sorties issues du processus de compilation
MSBuid vers une base de données via un service
Web. Enfin, le très enthousiaste et motivé Alex
nous invite à communiquer directement par
e-mails avec son équipe pour que MSBuild réponde
pleinement à nos besoins.
La session suivante est consacrée au cœur du
moteur .NET avec « DEV490 .NET Framework: CLR -
Under the Hood » animé par un des responsables
des équipes du CLR, Peter Sollich. L’exposé est
en réalité conçu par l’excellent Jeffrey Richter
(non présent à la conférence) sur la base de son
best seller « Applied Microsoft .NET Framework
Programming» chez MS Press. Je reconnais n’avoir
rien appris dans cette session qui ne couvrait
absolument pas la version 2.0 du Framework. De
plus Peter lisait chaque slide sans aucune
conviction (il a d’ailleurs terminé la session
avant l’heure). A noter que Peter était parfois
embarrassé vis-à-vis des questions posées en fin
de session (difficile de croire que ce garçon
travaille dans le team du CLR, où alors il y a
longtemps).
Pour rattraper ma décevante session précédente
et terminer cette longue journée en beauté, je
décide d’assister à une session animée par
l’excellent Clemens Vasters à travers un sujet
relativement complexe de type CTS pour Connected
Systems: “CTS404 Best Practices for Dealing with
State at Multiple Layers Within Your .NET
Applications”. Pour ceux qui ne connaissent pas
Clemens, je dirais qu’il fait partie du clan des
orateurs d’exception. Vous ne pouvez pas être
indifférent à une session de Clemens, c’est un
personnage qui maîtrise son art au point de le
vivre sur scène. C’est donc une session
concentrée sur la gestion d’états. Selon Clemens
les états sont partout et il en existe 3 types :
• Volatile : existe pour une courte durée (comme
une variable dans la pile d’exécution d’un
processus .NET). Peut être promu à devenir
Transitoire
• Transitoire : existe durant toute une activité
(comme par exemple une session ASP.NET). Peut
être promu à devenir Permanent après une
activité complètement réussie.
• Permanent : existe avant et après toutes les
activités
Après ces quelques définitions, Clemens va nous
démontrer que le « sans état » n’existe pas et
que les états sont présents à tous les niveaux
d’une architecture distribuée. Puis, il nous
décrit via une suite d’exemples, ce qu’est un
état, concrètement. Puis il décline avec
pertinence comment et où l’état intervient dans
le système d’informations en illustrant
systématiquement ses propos avec des cas
concrets (session, e-commerce, session &WEB/WebServices,
JTA, Transactions …). C’est un véritable cours
d’architecture basé sur un ensemble de codes que
Clemens à réalisé pour Microsoft et donc non
distribuable par lui directement (à surveiller
sur MSDN).
Voila c’était ma dernière session de la journée
et Clemens m’a littéralement fait rêver ; et oui
c’est ça aussi le TechEd. Je rentre à l’hôtel et
je réalise que demain c’est déjà le dernier
jour. |