[TechDays 2008 - J1] Présentation de VOLTA
Par Laurent Capin <Head in the cloud, Feet on Azure> le lundi 11 février 2008, 16:45 - .NET - Lien permanent
2nde présentation du symposium DNG de la journée, par Eric Meyer et en anglais.
Eric a beaucoup insisté sur le coût
d'entrée à toute nouvelle technologie. Le but, lors de la création de
VOLTA, était clairement de le réduire à 0, ce qui augmente les chances
d'adoption. Avec humour, distance et clarté il a démontré la simplicité de mise
en oeuvre de la chose. L'idée maîtresse étant de prendre AJAX comme : 1 tiers
application + refactoring. Il ne faut surtout pas revoir toute la conception du
logiciel en fonction. Volta est là pour créer une application RIA. Le
split en N-tiers est automatique après sélection de l'option "end to end
profiling" dans les propriétés du projet. Le mot d'ordre étant "No code
change".
![]()
Et question asynchrone, c'est beaucoup plus simple que le pattern async et l'ordre de retour des appels successifs est plus simple à contrôler.
Un outil à voir au passage: le "Microsoft Services Trace Viewer". Il donne une vision en diagramme de séquences des requêtes et réponses, ce qui aide bien pour le split.

Commentaires
Juste une petite remarque.
L'activation du split se fait en cochant la case "Enable Volta tier splitter" (et non "Enable end to end profiling" qui sert comme son nom l'indique à activer le profiler).
Par défaut, le code est exécuté sur le client (navigateur). Le simple ajout d'un attribut <RunAtOrigin> sur une classe permet d'exécuter les méthodes de cette classe non plus sur le client mais sur le serveur. Pour que cela soit possible, l'utilisateur doit utiliser des "fonctions Volta" (type GetElementById) et ne plus utiliser celle de base.
En fait, l'intérêt de Volta est surtout de ne pas polluer son code avec des considérations tel que l'emplacement d'exécution durant le développement qui jusque ici influait sur le code à écrire (javascript ou langage de haut niveau).
Par contre, pour moi, l'utilisation de ce framework est en contradiction avec le framework MVC vu que dans ce dernier, les controleurs n'ont plus du tout accès aux contrôles de la vue.
A voir...