Tout comme Stefan Schackow, j’ai élu domicile dans l’auditorium aujourd’hui. J’ai donc pu assister à deux de ses présentations : modèles de programmation asynchrone avec asp.net et les trésors cachés de asp.net.
L’objectif du modèle asynchrone sous asp.net est le suivant : lorsqu’une page aspx fait appel à une base de données ou toute autre ressource utilisant intensivement les I/O, le temps de traitement des requêtes par le worker process peut devenir long. L’application ne pouvant servir qu’un nombre limité de requêtes simultanées, les performances d’accès à tout autre page sont dégradées.
La solution consiste donc à déporter les traitements longs vers un autre thread d’exécution afin de libérer le plus rapidement possible le thread ayant servi la requête initiale.
Asp.Net 2.0 fournit un ensemble riche d’outils pour gérer les traitements asynchrones :
- les pages aspx sont déclarées asynchrones avec l’attribut Async = True et en utilisant la méthode RegisterAsyncTask
- construire un handler http en implémentant l’interface IHttpAsyncHandler le rend asynchrone
- un module http peut également adhérer au modèle asynchrone en traitant les événements émanant de HttpApplication de manière asynchrone.
Toutes ces pratiques ont fait l’objet de démos détaillées par Stefan et les gains de performances ont été mesurés par stress test.
Mettre en place un modèle asynchrone ne prend que très peu de temps avec asp.net 2.0 et les performances en sont très nettement améliorées. Il ne faut donc pas hésiter à utiliser ces pratiques !
Parmi les trésors cachés de asp.net, on trouve notamment :
- les builders d’expression
- le cryptage de sections de configuration et providers de cryptages customisés
- les adapters de contrôles ou de pages
- les dépendances de cache customisées
- les substitutions post-cache
- les providers de paths virtuels
La plupart de ces fonctionnalités s’appuient sur le puissant modèle de providers fourni par asp.net et permettent d’améliorer les performances, la sécurité ou la maintenabilité des applications asp.net, et tout cela sans trop d’effort.
J’ai également assisté à l’excellent talk de Pablo Castro sur Astoria. Un seul mot : fantastico !
Astoria est un framework permettant d’accéder à une source de données en utilisant une syntaxe REST.
Sa mise en œuvre est très facile, et les aspects sécurité sont très bien couverts.
Il permet de développer facilement des applications (winform, webform ou silverlight) centrées sur les données.
La roadmap pour Astoria est la suivante : après les deux CTPs de mai et septembre, une troisième est prévue pour décembre. Astoria sera livré mi-2008 sous le nom de ADO.Net Data Services.
La session de Mickael Lehman, architecte des « Software as a Service Blueprints », m’a un peu troublé. En effet, le positionnement de ce produit par rapport aux software factories du groupe P&P est assez floue. De plus son champ d’application est bien plus général que les seules applications de type S+S.
Je pense en fait que ces « blueprints », encore à un stade peu avancé de développement, pourraient être l’embryon de software factories payantes (contrairement à celles proposées par P&P)
Ce que j’ai essayé de vérifier lors de la session intitulée « comment construire sa propre software factory » par Don Smith du groupe Patterns and Practice.
Construire une software factory est difficile et le retour sur investissement incertain. Il faut donc démarrer petit si l’on veut être sûr d’aller loin. De plus, une software factory nécessite l’adoption des développeurs, ce qui est loin d’être évident.
Visual Studio 2008 améliore la création de DSLs mais ne propose toujours pas de véritables outils pour créer des templates de génération de code ou des recettes GAT.