¿Cuál es el mejor, Ruby on Rails, Asp.net o MVC, y por qué?

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.

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.

Las capacidades tecnológicas son más o menos equivalentes, pero la principal diferencia está en la disponibilidad de extensiones de código abierto y soporte comunitario.

La comunidad de rieles es mucho más grande y más comprometida que la comunidad ASP.net y proporcionará un soporte mucho mejor.

La comunidad ASP.net tiene algunas extensiones de código abierto y público, pero una fracción de lo que está disponible para Rails.

No hay una respuesta correcta a esta pregunta, ya que la respuesta realmente depende de su formación técnica actual, su compromiso de aprender una nueva plataforma y su mercado objetivo.

¿Está creando una nueva aplicación para una organización existente que se implementa principalmente en Windows y no tiene ingenieros de Linux para ayudarlo a configurar sus entornos de producción? Elija ASP.NET si contratar expertos en Linux o aprender e implementar en Linux no es una opción.

¿Está creando una startup web de consumo de alto crecimiento con la intención eventual de obtener financiación o ser adquirida por una entidad más grande del Área de la Bahía? Elija Rails y planifique contratar o aprender todo lo que necesita saber.

Si está en algún punto intermedio, determine cuánto tiempo de aceleración puede manejar antes de tener que comenzar a ofrecer valor. Si el tiempo es corto, elija la plataforma con la que esté más familiarizado. Si no tiene compromisos de tiempo, amplíe sus límites y aprenda una nueva plataforma.

ASP.NET MVC es una gran extensión para las características estándar de .net. Sin embargo, prefiero el rubí sobre rieles sobre los demás. Aunque todos son bastante similares, también hay diferencias. Ruby on Rails es una plataforma muy madura que otras. Las ventajas subjetivas incluyen:

  • Fácil configuración del servidor donde se puede reconfigurar y construir en 30 minutos.
  • Con más de 1000 bibliotecas, Ruby on rails mejora la velocidad de desarrollo. Estos son fáciles de instalar y actualizar también.
  • Se puede usar en varias plataformas, incluidas Mac, Windows, etc.
  • La fácil integración con Sphinx es una ventaja.
  • Puede tener diferentes entornos para desarrollo, prueba, puesta en escena y producción. Se pueden agregar más ambientes.
  • El enrutamiento es más potente, RESTful incorporado, trivial de usar.
  • No es necesario compilar mientras se implementa en el servidor.

Estos son algunos de los beneficios. Encontrarás muchos recursos para saber más sobre Ruby on Rails. De hecho, es una de las próximas plataformas para el desarrollo de aplicaciones que seguramente penetrará mejor en el mercado que otras.

Encuentre algunos de los recursos aquí:

Grails vs Ruby on Rails vs Play Framework

¿Es Ruby on Rails o Java para ti?

Primero aclaremos la pregunta. Ruby on Rails es un marco de aplicación web, y se llama un marco moderno con diseño web / MVC y está construido sobre el lenguaje de programación Ruby. A continuación, ASP NET es un marco de aplicación web y una de sus características (ASP NET MVC) es un marco moderno con diseño web / MVC. Ahora ASP NET está escrito principalmente con el lenguaje de programación C # (C Sharp) que podría compararse con Ruby por sí solo. En esa pelea, mi dinero estaría en C # porque caí, es más fácil de aprender para los desarrolladores web que solo pueden tener habilidades de JavaScript y HTML / CSS porque, en mi opinión, es una transición fácil si conoces algo de JavaScript (ESTA ES MI OPINIÓN) . Pero realmente no se pueden comparar los idiomas, las tecnologías y los patrones en esta pregunta. Creo que lo que intenta preguntar es si Ruby on Rails es mejor que ASP NET MVC. Diría que si tiene alguna experiencia con C # o trabaja principalmente en una PC, ASP NET MVC es probablemente su mejor opción. Si tienes alguna experiencia con Ruby o trabajas principalmente en una Mac, te sugiero ir a la ruta de Ruby on Rails. La razón por la que tomo estas decisiones por usted es por la forma en que hizo la pregunta, por lo que asumo que es un desarrollador web novato. En ese caso, elija lo que sea más fácil de usar en su plataforma (SO) de elección. Si usa Linux (lo cual dudo). Yo también iría a Ruby on Rails. Sin embargo, para ser claros, ni ASP NET MVC ni Ruby on Rails son verdaderos patrones MVC. Simplemente tienen ganas y se benefician de llamarse así.

Éramos una pequeña tienda de Microsoft con 15 años de legado de Microsoft. Una gran cantidad de VB, C # y ASP clásico. Omitimos los formularios web .net porque, en mi humilde opinión, no era adecuado para la web [móvil], y saltamos a ASP.Net MVC.

Me encantó asp.netMVC durante un par de años hasta que comenzamos con Rails y descubrimos lo que nos faltaba. Hemos estado usando ambos durante 6 años. Ahora lamento nuestra desgracia asp.net mvc la mayoría de los días. Estoy evitando el estudio visual mientras escribo esto.

Una parte de mí ama las vistas y acciones fuertemente tipadas con params. Pero cada vez que hago una jerarquía de clases solo para un modelo de vista, añoro el hash de Ruby. Me encanta el compilador e IDE linting hasta que tengo que detener mi aplicación para editar. Estas cosas me recuerdan cuán inadecuado para el propósito es asp.netMVC para el desarrollo web ágil. Probablemente estoy siendo un poco duro.

Construir con asp.netMVC es como construir con Duplo / Lego. Construir con Ruby on Rails es como construir con plastilina. Es muy flexible. Y al ser disciplinado con las pruebas, Rails se siente como tallar aluminio con una fresadora CNC de 5 ejes.

Pero en estos días solo estoy reuniendo las brillantes contribuciones de código abierto de otras personas. La comunidad ruby ​​/ rails es interminable.

Y luego quieres hacer una aplicación de una sola página …

La pregunta tal como está redactada actualmente es difícil de responder, no solo desde el punto de vista de “manzanas contra naranjas”, sino particularmente porque MVC no es ni un programa ni un lenguaje, sino un patrón arquitectónico que a menudo se usa en la base de marcos sobre otros lenguajes. Los marcos MVC de PHP incluyen (pero no se limitan a) CodeIgniter, Kohana, Laravel, etc. La entidad es uno de los muchos frameworks ASP.NET MVC. Ruby on Rails es en sí mismo un marco MVC construido sobre el lenguaje Ruby.

Depende de muchos factores, ninguno de los cuales ha especificado.

¿Es este un proyecto personal? ¿Has buscado alojamiento? ¿Cuáles son tus habilidades actuales? ¿Cuál es el problema que está tratando de resolver (las tecnologías son más adecuadas para diferentes clases de problemas)? ¿Tiene la intención de vender / implementar esta aplicación para clientes empresariales (es posible que tenga que seguir sus reglas en ese caso)?

Si responde algunas de estas preguntas, puede obtener una respuesta que no esté enraizada en el fanboyismo de la tecnología.

El principal beneficio de ASP.NET MVC fue que trajo el paradigma MVC a .NET. Entonces, además de la respuesta de Corey (personas), también debo decir que es una cuestión de bibliotecas. ASP.NET MVC le permite utilizar tecnologías .NET existentes con una aplicación web MVC, y de manera similar para gemas Ruby con Rails. Por supuesto, elegir la biblioteca correcta es súper crucial para reducir el tiempo de construcción. Ambas plataformas tienen muchas bibliotecas, pero .NET está más orientado a cosas empresariales, y Ruby no … no.

No tiene mucho sentido entrar en una discusión técnica, ya que hay formas de hacer que ambos funcionen bien.

Desde una perspectiva de reclutamiento, puedo decir que si está tratando de construir una empresa moderna de tipo startup, encontrar desarrolladores de Rails será más fácil que los de ASP.net. Si está construyendo para la empresa o los mercados financieros, viceversa.

Soy un evangelista de Ruby on Rails y mi respuesta es: use las herramientas con las que usted o su equipo se sientan más cómodos. Ambos tienen ventajas y desventajas que ampliarían un libro completo si tuviera que explicar cada uno. La conclusión es: no se preocupe, tampoco es una respuesta incorrecta.

Todo termina en qué tecnología crees que podría hacer el trabajo de manera efectiva y eficiente, teniendo en cuenta tus habilidades actuales. Si tuviera alguna experiencia con Windows, por ejemplo, ASP, VB6, IIS, etc.… entonces no sería una gran curva de aprendizaje. Si te gusta el código abierto y te sientes cómodo con Linux, Apache, etc.… entonces ROR es para ti.

Esta es más una pregunta de manzanas y naranjas. Ambos tienen sus propios usos y atienden a diferentes mercados. Ni siquiera puedo decir si esta es una pregunta seria ya que nunca obtendrás la respuesta correcta.

More Interesting

¿Cuáles son las mejores empresas que brindan servicios de desarrollo web?

¿Cómo podríamos crear un sistema de menú personalizado para WordPress?

Habiendo entendido HTML, CSS y JS (algunos JQuerry incluidos), ¿dónde debería comenzar en el back-end para crear sitios web dinámicos (tengo algo de experiencia de nivel medio con Python)? ¿Qué debo comenzar a aprender?

Cómo obtener proyectos de sitios web

¿Cuáles son los diversos concursos y hackathons que Microsoft y otros gigantes del software organizan para la comunidad universitaria en India?

¿Ideas sobre cómo asegurar buenos clientes para el desarrollo web? O bien, ¿cómo convertir mis habilidades en un salario digno?

¿Qué instituto es mejor para el aprendizaje de JavaScript?

¿Cómo puede una empresa de diseño web ofrecer la mejor calidad?

¿Por qué debería usar un portal de clientes de SuiteCRM WordPress para administrar los datos del usuario?

¿Qué habilidades se necesitan para conseguir un trabajo de desarrollador de Ruby on Rails en 2017?

¿Cuál fue la pila de software menos irritante con la que has trabajado en tu vida de programación?

¿Cuál es la plataforma correcta (WordPress, Joomla o Drupal) para desarrollar el portal web?

¿Cómo modelaría compradores y vendedores en una aplicación de comercio electrónico Ruby on Rails?

¿Cuál es el tipo de programación más demandado?

¿Cuál es el mejor formato de imagen para usar en una página web para obtener la máxima calidad y la mínima velocidad?