Préface
Concevoir aujourd'hui les logiciels de demain
Lorsque j’ai commencé à développer des logiciels avec la première version du Framework .NET et du langage C#, en 2002, le paysage du développement logiciel était très différent de celui que nous connaissons aujourd’hui.
L’écosystème Microsoft .NET a considérablement évolué. Les technologies se sont succédées, les architectures se sont transformées, les outils sont devenus plus performants et les pratiques de développement se sont progressivement professionnalisées. Pourtant, après plus de vingt-quatre années passées à concevoir et développer des logiciels avec cet écosystème, une conviction reste inchangée : écrire du code qui fonctionne et répond aux besoins des utilisateurs n’est que la première sont très bonne choses, mais ne sont pas suffisantes. Des évènements surviendront : une fonctionnalité développée aujourd’hui devra probablement évoluer demain ; une règle métier sera modifiée ; un nouveau composant devra être intégré. Une anomalie devra être corrigée. De nouvelles contraintes techniques apparaîtront ; ... Puis, de nouveaux développeurs rejoindront le projet et devront comprendre des choix de conception effectués plusieurs mois ou plusieurs années auparavant.
Au cours de ma carrière, j’ai eu l’occasion de participer à la conception et au développement de nombreuses applications, parfois constituées de plusieurs centaines de milliers de lignes de code. J’ai également accompagné des équipes de développement, réalisé des architectures logicielles, conçu des composants applicatifs et transmis mes connaissances à plusieurs centaines de concepteurs et développeurs.
Ce sont les raisons qui m'ont amenées à écrire ce livre numérique et transmettre des connaissances qui permettent aux concepteurs et développeurs .NET de créer des logiciels pérennes, autrement dit des logiciels qui reposent sur quatre piliers fondamentaux : la performance, l’évolutivité, la maintenabilité et la robustesse. Les sujets abordés dans ce livre, la programmation orientée objet, les principes SOLID et les design patterns comptent parmis les moyens permettant de créer ces quatre piliers.
