TICK&LIVE
Prestation chez le client Je suis intervenu à Rennes pendant presque un an pour renforcer les équipes de la société Tick&Live (France Billet – Fnac Darty). Tick&Live est spécialisé dans la gestion d’évènement et tout particulièrement dans la billeterie en ligne. J’ai travaillé dans la branche DataSport qui gère les évènements sportifs aux travers des réseaux de distribution comme Ticketmaster, Francebillet, Digitick… J’ai eu l’occasion de pouvoir travailler sur 4 projets majeurs : – App qui est l’application historique (C# Asp.net WebForm) – Chromeback qui est la refonte d’App (C# Asp.net MVC5) – CashRegister qui est logiciel de caisse (C# Asp.net MVC5) – Api Auth qui un Web Service pour gérer les authentifications de ces 3 dernières (C# Asp.net Core 2.2) C’est la première fois que j’utilise l’intégralité de mes connaissances web avec Microsoft Asp.net depuis Webform (2003 pour moi) jusqu’à Asp.net Core 2.2 en passant par Asp.net MVC5 sur un seul applicatif. Plus précisément, App est une application web qui a plusieurs années, probablement du siècle dernier. Ce qui rend la maintenance extrèmement périlleuse. Le code n’est plus forcément à jour et une armée de développeur a au fil du temps rajouté des couches de complexité. C’est pourquoi Chromeback, la solution de remplacement est en cours de développement (une partie étant déjà en prod). Ce dernier est un mix de nouvelle technologie (React, MVC5, architecture découplé) mais qui repose encore sur du code legacy dans les couches basses (DAL ré-adapté, Oracle viellissant, beaucoup de procédure stockées, couche métier encore dans le SQL). La difficulté est historique, beaucoup trop complexe pour que je l’explique ici. J’ai donc commencé par faire un peu de TMA (Tierce Maintenance Applicative) principalement sur App. J’ai aussi développé un outil pour extraire les tribunes d’un stade (avec info place vendu, libre, réservée…) sous format tableur Excel. Puis j’ai implémenté un système de SSO (Single Sign On) pour permetttre de basculer entre App et Chromeback en toute sécurité. Ensuite on m’a confié le développement de la mise en norme GDPR, un gros chantier. Pour cela, j’ai proposé de créer une API Web pour gérer les authentifications des utilisateurs afin de centraliser et découpler cette fonctionalité qui existe sur chacun des applicatifs, mais indépendament, ce qui posait déjà problème. Deux gros challenges : – respecter les recommandations des normes européennes GDPR (mot de passe hashé, système de bloquage, complexité du mot de passe, gestion des connexions, droit à l’oubli etc…) – intégrer l’outil sans douleur. Ce dernier point a nécessité une étude approfondi des mécanismes déjà en place, de l’implémentation d’une API Web Asp.net Core 2.2 et d’outil de migration permettant une transition complétement transparente pour le metier et pour les clients. Au final, pour un utilisateur, la mise aux normes est totalement transparente. L’API Web dispose de son propre backoffice lui permettant de gérer les utilisateurs et d’opérer via des outils en ligne à la migration des comptes existant. Elle dispose d’un Swagger permettant aux développeurs de pouvoir développer leurs propres fonctionnalités (comme par exemple la création d’un utilisateur depuis une application comme App.) Quelques élements techniques de l’API : – Backoffice MVC (bootstrap) – IOC injection de dépendance au startup (découplage en service DAL, service metier, service x…) – Log développeur et Journalisation (GDPR) – JWToken, Controler sécurisé – Projet Test couvrant des cas basiques (CRUD) et verification des niveaux de sécurité – Deploiement facilité, même si il n’y a pas de CI/CD encore en place, j’ai préparé le terrain – Documentation complète (et pas un listing de code généré automatiquement, une doc pédagogique couvrant l’ensemble des applicatifs, de l’achitecture globale, des bases de données (sur Confluence)…) Ces 10 mois ont été fort enrichissant, j’ai pu revoir du code dont j’avais complétement oublié l’existance jusqu’à coder sur une techno récente. Je m’aperçois aujourd’hui à quel point le framework Asp.net à pu évolué en presque 20 ans !