2011-04-14 13 views
8

Me he desarrollado principalmente en el mundo .NET, pero tengo un proyecto por delante que necesita realmente favorecer a la interfaz. Un montón de UI amor.ASP MVC3 vs Ruby on Rails

¿Tiene algún valor usar Ruby On Rails en lugar de MVC3? ¿Cómo debo elegir entre los dos? ¿Hay otras opciones que vale la pena mirar?

Sé que Ruby On Rails es bastante popular, pero ¿cómo se diferencia de MVC3?

+4

También me gustaría ver las comparaciones, pero estas preguntas siempre se eliminan en SO. – Dty

+0

@Dty Reformulado con fraseo similar a preguntas como esta que tienen votos bastante decentes. Espero que sea reabierto y respondido. – Adam

+0

@Dty, ese tipo de preguntas tienen más posibilidades de no cerrarse en http://programmers.stackexchange.com/ @Adam, no mantendría muchas esperanzas en que esta cuestión se vuelva a abrir en StackOverflow. –

Respuesta

11

¿Hay algún valor en el uso de raíles en lugar de mvc3?

YES. Si no, le dará una perspectiva diferente y ampliará la forma en que piensa sobre los problemas de programación. Hay algo acerca de la concisión del rubí, la utilidad de los bloques y el comportamiento dinámico del lenguaje que le permite realmente pensar de manera diferente.

¿Cómo elegir entre los dos?

Si el proyecto es corto, quédese con lo que sabe. Pero si va a terminar siendo un proyecto más largo, valdría la pena el esfuerzo de comenzar a profundizar en la curva de aprendizaje de los rieles. La mayoría de la gente te dirá que los rieles son más rápidos de desarrollar que .net mvc. Si el proyecto es lo suficientemente largo, puede terminar siendo capaz de desarrollarse más rápido sobre rieles una vez que se sienta cómodo con él.

Dicho esto, ¡la curva de aprendizaje para un programador de Microsoft puede ser INCREÍBLE! Si eres un chico de Unix, entonces no será tan malo, pero si no, prepárate para aprender MUCHOS temas diferentes. La línea de comandos y su shell, TDD, homebrew o macports, git en lugar de subversion, gems, bundler, rvm, rspec o algún otro marco de prueba, etc.

Además, si no posee un mac o aren ' En cierto sabor de * nix, es posible que desee seguir con .net. Por lo que escuché, es una experiencia dolorosa el desarrollo de rieles en las ventanas.

Si TDD es importante para usted, entonces los rieles son el camino a seguir. También el despliegue es mucho más fácil en los rieles.

El ecosistema es algo que podría ser un factor si desea utilizar herramientas creadas por otros. Rails tiene una gran base de desarrolladores de código abierto que contribuyen mucho a la comunidad. Si desea comparar, eche un vistazo a github.com (para rails) y codeplex (para microsoft). Sin embargo, con el sistema NuGet de Microsoft, tal vez el lado de Microsoft comenzará a crear un mejor ecosistema. Pero en este momento ni siquiera está cerca.

¿Otras opciones que vale la pena mirar?

Si necesita desarrollar un sitio web bastante dinámico, respaldado por una base de datos, los rieles o .net mvc son buenas opciones. Si es algo mucho más simple/más pequeño, algunos marcos más simples/más pequeños son sinatra (para ruby) o webmatrix para .net. Podrás ponerte al día mucho más rápido con estos marcos.

¿En qué se diferencian los dos marcos?

La mayor diferencia que noto son las langues subyacentes, ruby ​​for rails y C# para .net mvc. Ruby es dinámico, mientras que C# es estático. Rails no se compila mientras .net mvc es. Obtendrás un rendimiento más crudo de .net mvc.

Rails está realmente construido con TDD y BDD en mente. La última vez que utilicé .net mvc 1.0 fue realmente difícil hacer TDD.

Al desarrollar, casi todo el mundo en .net mvc usará Visual Studio pero diría que la mayoría de los desarrolladores de rieles no usan un IDE. Simplemente usan un editor de texto simple (textmate, vim, emacs) y depuran usando la consola.

EDIT: * consejos de bonificación *

Si desea empezar a trabajar con los carriles (que recomiendo encarecidamente) la forma más fácil y más completa es ir a través de la rails tutorial por Michael Hartl. En ella usted aprenderá acerca de rubí/rieles junto con el GIT siguiente

  • - Control de fuentes
  • RVM - para el funcionamiento de las diferentes versiones de rubí en el mismo equipo
  • rspec - para TDD
  • heroku - alojamiento web gratuito con implementación SIMPLE

Una vez que tenga una buena comprensión de los rieles, querrá mejorar sus habilidades con el rubí para convertirse realmente en un buen desarrollador de rieles.

+0

Gracias, esto es bastante completo y más o menos lo que estaba buscando. Sin embargo, tengo un seguimiento de su "cómo elegir entre los dos". Mencionas que es más difícil para usuarios que no son nix, ¿es esto relativo a la sintaxis de Ruby o su tiempo de ejecución o solo "diferencias" del cambio de Windows/.NET? – Adam

+0

No se trata de la sintaxis de Ruby en absoluto. Es la diferencia entre el entorno de Windows y el entorno * nix (mac osx es un sabor de freeBSD). Windows y .net abstraen una tonelada de cosas. Cuando comienzas a trabajar con rieles, también comienzas a vivir en la línea de comando. Fue realmente difícil para mí comenzar, pero se siente "bien". Entiendo lo que está pasando mucho más ahora bajo el capó. – Dty

+0

"Obtendrás un rendimiento más crudo de .net mvc". Aunque técnicamente cierto, esto es algo engañoso: el rendimiento de la CPU casi nunca es un cuello de botella en ningún sistema no trivial. –

0

Ruby y RubyOnRails suena como si cupiera la factura.

Y si realmente deseaba, podría usar IronRuby para .NET bondad.

En cuanto a la justificación, muchos sitios exitosos se han escrito con el marco. Tiene un historial probado sobre MVC3.

+0

Disculpas, edité la pregunta para tratar de solicitar más de lo que estaba buscando en las respuestas. – Adam