it-swarm-es.com

¿Por qué el mundo .NET no tiene nada como Rails / grails / Django / roo?

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 Rails 1.0 fue lanzado 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, al ser un programador 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 posiblemente te permitan construir un motor de blogs que funcione en 30 minutos . No podría razonablemente hacer esto con, digamos, Java, Spring e Hibernate, dadas las diversas configuraciones necesarias para permitir que se encuentren sus controladores, y tanto la configuración como 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 adecuadas para lo que estoy hablando, avíseme.

10
Eric Wilson

Me parece que todavía no hay un nombre para este tipo de marco del que están hablando en este hilo. Los llamo por el momento simplemente Frameworks tipo Rails: Frameworks que incrementan la productividad al orquestar otros frameworks existentes con el propósito de resolver las necesidades básicas de la mayoría de las aplicaciones web, pero al mismo tiempo ocultando 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 plantilla HTML, un kit de inicio de plantilla de sitio web con ajustes preestablecidos de CSS, un marco de seguridad y alguna biblioteca de JavaScript para AJAX características y otras cosas interesantes. Los Frameworks 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 que generalmente requieren los marcos que orquestan (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 frameworks (como Ruby, Groovy, Python, Clojure, etc.), a excepción de SpringRoo que implementa comportamiento dinámico en Java utilizando AspectJ, la funcionalidad que pertenece a los marcos que se encuentran debajo se amplían y se ponen a disposición del desarrollador de una manera tan uniforme y elegante que él/ella apenas conoce las tecnologías subyacentes.

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

En el mundo .NET aún no se ha desarrollado nada, siguiendo todas las definiciones anteriores. Pero nada impide que eso ocurra pronto. Ya hay excelentes marcos, herramientas y bibliotecas disponibles en el mundo .NET que pueden ser orquestados por un nuevo marco similar a Rails creado para CLR. Hay Unity, Spring.NET y Castle Windsor, entre otros, para las necesidades de Inyección de dependencias. Entity Framework 4, NHibernate e iBatis.NET son proveedores de persistencia .NET bastante buenos. ASP.NET MVC ha llegado con fuerza con soporte para varios motores de plantilla 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 la ruta SpringSource e implementar un marco similar a Rails con algún lenguaje estático como F #, C # o VB.NET, haciendo uso de un Aspect -Contenedor orientado (como AspectSharp o Gripper-LOOM.NET) para obtener un comportamiento dinámico.

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

5
Rodrigo Salinas

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 con el uso de prototipos rápidos y desarrollo iterativo para producir un sistema. Cualquier lenguaje o marco se puede utilizar 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 .

4
Thomas Owens

Puede ir 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 hay nada más fácil que esto.

3
JeffO

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

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

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

En mi repuesto, 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 simplemente vuelve a cargar los archivos .py a medida que los guarda.

0
hasen