Metaprogrammation Matthieu MEZIL Infinite Square matthieu mezillive fr
- Slides: 10
Meta-programmation Matthieu MEZIL - Infinite Square matthieu. mezil@live. fr - @Matthieu. MEZIL - http: //msmvps. com/blogs/matthieu - MVP C# - INETA speaker
Développement d’une application de gestion orientée données • Où est la valeur pour le client ? • Persistance • Règles métiers • UI La « plomberie » n’a pas de valeur pour le client
Développement d’une application de gestion orientée données • Pourtant la « plomberie » • représente une partie très importante du temps de développement du projet • est la partie la plus technique • englobe à elle seule la quasi-totalité du risque
Quels sont les risques ? • Sous-estimation du temps de développement • Sous-estimation de la complexité technique • échec du projet • impact sur le temps de développement • Impact sur les performances du code
Qu’est-ce que la méta-programmation peut apporter ? • Avec la méta-programmation il est possible de générer la « plomberie » • Augmentation considérable de la productivité • Réduction drastique du risque • Augmentation de la maintenabilité et diminution du risque « effet de bord »
Pourquoi la méta-programmation est-elle si peu développée aujourd’hui ? • L’idée de la méta-programmation n’est pas nouvelle • Par le passé : rarement un franc succès • • Rarement très performant Difficile à customiser Prenant rarement en compte les règles métiers Imposant le plus souvent un formalisme restreint
Qu’est-ce qui a changé ? • Microsoft permet aujourd’hui une méta-programmation mâture • Les développeurs peuvent personnaliser très facilement le code généré • Visual Studio permettant permet de régénérer l’ensemble de la « plomberie » sans avoir à se soucier de l’impact de notre modification • Une technologie (Roslyn) nous permet d’analyser le code source. • Ecriture de règles métier en C# (i. e. sans aucune contrainte)
Qu’est-ce qu’il est possible de faire maintenant ? • Construire un meta-framework • génère l’ensemble de la « plomberie » en se basant sur les dernières technologies de Microsoft • Tout en assurant un code généré optimal • Tout en permettant la customisation • Tout en restant flexible L’intégration pour les développeurs est simple
WAQS Application Scaffolding feedbacks clients « WAQS est une innovation, aucune autre société ne peut concevoir un système avec autant de règles et si peu de code à écrire. » (Responsable R&D) « WAQS est une révolution pour les développeurs et apporte un gain de productivité exceptionnel » (Architecte) « On passe plus de temps sur le métier et moins sur la technique » (Chef de Projet) « WAQS génère du code plus performant que celui qu’on aurait écrit manuellement alors pourquoi s’en passer ? » (Développeur senior)
Meta-programmation Matthieu MEZIL - Infinite Square matthieu. mezil@live. fr - @Matthieu. MEZIL - http: //msmvps. com/blogs/matthieu - MVP C# - INETA speaker