Mi sembra che non ci sia ancora un nome per questo tipo di framework di cui state parlando tutti in questo thread. Per il momento li chiamo solo Frameworks simili a RAILS : Frameworks che aumentano la produttività orchestrando altri framework esistenti allo scopo di risolvere le esigenze di base della maggior parte delle applicazioni Web, ma allo stesso tempo nascondendo tutte le complessità dallo sviluppatore.
Per esigenze di base intendo l'implementazione di un provider di persistenza, un contenitore di inezione di dipendenza, uno strumento di registrazione, una piattaforma MVC, un motore di template HTML, uno starter kit di modelli di siti Web con preset CSS, un framework di sicurezza e alcune librerie Javascript per le funzionalità AJAX e altre cose interessanti. I Frameworks simili a RAILS orchestrano tutti questi framework e strumenti sulla base del modello di dominio (le entità del sistema con i suoi attributi).
Grazie al principio Convention-over-Configuration, questi framework evitano la necessità di definire molti file di configurazione normalmente richiesti dai framework che orchestrano (come Spring, Spring MVC, Hibernate, Log4J, ecc.), Assumendo configurazioni predefinite in base alla denominazione , struttura e metadati inclusi nelle stesse definizioni di classi.
Grazie ai linguaggi dinamici che utilizzano questi framework (come Ruby, Groovy, Python, Clojure, ecc.), Ad eccezione di SpringRoo che implementa il comportamento dinamico in Java usando AspectJ, le funzionalità che appartengono ai framework sottostanti vengono estese e sono messi a disposizione dello sviluppatore in modo uniforme ed elegante da essere a conoscenza delle tecnologie sottostanti.
Infine, grazie alla tecnica Scaffold, vengono generati automaticamente unit test, test di integrazione, controller e viste per le funzioni principali (CRUD) su ciascuno degli oggetti di dominio definiti dallo sviluppatore.
Nel mondo .NET non è stato ancora sviluppato nulla, seguendo tutte le definizioni precedenti. Ma nulla impedisce che ciò accada presto. Esistono già fantastici framework, strumenti e librerie nel mondo .NET che possono essere orchestrati da un nuovo framework simile a RAILS creato per CLR. Ci sono Unity, Spring.NET e Castle Windsor tra gli altri per le esigenze di Inection Dependency. Entity Framework 4, NHibernate e iBatis.NET sono abbastanza buoni provider di persistenza .NET. ASP.NET MVC è fortemente arrivato con il supporto per vari modelli di motori oltre al tradizionale ASP.NET.
Anche se nessuno riesce a usare un linguaggio DLR per costruire questo tipo di framework, chiunque abbia abbastanza volontà può seguire il percorso SpringSource e implementare un framework simile a RAILS con un linguaggio statico come F #, C # o VB.NET, usando un Aspetto -Oriented Container (come AspectSharp o Gripper-LOOM.NET) per ottenere un comportamento dinamico.
Mi piacerebbe conoscere qualsiasi gruppo di persone che cercano di sviluppare tale framework in .NET.