Il me semble qu'il n'y a pas encore de nom pour ce type de framework dont vous parlez tous dans ce fil. Je les appelle pour l'instant des cadres similaires à RAILS : des cadres qui augmentent la productivité en orchestrant d'autres cadres existants dans le but de résoudre les besoins de base de la plupart des applications Web, tout en cachant toutes les complexités au développeur.
Par besoins de base, j'entends la mise en œuvre d'un fournisseur de persistance, d'un conteneur d'inyection de dépendance, d'un outil de journalisation, d'une plate-forme MVC, d'un moteur de modèle HTML, d'un kit de démarrage de modèle de site Web avec des préréglages CSS, d'un cadre de sécurité et d'une bibliothèque Javascript pour les fonctionnalités AJAX et d'autres trucs sympas. Les cadres de type RAILS orchestrent tous ces cadres et outils sur la base du modèle de domaine (les entités de votre système avec ses attributs).
Grâce au principe de convention sur configuration, ces frameworks évitent de définir de nombreux fichiers de configuration généralement requis par les frameworks qu'ils orchestrent (comme Spring, Spring MVC, Hibernate, Log4J, etc.), en supposant des configurations par défaut basées sur le nommage , structure et métadonnées incluses dans les mêmes définitions de classes.
Grâce aux langages dynamiques que ces frameworks utilisent (comme Ruby, Groovy, Python, Clojure, etc.), à l'exception de SpringRoo qui implémente le comportement dynamique en Java en utilisant AspectJ, la fonctionnalité qui appartient aux frameworks en dessous est étendue et sont mis à la disposition du développeur d'une manière si uniforme et élégante qu'il / elle est juste au courant des technologies sous-jacentes.
Enfin grâce à la technique Scaffold, des tests unitaires, des tests d'intégration, des contrôleurs et des vues sont générés automatiquement pour les fonctions principales (CRUD) sur chacun des objets de domaine définis par le développeur.
Dans le monde .NET, rien n'a encore été développé, suivant toutes les définitions précédentes. Mais rien n'empêche que cela se produise bientôt. Il existe d'excellents cadres, outils et bibliothèques déjà disponibles dans le monde .NET qui peuvent être orchestrés par un nouveau cadre de type RAILS conçu pour le CLR. Il existe entre autres Unity, Spring.NET et Castle Windsor pour les besoins d'Inyection de dépendance. Entity Framework 4, NHibernate et iBatis.NET sont de très bons fournisseurs de persistance .NET. ASP.NET MVC est fortement arrivé avec la prise en charge de divers moteurs de modèle en plus de l'ASP.NET traditionnel.
Même si personne ne parvient à utiliser un langage DLR pour construire ce type de framework, quiconque en aura assez pourra suivre le chemin SpringSource et implémenter un framework de type RAILS avec un langage statique comme F #, C # ou VB.NET, en utilisant un Aspect - Conteneur orienté (comme AspectSharp ou Gripper-LOOM.NET) pour obtenir un comportement dynamique.
J'aimerais connaître tout groupe de personnes essayant de développer un tel cadre en .NET.