Programmation Orientée Aspect sur le Framework .net

Slides:



Advertisements
Présentations similaires
Mathilde VINCENT - Olivier JOURDAN Paris - le 7/2/2012
Advertisements

C#3 et le projet Linq Mitsuru FURUTA
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
Plan Portlets La norme JSR-168 Qu'est-ce qu'une Portlet ?
Description Environnement de développement générique développé par IBM Écris en Java (multi plateformes) La version SDK fourni de nombreux outils pour.
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
La machine virtuelle virtuelle utopie et/ou réalité ?
Objets Distribués Chronique d ’une invasion annoncée
Cours n° 8 Conception et Programmation à Objets
L’architecture .net et ASP.net
14 novembre 2002Julien CARSIQUE17 diapositives JAC Java Aspect Components Serveur dapplications Java Open-Source (LGPL) basé sur la Programmation Orientée.
UML - Présentation.
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
D1 - 01/03/2014 Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Méta IHM WCOMP INFRASTRUCTURE P P P P AA Modèle d’ observation
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
UML (Unified Modeling Langage)
Projet J2EE Maverick XMLBeans Garcel Jean-Baptiste – Le Loc Martin – Muller Thibaut.
Principes de programmation (suite)
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Principes de persistance dans les applications orienté objet
Programmation par Aspect
GWT UML Un modeleur UML en GWT
Com / DCom 1 Concept et historique 2 L’interface IUnknown
Nallet Jean-baptiste Choix techniques, quelles implications ? SPIRAL 3.0 Chef de projet SPIRAL.
Structures de données IFT-2000
Structures de données IFT-10541
Structures de données IFT-2000
Introduction au paradigme orienté-objet (suite)
Présentation du mémoire
Microsoft .NET.
Les systèmes multiplateformes
Cilia Mediation Framework v0.9.0 Implantation.. Plan Cilia: c'est quoi? Capacités. Cilia: Modèle d'implantation. Mise en œuvre: Médiateur Cilia. Assemblage.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 9 Interopérabilité logicielle I Entre C++
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
Héritage et composition
1 journée, 5 sessions, 1 réalisation.NET Enterprise Realization Day.
Modélisation Objet UML avec Rational Rose 2000
Test logiciel Xavier Baril.
5 - Vidéo Numérique.
SGBD orientés Objet Standards : OMG et ODMG.
Travail réalisé par : LATRECHE Imed Eddine MENASRIA Med Lamine
Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG.
Présentation de CORBA et de IIOP
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
La notion de type revisitée en POO
Introduction au développement Office 2007
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
1 Extension du modèle de composants CORBA avec accès concurrent à des données partagées Travail réalisé par : Landry BREUIL PFE, ISIMA Encadrants : Gabriel.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
L’utilisation de Wordpress
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Code Contracts Gilles TOURREAU - MVP C# Architecte .NET / Formateur
Architecture, Abstraction et Topologie réseau
Projet PADDLE 2005 Réunion de suivi 03/03/2005. Etat actuel X Y X2ATS ATS2Y XML Paddle LexerX ParserX Compilation statique (nouveau langage => recompilation.
Entity/Facet/Pattern Une application qui en a…
22 Romain VERDIER Architecte FastConnect Yann SCHWARTZ Architecte/plombier Polom.
Architecture, Abstraction et Topologie réseau DJBELL – 16/11/2010NSY208 CNAM.
13/07/2015 JSF Java Server Faces Master 2 Pro GLR TER David Mihura Eric Le Merdy.
Présentation de Qt Iris 1
1 Matthieu GUIBERT Rodolphe DELLA NEGRA 1. Introduction, Concepts de base, Boucles. TP 2. Tableaux,structures,conditions, séquences, chaînes de caractères,
Plan Introduction La Programmation Orientée Aspect Utilisation de la POA dans le framework LargOnline Conclusion 1 er octobre èmes Journées Informatique.
Ingénieurs 2000, Université de Marne la vallée Programmation Orientée Aspect introduction Gérald Masquelier IR3 Groupe 2 Exposé de Système.
Transcription de la présentation:

Programmation Orientée Aspect sur le Framework .net

L’auteur Jean-Baptiste Evain jbevain@gmail.com Contributeur Mono Chef de projet AspectDNG Formateur SUPINFO

Rejoindre Alice

Plan Historique Le paradigme aspect Les moyens à disposition L’implémentation d’AspectDNG Un mot sur le futur

Houston Le problème : L’OOP arrivant à maturité, on commence à voir ses faiblesses : Fonctionnalités transverses Dispersion du code

Historique Les bases : Méta-programmation Réflexivité 1996 : Gregor Kiczales pose les bases d’AspectJ à Xerox PARC, Palo Alto 1998 : Première version d’AspectJ

Historique 1998 ► 2005 AspectJ JAC (Java Aspect Components) JBoss AOP AspectWerkz Spring AOP www.aosd.net …

AOP sur .net Les outils AOP sur la plateforme .net sont en retards vis-à-vis des outils issus du monde Java. .net 1 beta 1 : novembre 2000 .net 1.0 : janvier 2002 AspectDNG 0.1 : automne 2003 Aspect# : automne 2004

AOP et Microsoft Anders Hejlsberg : « Wait & See » A nous de jouer …

Le paradigme aspect Aspect Entité logicielle implémentant une fonctionnalité transverse

Le paradigme aspect Aspect Weaver (tisseur) Outil qui applique à un programme de base des fonctionnalités : les aspects

Le paradigme aspect Joinpoint (Point de jonction) Point dans l’exécution d’un programme Exemple: appel d’une méthode, lecture d’un champ, levée d’une exception, instanciation

Le paradigme aspect Pointcut, Crosscut (Coupe) Ensemble de points de jonctions Exemple: toutes les méthodes de la classe X qui renvoient un entier

Le paradigme aspect Advice Le code, le comportement de l’aspect

Les outils à disposition en .net Trois approches : Par intercepteurs Tissage dynamique Tissage statique

Approche par Intercepteurs Utiliser les bases fournies par le framework pour rajouter des fonctionnalités transverses Remoting Interception Custom Attribute

Tissage Dynamique A Picture is Worth a Thousand Words

Tissage Dynamique Composant A Composant B A utilise B

Tissage Dynamique Génération d’un Dynamic Proxy Proxy Composant A B Génération d’un Dynamic Proxy

Tissage Dynamique Aspect X Proxy Composant A Composant B Aspect Y

Tissage Dynamique

Tissage Dynamique Récapitulatif : Tissage à l’exécution Possibilité de tisser / dé-tisser à chaud Faible précision des points de jonction

Tissage Statique Le résultat d’une compilation .net est une assembly contenant une représentation intermédiaire du code compilé (IL) Le standard ECMA 335 décrit le format de fichier des assemblies Tissons les assemblies !!!

Tissage Statique Lors de la conception Composant A Composant B Aspect X Aspect Y Lors de la conception

Tissage Statique Composant A Composant B Après tissage

Tissage Statique Récapitulatif : Tissage à la compilation Précision des points de jonction élevée Performances similaires à un développement « artisanal »

Les mécanismes mis en oeuvre Aussi bien en tissage dynamique que statique, on a besoin de librairies : D’introspection, de réflexivité, pour analyser le code de base De génération de code, pour ajouter les aspects au code de base

Panorama Les librairies candidates : System.Reflection / S.R.Emit Rail PERWAPI Mono.Cecil

AspectDNG Tisseur statique Toujours en développement Première version en automne 2003 www.dotnetguru.org Outil de référence pour un ouvrage traitant d’AOP

IL

ILML

AspectDNG

Tissage Statique

Futur Langages intégrant directement le paradigme aspect Les frameworks de développements de compilateurs et d’interpréteurs vont permettre une mise en place triviale de l’AO

Exemple manipulation d’AST .method ldarg stfld

Exemple manipulation d’AST Point de jonction .method ldarg stfld

Exemple manipulation d’AST .method ldstr call ldarg stfld

Pour finir Pour le MIT, l’AOP est une des dix technologies qui changeront le monde Mais l’AOP n’a pas encore gagné ses lettres de noblesses sur la plateforme .net : Principal manque: l’intégration à un IDE

Questions ?