Post-mortem d’une application
métier

30/01/2014
Votre interlocuteur
Matthieu DUFOURNEAUD
Référent Technique - Exakis
matthieudu@exakis.com
+33 6 65 93 41 05
Ordre du
jour

Présentation
Ordre du
jour

Présentation
Conception d’une application métier
Ordre du
jour

Présentation
Conception d’une application métier

Bilan des choix techniques
Ordre du
jour

Présentation
Conception d’une application métier

Bilan des choix techniques
Discussion et question
Ordre du
jour

Présentation

Conception d’une application métier
Bilan des choix techniques
Discussion et question
Présentation
Exakis
Exakis, première Entreprise de Services
du Numérique Microsoft
Notre métier
Intégration
de solutions
pour l'entreprise
bas...
Une couverture large et cohérente des
besoins de nos clients
Innovation
et solutions
logicielles
Environnement
utilisateur...
Présentation
MUG Lyon
Un objectif
Microsoft User Group lyonnais pour partager et débattre
autour de technologies passionnantes et innovantes :)
Un collectif










Clément BOUILLIER / DevLyon / @clem_bouillier
Matthieu DUFOURNEAUD / Exakis / @mdufourneau...
Des évènements
 Chaque dernier jeudi du mois
 Idées de sessions
 Speakers
Nous contacter





muglyon.github.io
Twitter @MUGLyon
Facebook / www.facebook.com/groups/118200884904279
LinkedIn / w...
Ordre du
jour

Présentation
Conception d’une application metier
Quel type d’application ?
Quel type de services Web ?
Quel...
Conception
d’une
application
métier
Besoin métier
 Refonte d’une application de calculs de ristournes
 Prévoir possibilité simulations de calculs
 Simulati...
Quel type d’application ?
 Web
 Native
Quel type d’application ?
 Web



Client / HTML/CSS/JS
Services / C#

 Native
Quel type d’application ?
 Web
 Native



Client / XAML/C#
Services / C#
Quel type d’application ?
 Web
 Native


Permet de partager le moteur de calculs des services avec le
client
Quel type de services Web ?
 TCP
 HTTP SOAP
 HTTP REST
Quel type de services Web ?
 TCP






Simplicité
Débuggabilité
Intéropérabilité
Cache
Performance

 HTTP SOAP
 HT...
Quel type de services Web ?
 TCP
 HTTP SOAP






Simplicité
Débuggabilité
Intéropérabilité
Cache
Performance

 HT...
Quel type de services Web ?
 TCP
 HTTP SOAP
 HTTP REST






Simplicité
Débuggabilité
Intéropérabilité
Cache
Perfo...
Quel type de services Web ?
 TCP
 HTTP SOAP
 HTTP REST



Meilleur débuggabilité
Cache HTTP natif disponible
Quel ORM ?
 Entity Framework
 NHibernate
Quel ORM ?
 Entity Framework





LINQ
Génération automatique des entités
Mapping automatique des entités
« Boîte noi...
Quel ORM ?
 Entity Framework
 NHibernate






LINQ
Logs
Filtres
Pas de génération automatique des entités
Pas de m...
Quel ORM ?
 Entity Framework


Génération automatique des entités






LINQ
Logs
Filtres
Mapping automatique par co...
Quel parser d’expression ?
 Irony
 ANTLR
 GOLD Parsing System
Quel parser d’expression ?
 Irony




Grammaire
Débuggabilité
Communauté

 ANTLR
 GOLD Parsing System
Quel parser d’expression ?
 Irony
 ANTLR




Grammaire
Débuggabilité
Communauté

 GOLD Parsing System
Quel parser d’expression ?
 Irony
 ANTLR
 GOLD Parsing System




Grammaire
Débuggabilité
Communauté
Quel parser d’expression ?
 Irony


Grammaire en C#

 ANTLR
 GOLD Parsing System
Comment concilier génération de code et
polymorphisme ?

Impossible de
surcharger les
propriétés générées
Comment concilier génération de code et
polymorphisme ?
Comment simplifier l’utilisation cliente
d’un service Web REST ?

 Pas de découvrabilité
 URLs en chaînes de caractères ...
Comment simplifier l’utilisation cliente
d’un service Web REST ?

 Utilisation d’objets messages partagés entre le client...
Comment conjuguer les contraintes de
consultation et d’édition ?

 Consultation






Beaucoup d’écrans de consultat...
Comment conjuguer les contraintes de
consultation et d’édition ?

 CQRS (Command Query Responsibility Segregation)
Comment conjuguer les contraintes de
consultation et d’édition ?

 CQRS-spirit
Ordre du
jour

Présentation
Conception d’une application métier

Bilan des choix techniques
Quel type d’application ?
Quel...
Bilan des
choix
techniques
Quel type d’application ?
 Simulation pas encore implémentée, ni planifiée
Quel type de services Web ?
 Débuggage facilité
 Pas de problème de latence rencontré
 Cache pas encore utilisé
Quel ORM ?





Logs essentiels aux débuggage et à l’optimisation
Utilisation transparente des filtres
Nécessité de co...
Quel parser d’expression ?
 Grammaire codée en moins de 30 lignes de C#
Comment concilier génération de code et
polymorphisme ?

 Ça fonctionne
Comment simplifier l’utilisation cliente
d’un service Web REST ?

 Développement simplifié
 Débuggage facilité
 Organis...






Comment conjuguer les contraintes de
consultation et d’édition ?
Développement simplifié
Maintenabilité augment...
Ordre du
jour

Présentation
Conception d’une application métier

Bilan des choix techniques
Discussion et Questions
Discus...
Prochains évènements





Forum des communautés IT lyonnaises / mardi 4 février
Coding Dojo DDD / jeudi 20 février
MUG...
20140130   mug lyon - post-mortem d'une application métier
Prochain SlideShare
Chargement dans…5
×

20140130 mug lyon - post-mortem d'une application métier

710 vues

Publié le

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
710
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

20140130 mug lyon - post-mortem d'une application métier

  1. 1. Post-mortem d’une application métier 30/01/2014
  2. 2. Votre interlocuteur Matthieu DUFOURNEAUD Référent Technique - Exakis matthieudu@exakis.com +33 6 65 93 41 05
  3. 3. Ordre du jour Présentation
  4. 4. Ordre du jour Présentation Conception d’une application métier
  5. 5. Ordre du jour Présentation Conception d’une application métier Bilan des choix techniques
  6. 6. Ordre du jour Présentation Conception d’une application métier Bilan des choix techniques Discussion et question
  7. 7. Ordre du jour Présentation Conception d’une application métier Bilan des choix techniques Discussion et question
  8. 8. Présentation Exakis
  9. 9. Exakis, première Entreprise de Services du Numérique Microsoft Notre métier Intégration de solutions pour l'entreprise basée sur la plateforme Microsoft Notre positionnement Partenaire pure-player de Microsoft leader en France Notre objectif Vous apporter des solutions technologiques qui vous permettront d’améliorer vos performances
  10. 10. Une couverture large et cohérente des besoins de nos clients Innovation et solutions logicielles Environnement utilisateur et mobilité Social et collaboration Datacenter et cloud Communications unifiées Sécurité et gestion des identités
  11. 11. Présentation MUG Lyon
  12. 12. Un objectif Microsoft User Group lyonnais pour partager et débattre autour de technologies passionnantes et innovantes :)
  13. 13. Un collectif          Clément BOUILLIER / DevLyon / @clem_bouillier Matthieu DUFOURNEAUD / Exakis / @mdufourneaud Grégory OTT / Tekigo / @gregory_ott Emilien PECOUL / DevLyon / @Ouarzy Florent PELLET / DevLyon / @florentpellet Yannick RINGAPIN / MCNEXT / @BlackBeard486 Vincent THAVONEKHAM / Objet Direct / @vThavo Benjamin WISNIEWSKI / Apollo SSC / @_b3w Vous ? (cotisation 5€)
  14. 14. Des évènements  Chaque dernier jeudi du mois  Idées de sessions  Speakers
  15. 15. Nous contacter     muglyon.github.io Twitter @MUGLyon Facebook / www.facebook.com/groups/118200884904279 LinkedIn / www.linkedin.com/groups/MUG-Lyon-4302523
  16. 16. Ordre du jour Présentation Conception d’une application metier Quel type d’application ? Quel type de services Web ? Quel ORM ? Quel parser d’expression ? Comment concilier génération de code et polymorphisme ? Comment simplifier l’utilisation cliente d’un service Web REST ? Comment conjuguer les contraintes de consultation et d’édition ? Bilan des choix techniques Discussion et Questions
  17. 17. Conception d’une application métier
  18. 18. Besoin métier  Refonte d’une application de calculs de ristournes  Prévoir possibilité simulations de calculs  Simulations réalisées chez le client en déconnecté
  19. 19. Quel type d’application ?  Web  Native
  20. 20. Quel type d’application ?  Web   Client / HTML/CSS/JS Services / C#  Native
  21. 21. Quel type d’application ?  Web  Native   Client / XAML/C# Services / C#
  22. 22. Quel type d’application ?  Web  Native  Permet de partager le moteur de calculs des services avec le client
  23. 23. Quel type de services Web ?  TCP  HTTP SOAP  HTTP REST
  24. 24. Quel type de services Web ?  TCP      Simplicité Débuggabilité Intéropérabilité Cache Performance  HTTP SOAP  HTTP REST
  25. 25. Quel type de services Web ?  TCP  HTTP SOAP      Simplicité Débuggabilité Intéropérabilité Cache Performance  HTTP REST
  26. 26. Quel type de services Web ?  TCP  HTTP SOAP  HTTP REST      Simplicité Débuggabilité Intéropérabilité Cache Performance
  27. 27. Quel type de services Web ?  TCP  HTTP SOAP  HTTP REST   Meilleur débuggabilité Cache HTTP natif disponible
  28. 28. Quel ORM ?  Entity Framework  NHibernate
  29. 29. Quel ORM ?  Entity Framework     LINQ Génération automatique des entités Mapping automatique des entités « Boîte noire »  NHibernate
  30. 30. Quel ORM ?  Entity Framework  NHibernate      LINQ Logs Filtres Pas de génération automatique des entités Pas de mapping automatique des entités
  31. 31. Quel ORM ?  Entity Framework  Génération automatique des entités     LINQ Logs Filtres Mapping automatique par convention  NHibernate
  32. 32. Quel parser d’expression ?  Irony  ANTLR  GOLD Parsing System
  33. 33. Quel parser d’expression ?  Irony    Grammaire Débuggabilité Communauté  ANTLR  GOLD Parsing System
  34. 34. Quel parser d’expression ?  Irony  ANTLR    Grammaire Débuggabilité Communauté  GOLD Parsing System
  35. 35. Quel parser d’expression ?  Irony  ANTLR  GOLD Parsing System    Grammaire Débuggabilité Communauté
  36. 36. Quel parser d’expression ?  Irony  Grammaire en C#  ANTLR  GOLD Parsing System
  37. 37. Comment concilier génération de code et polymorphisme ? Impossible de surcharger les propriétés générées
  38. 38. Comment concilier génération de code et polymorphisme ?
  39. 39. Comment simplifier l’utilisation cliente d’un service Web REST ?  Pas de découvrabilité  URLs en chaînes de caractères rendent difficile le refactoring
  40. 40. Comment simplifier l’utilisation cliente d’un service Web REST ?  Utilisation d’objets messages partagés entre le client et les  services Construction automatique des URLs via convention basée sur le type du message
  41. 41. Comment conjuguer les contraintes de consultation et d’édition ?  Consultation      Beaucoup d’écrans de consultation Modifications fréquentes Accès aux données spécifique à l’écran Pas de modification des données Dé-normalisation utile    Accès aux données commun aux écrans Modification des données Normalisation nécessaire  Edition
  42. 42. Comment conjuguer les contraintes de consultation et d’édition ?  CQRS (Command Query Responsibility Segregation)
  43. 43. Comment conjuguer les contraintes de consultation et d’édition ?  CQRS-spirit
  44. 44. Ordre du jour Présentation Conception d’une application métier Bilan des choix techniques Quel type d’application ? Quel type de services Web ? Quel ORM ? Quel parser d’expression ? Comment concilier génération de code et polymorphisme ? Comment simplifier l’utilisation cliente d’un service Web REST ? Comment conjuguer les contraintes de consultation et d’édition ? Discussion et Questions
  45. 45. Bilan des choix techniques
  46. 46. Quel type d’application ?  Simulation pas encore implémentée, ni planifiée
  47. 47. Quel type de services Web ?  Débuggage facilité  Pas de problème de latence rencontré  Cache pas encore utilisé
  48. 48. Quel ORM ?     Logs essentiels aux débuggage et à l’optimisation Utilisation transparente des filtres Nécessité de corriger l’EDMX après sa génération Mauvaise gestion du mapping des booléens Oracle par le designer d’EDMX
  49. 49. Quel parser d’expression ?  Grammaire codée en moins de 30 lignes de C#
  50. 50. Comment concilier génération de code et polymorphisme ?  Ça fonctionne
  51. 51. Comment simplifier l’utilisation cliente d’un service Web REST ?  Développement simplifié  Débuggage facilité  Organisation des messages à optimiser
  52. 52.      Comment conjuguer les contraintes de consultation et d’édition ? Développement simplifié Maintenabilité augmentée Pas de mesure du gain en performance Trop tôt pour mesurer le gain en évolutivité Refactoring nécessaire pour mettre en place des bases génériques
  53. 53. Ordre du jour Présentation Conception d’une application métier Bilan des choix techniques Discussion et Questions Discussion et Questions
  54. 54. Prochains évènements     Forum des communautés IT lyonnaises / mardi 4 février Coding Dojo DDD / jeudi 20 février MUG Lyon / Injection de dépendances / jeudi 27 février Global Windows Azure Bootcamp: le premier GWAB à Lyon !!! / samedi 29 mars

×