Estás comparando muchos marcos que tienen un propósito bastante diferente. Comencemos por el más amplio: asp.net. Proporciona el marco a partir del cual se construye MVC (de Microsoft).
MVC.net es un marco más obstinado que asp.net (pero no tan obstinado como Rails) que usa, sí, el paradigma MVC que Rails hizo muy popular. Me saltearé la explicación de MVC, ya que puedes buscarlo.
Hay otros marcos que se ejecutan en asp.net, como WebForms, que fue un intento interesante de llevar el desarrollo de escritorio a la web.
- ¿Dónde encuentro scripts PHP Laravel?
- ¿Qué herramientas debo tener en mi arsenal para crear un sitio web similar a Facebook?
- Cómo llamar a otra página usando ajax en Laravel 5.4
- ¿Es ético agregar una licencia a una biblioteca Javascript?
- ¿Contratarás un programador sin título en India?
Entonces, ¿Rails y MVC.net no son lo mismo? Realmente no. Rails usa el lenguaje Ruby en lugar de C # (o VB.net), pero ahí es donde comienzan las diferencias. Ambos usan el paradigma MVC, pero Rails le brinda un marco muy completo. Clases de acceso a la base de datos y muchas otras funciones listas para usar. MVC.net ha estado persiguiendo a Rails, en términos de funcionalidad, pero siempre parecen estar unos pocos pasos atrás. MVC.net incluye el Entity Framework que es similar al ORM de Rail, ActiveRecord, pero aún así no es tan fácil de usar. MVC.net se siente más como una mezcolanza de tecnologías improvisadas.
Muchos de los cambios realizados en Rails parecen estar inspirados por los desarrolladores, cambios que ayudan a los desarrolladores a ahorrar tiempo.
Un pequeño ejemplo. En Rails 5.0, no tiene que definir las propiedades del modelo que esencialmente reflejan las tablas de la base de datos. En Entity Framework (EF), sí (aunque creo que hay una manera de importarlos). En muchos sentidos, EF es inferior, ya que ahora debe mantener los mismos metadatos tanto en la DB como en las clases de modelo. Algunas personas argumentarán que esto está bien y, por lo tanto, tenemos un software obstinado. Rails carga a toda máquina con ciertos paradigmas y los perfeccionan hasta que funcionan muy bien. Pero si no le gusta ese paradigma, es posible que pueda cambiarlo, pero pierde una gran cantidad de eficiencia de programación. MVC.net, por otro lado, te ofrece infinitas formas de crear un sitio web.
Al soltar las infinitas opciones que ofrece MVC.net, Rails paga enormes dividendos en la eficiencia del programador.
Muchas veces en Rails, me han impresionado ciertas direcciones que tomaron en el software. Si bien es menos flexible en algunos aspectos, puede decir que fue escrito por desarrolladores que realmente lo usan.
MVC.net se siente más como un grupo de programadores increíbles que reúnen los componentes básicos para crear un excelente software. A veces, los bloques de construcción no son perfectos o no se prestan bien para eliminar un proyecto rápidamente. No parece que estos desarrolladores realmente usen su producto para crear sitios web. Al menos no después de usar Rails.
Entonces, si necesita desarrollar en Windows, MVC.net puede ser el camino a seguir. O si tienes habilidades de C # y no quieres aprender algo nuevo. O si necesita la máxima flexibilidad.
Si desea eliminar sitios web rápidamente (incluso los complejos), con un poco menos de molestias, Rails es una gran opción.
Además, solo como una nota al margen. Los rieles pueden ser más PITA para configurar que mvc.net en el servidor (y el cliente para el caso). Tampoco tiene el elegante Visual Studio, pero de alguna manera no es tan necesario. Rails también tiene pruebas increíbles integradas. Rails también parece estar integrando tecnología más nueva más rápido que mvc.net. Por ejemplo, TurboLinks, que acelera significativamente las páginas web al descargar solo el contenido del cuerpo html.