¿Por qué el mundo .NET no tiene nada como rails / grails / django / roo? [cerrado]

10

Me parece que las plataformas web de rápido desarrollo van a cambiar radicalmente el mundo de las aplicaciones web.

Han pasado cinco años desde que se lanzó Rails 1.0 para Ruby, y desde entonces hemos visto Grails para Groovy, Django para Python y Roo para Java.

Pero que yo sepa (que probablemente sea limitado, ya que es un programador de Java / Groovy) no existe un marco similar para C #.

¿Existe tal cosa? ¿Si no, porque no?

Editar: es muy posible que no esté usando las palabras correctas cuando digo "desarrollo rápido", pero estoy hablando de marcos que pueden permitirle construir un motor de blog en 30 minutos. No podría hacer esto razonablemente con, digamos, Java, Spring e Hibernate, dada la variada configuración necesaria para permitir que se encuentren sus controladores, y la configuración y el código necesarios para que sus entidades persistan y se recuperen.

Entonces, estoy hablando de marcos que manejan todo el CRUD con una mentalidad de convención sobre configuración. Si alguien tiene las palabras correctas para lo que estoy hablando, avíseme.

Eric Wilson
fuente

Respuestas:

5

Me parece que todavía no hay un nombre para este tipo de marco del que están hablando en este hilo. Por el momento, los llamo marcos similares a RAILS : marcos que incrementan la productividad al organizar otros marcos existentes con el propósito de resolver las necesidades básicas de la mayoría de las aplicaciones web, pero al mismo tiempo ocultar todas las complejidades del desarrollador.

Por necesidades básicas me refiero a la implementación de un proveedor de persistencia, un contenedor de inyección de dependencia, una herramienta de registro, una plataforma MVC, un motor de plantillas HTML, un kit de inicio de plantillas de sitios web con ajustes preestablecidos de CSS, un marco de seguridad y algunas bibliotecas de Javascript para las características de AJAX y otras cosas geniales. Los marcos similares a RAILS organizan todos estos marcos y herramientas sobre la base del modelo de dominio (las entidades de su sistema con sus atributos).

Gracias al principio de Convención sobre configuración, estos marcos evitan la necesidad de definir muchos archivos de configuración generalmente requeridos por los marcos que organizan (como Spring, Spring MVC, Hibernate, Log4J, etc.), asumiendo configuraciones por defecto basadas en nombres , estructura y metadatos incluidos en las mismas definiciones de clases.

Gracias a los lenguajes dinámicos que utilizan estos marcos (como Ruby, Groovy, Python, Clojure, etc.), con la excepción de SpringRoo que implementa el comportamiento dinámico en Java mediante AspectJ, la funcionalidad que pertenece a los marcos debajo se extiende y se ponen a disposición del desarrollador de una manera tan uniforme y elegante que él / ella es consciente de las tecnologías subyacentes.

Finalmente, gracias a la técnica Scaffold, las pruebas unitarias, las pruebas de integración, los controladores y las vistas se generan automáticamente para las funciones principales (CRUD) sobre cada uno de los objetos de dominio definidos por el desarrollador.

En el mundo .NET todavía no se ha desarrollado nada, siguiendo todas las definiciones anteriores. Pero nada impide que eso ocurra pronto. Hay grandes frameworks, herramientas y bibliotecas ya disponibles en el mundo .NET que pueden ser orquestados por un nuevo framework similar a RAILS hecho para CLR. Hay Unity, Spring.NET y Castle Windsor entre otros para las necesidades de Inyección de dependencia. Entity Framework 4, NHibernate e iBatis.NET son proveedores de persistencia de .NET bastante buenos. ASP.NET MVC ha llegado fuertemente con soporte para varios motores de plantillas además del ASP.NET tradicional.

Incluso si nadie logra usar un lenguaje DLR para construir este tipo de marco, cualquiera con suficiente voluntad puede seguir el camino SpringSource e implementar un marco similar a RAILS con algún lenguaje estático como F #, C # o VB.NET, haciendo uso de un Aspecto Contenedor orientado (como AspectSharp o Gripper-LOOM.NET) para obtener un comportamiento dinámico.

Me encantaría saber acerca de cualquier grupo de personas que intente desarrollar dicho marco en .NET.


fuente
4

No sé a qué te refieres con "plataformas web de desarrollo rápido". La definición de "desarrollo rápido" con la que estoy familiarizado no tiene nada que ver con lenguajes, paradigmas o marcos, sino más bien el uso de prototipos rápidos y desarrollo iterativo para producir un sistema. Cualquier lenguaje o marco puede usarse igualmente bien.

Nunca he usado Grails o Roo antes, pero Django y Rails son ambos frameworks MVC, por lo que su contraparte en .NET sería ASP.NET MVC .

Thomas Owens
fuente
1
Bueno, vería ASP.NET MVC como la contraparte de Spring MVC. Y decir que Rails es un marco MVC es como decir que Stackoverflow es un sitio de control de calidad, como intercambio de expertos. Es una declaración verdadera, pero pierde la característica más importante y la razón de su éxito salvaje.
Eric Wilson
1
Por favor explique "la característica más importante". Rails no es más que un marco MVC para el lenguaje Ruby. Eso captura todo al respecto.
Thomas Owens
2
Bueno, Spring es un marco MVC para Java, pero no hace mucho de lo que hace que Rails y Grails sean geniales. Por ejemplo, con Grails, después de crear un objeto de dominio, puedo escribir grails generate-ally Grails produce controladores, vistas y gestionará la persistencia.
Eric Wilson
3

Puede ingresar a Visual Studio y arrastrar y soltar controles en una página web y conectarlos a una base de datos con poco o ningún código. Un clic para probar / ver. Y un clic para subir a un sitio web (ok, ingrese las credenciales).

No es que esta sea la forma más utilizada o incluso recomendada de hacerlo, pero realmente no es mucho más fácil que esto.

JeffO
fuente
0

Porque las aplicaciones web .NET tienen un ciclo de compilación.

Ruby / Python resultan ser lenguajes muy ágiles / ágiles y dinámicos.

Donde trabajo, tenemos una gran aplicación web .NET, y los tiempos de compilación son comparables a los de un programa C ++ típico de mediano a grande.

En mi tiempo libre desarrollo aplicaciones web en python, y el tiempo de compilación es 0. Simplemente no hay ningún paso de compilación. El intérprete en ejecución solo recarga los archivos .py a medida que los guarda.

Hasen
fuente
1
Bueno, las aplicaciones Java tienen un ciclo de compilación, pero Spring Roo todavía funciona de maravilla para las aplicaciones Java / Spring. Así que creo que hay otros problemas aquí.
Eric Wilson el