{ Entre parenthèses }
Qu'est-ce que ALT .NET ?
Jeremy D. Miller
L'année dernière David Laribee a inventé le terme « ALT. NET » pour décrire une communauté d'individus partageant le même avis dans le monde de Microsoft® .NET Framework, qui ressentait une frustration croissante car les outils, les consignes et la culture .NET de Microsoft au sens large ne reflétait pas ou ne tenait pas compte de nombreuses valeurs fondamentales. En octobre 2007, une centaine de personnes se sont réunies à Austin, Texas, pour le premier événement ALT .NET Open Spaces, faisant ainsi du mot à la mode quelque chose de plus tangible. C'est ainsi qu'une vraie communauté fut formée.
Alors qu'est-ce que ALT.NET ? Et quelle est sa différence avec le .NET que nous connaissons déjà ? Quelles sont ces valeurs qui manquent, selon beaucoup d'entre nous ? Quels sont ces techniques, ces pratiques et ces outils alternatifs adoptés par les fans de ALT. NET ? Commençons par examiner la nature d'un développeur ALT .NET.
- Vous êtes le type de développeur qui utilise tout ce qui marche tout en restant aux aguets pour trouver une meilleure méthode. L'un des sujets courants à l'événement ALT .NET était de gommer les écarts entre les exigences, le test et le code. Notre manière de développer des logiciels comporte toujours du superflu qui peut être éliminé.
- Vous sortez des sentiers battus pour adopter le meilleur de n'importe quelle communauté : Open Source, Agile, Java, Ruby. Microsoft ou la communauté .NET n'a en aucun cas le monopole du bon développement de logiciels. Par exemple, les processus Agile et Design Patterns ont démarré avec Smalltalk. De la même manière, les outils et les techniques IoC (Inversion of Control) proviennent de Java. Et deux principes fondamentaux de Ruby on Rails (Ne pas se répéter et Convention avant la configuration) peuvent également être appliqués à .NET.
- Le statu quo ne vous convient pas. Les choses toujours peuvent être plus élégantes, plus muables et de meilleure qualité. Nous expérimentons tous des techniques pour lier plus étroitement le codage et le test au domaine d'entreprise. Par exemple, le développement piloté par comportement affine et étend le développement piloté par test en spécifiant le comportement voulu du code d'une façon plus lisible qu'un test xUnit classique. Et la programmation orientée langage offre le potentiel d'élever la couche d'abstraction jusqu'au niveau de la logique de domaine.
- Vous réalisez que les outils fonctionnent bien, mais qu'ils ne vous amènent pas si loin. Ce sont les principes et la connaissance qui importent vraiment. Les meilleurs outils sont ceux qui s'intègrent à la connaissance et favorisent les principes (par exemple, ReSharper). De plus, vous avez le sentiment que les qualités principales d'une solution sont la capacité de capacité de gestion et la durabilité. Le code gérable est signe d'une bonne conception. Une bonne conception résulte de l'application habile de connaissances de conception. La communauté .NET a donné trop d'importance à l'apprentissage des détails des API et de l'infrastructure et pas assez aux principes de base de la conception et du codage.
Ce qui provoqua l'apparition de ALT .NET fut une démonstration d'une version bêta de la nouvelle Entity Framework en mars 2007. Moi, ainsi que plusieurs autres, étions déçus de certains éléments d'Entity Framework, en particulier le manque d'« Ignorance de persistance » et l'accouplement étroit à la base de données. À ce moment-là, Entity Framework ne paraissait pas adaptée au développement piloté par test, à la conception pilotée par domaine ou à la conception continue, toutes ces choses que je considère précieuses pour le développement facile à gérer.
D'autre part, la nouvelle infrastructure MVC (Model View Controller) pour le développement ASP.NET est excitante parce qu'elle prend en charge explicitement et autorise les valeurs que je trouve importantes pour un développement logiciel réussi. L'infrastructure MVC reflète clairement les valeurs de capacité de gestion et de test avec un accent mis sur la séparation des intérêts et la capacité de test à travers la conception de l'infrastructure.
Il est facile d'être cynique ou indifférent vis-à-vis de l'état de développement. Cependant, au lieu de se plaindre que Gérald ne sait pas coder et qu'il est difficile de trouver de bons développeurs, peut-être devons-nous reconnaître notre problème principal : nous sommes très mauvais dans la formation de bons développeurs.
Beaucoup de développeurs seraient heureux d'utiliser le mappage objet/relationnel et le développement piloté par test s'ils savaient seulement par où commencer. De la même manière, les personnes pratiquant déjà ces techniques veulent s'améliorer encore en interagissant avec d'autres personnes. Mon grand espoir pour le mouvement ALT .NET est qu'il crée une communauté qui aide les deux groupes et contribue à en faire de meilleurs développeurs. Dans ce but, le site Web Altnetpedia (altnetpedia.com) vient d'ouvrir et propose le début d'une liste de ressources pour apprendre à appliquer ces techniques dans. NET. Le forum d'altnetconf (tech.groups.yahoo.com/group/altdotnet) est déjà en service et offre un lieu où les programmeurs .NET peuvent discuter de développement. N'oubliez pas de vous y arrêter !