.NET, Architecture, ALM, Cloud
Les arbres d'expressions (Expression Trees) sont apparus dans sa première version avec le framework 3.5. En parallèle le projet DLR continuait son bout de chemin en mettant en place un nouveau modèle des ET pour faciliter la mise en place des langages dynamiques.
Ce nouveau modèle des Expression Trees a été intégré dans le framework 4.0 toujours dans le même namespace "System.Linq.Expressions". Si vous êtes toujours sous le framework 3.5 vous pouvez utiliser cette nouvelle version en téléchargeant le projet DLR. (qui a été intégré dans le Framework 4.0 au dessus de la CLR pour la gestion des langages dynamiques).
La première version des Expression Trees ont déjà permis une grande avancée dans le monde .NET en permettant de générer des arbres lors de l'exécution et ainsi compiler vos expressions lambda à la volée. Cela nous a permis d'éviter de développer pour certains traitements de génération de code à la volée directement en Emit. Les Expressions Trees vont générer derrière le code Emit qu'il faut mais cela reste transparent pour le développement et rend donc le code plus lisible.
La deuxième version des Expression Trees va encore plus loin en nous permettant la génération de bloc statements ! Et permettre ainsi le support de vrai langage dynamique. Au menu comme nouvelles Expressions : BlockExpression, GotoExpression avec son LabelExpression, LoopExpression, SwitchExpression, TryExpression... et j'en passe !
Nous verrons dans cette nouvelle catégorie "System.Linq.Expressions" les nouvelles possibilités apportées par ce nouveau modèle. En attendant je vous renvoi vers les spécifications des Expression Trees V2.