2008-11-14 26 views
27

Tengo algunas experiencias en la aplicación de compilación con Asp.Net, pero ahora los frameworks MVC se vuelven más populares. Me gustaría intentar crear una nueva aplicación web multilingüe usando Asp.Net MVC o Castle MonoRail, pero no sé cuál es bueno para mí. No me gusta el motor de vista de formulario web, pero me gusta la función de enrutamiento en Asp.Net MVC.Asp.Net MVC vs Castle MonoRail

  • ¿Alguien podría hablar de los pros y los contras entre ellos?
  • ¿Qué ViewEngine es el mejor también para anular la plantilla maestra?
+1

No hay "lo mejor", esta es una pregunta subjetiva y argumentativa, sugiero que reformules es "pros y contras de x vs y" y eliges cuál es el mejor para ti. –

Respuesta

27

Hablando como un defensor de monorrail, tengo que decir que probablemente debería ir por ASP.NET MVC. Para ser honesto, el simple hecho de que ASP.NET MVC se convierta en la arquitectura por defecto dentro de tres años probablemente debería cambiarlo. Esta ecuación fue diferente hace un año, simplemente porque la arquitectura por defecto tenía serios problemas de productividad en comparación con MonoRail.

Si quieres hablar ventajas y desventajas técnicas:

  • ASP.NET AJAX es un desastre (evitarlo), pero ahora tengo jQuery. De hecho, el soporte jQuery es mejor que cualquier otro entorno. Por supuesto, solo obtiene completamente eso con la integración IDE con el motor de vista estándar.
  • Existen algunas mejoras estéticas (por ejemplo, la manera en que se transmite la información del modelo es mucho más clara y más obvia que el monorraíl).

Además, no descarte el motor de vista estándar de la mano. No tiene que lanzar controles como lo hizo con ASP.NET, puede codificarlo de una manera bastante similar a Brail, solo usando C# en lugar de Boo.

Hay cosas que son simplemente fea * la cantidad de métodos que toman el objeto para un parámetro. Buena suerte para encontrar la documentación sobre lo que esperan exactamente. * La afición de Microsoft por las clases abstractas sobre las interfaces. Ellos tienen sus razones, pero todavía no me gusta.

Además, en muchos sentidos, MonoRail sigue siendo la plataforma más completa. No hay abstracción para validación o paginación en ASP.NET, por ejemplo. Además, no hay realmente ninguna ayuda para vincular a un modelo. Los ayudantes tienen muy poca funcionalidad en comparación con sus equivalentes Monorail.

En general, creo que ASP.NET MVC es un ganador.

+3

Al mirar esto tres años después, es sorprendente lo poco que ha cambiado. Monorail ha perdido a la mayoría de sus desarrolladores, pero ASP.NET MVC todavía no ha logrado la paridad de características. Razor es una mejora, pero ver la sintaxis del motor no es tan importante. –

+0

¿Qué piensas de MVC 5 y ASP.NET en general ahora que [Visual Studio 2013] (http://weblogs.asp.net/scottgu/archive/2013/10/17/announcing-the-release-of- visual-studio-2013-and-great-improvements-to-asp-net-and-entity-framework.aspx) tiene RTM'd? –

+0

Nunca respondí esto porque realmente no trabajo en ese lado de la cosa estos días. Sin embargo, mi impresión general es que Microsoft continúa saltando al tiburón con características que no necesita. Sin embargo, dado que MVC está construido a partir de cosas simples en la parte inferior (a diferencia de WebForms) siempre puedes ignorar el cruft. Esto suena negativo, pero la verdad es que es mucho mejor de lo que era cuando escribí esta respuesta.Async, WebSockets y Gulp Support son todas las cosas que hubiera matado por ese día. –

10

MonoRail y ASP.NET MVC son fundamentalmente muy similares, debe estar bien usando cualquiera de ellos. MonoRail ha existido mucho más tiempo y, por lo tanto, tiene características de mayor nivel.

La fuerza principal de ASP.NET MVC es su motor de enrutamiento, para ser justo MonoRail tiene un motor de enrutamiento equivalente, y con algunas modificaciones puede usar el motor de enrutamiento ASP.NET MVC con MonoRail ya que el motor de enrutamiento es no realmente en ASP.NET MVC, sino en System.Web.Routing (Lanzado en .NET 3.5 SP1). ASP.NET MVC e integración con Visual Studio también es una ventaja, y probablemente mejorará a medida que nos acerquemos a RTM de v1.

El proyecto MvcContrib contiene algunos motores de gran visión, como Spark, NHaml y Brail. Nadie puede ser considerado "Mejor". Un favorito personal es Spark. Para obtener más información sobre la chispa: http://dev.dejardin.org/documentation/syntax

El motor WebForms tiene intellisense, que es una gran ventaja que, en mi conocimiento, todos los motores de vista alternativos carecen.

+0

También hay un intellisense básico disponible para el motor de visualización NVelocity (a través del proyecto CVSI - http://www.jonorossi.com/projects/cvsi/) - es bastante rudimentario, pero en general eso es todo lo que necesita en sus puntos de vista . – Bittercoder

+2

Estamos buscando Spark para usar aquí en Stack Overflow: ¡parece un motor de gran visión, hasta ahora! –

1
  1. Creo que MVC gana indiscutiblemente. Su conjunto de características es muy similar, pero va a ser el más "popular" de los dos (y, por lo tanto, generalmente más ampliamente respaldado, documentado y extendido en toda la comunidad de desarrollo). Además, las nuevas mejoras de ViewEngine (Razor) .. e IDE me influyen y, en mi opinión, aumentan el valor de elegir MVC en vez de monorraíl.

  2. He utilizado prácticamente todos los ViewEngines comunes, pero terminé rodando el mío (created an OpenSource Project) utilizando el impresionante motor de plantillas StringTemplate. ST es una verdadera separación de preocupaciones, OMI. Me encuentro escribiendo mejores aplicaciones como resultado, con MUCHA menos sopa de etiqueta. También lancé un quick intro and reference guide si eliges patear los neumáticos del motor. Tuve una suerte increíble en los proyectos que implementé hasta el momento al usarlo. Dicho esto, Razor (MVC 3) se ve bastante impresionante.

+1

Jamison, ¿podría ampliar en el número 1? Creo que el final de su respuesta se está desviando de la pregunta inicial (sin ofender, me alegra ver una plantilla de cadena viewengine para asp.net msmvc) – smoothdeveloper

+0

-1 por falta de justificación –

+0

-1 suena como un anuncio. –

7

Aparte de popularidad percibida y el apoyo de Microsoft, ASP.NET MVC todavía carece de algunas características básicas que monorraíl ha tenido durante mucho tiempo como entidad controladora (zonas), ViewComponents nativos y filtros que pueden utilizar COI a nombre los más importantes.

Tengo algunas aplicaciones grandes que usan todas estas características y he tenido dificultades para portarlas a ASP.NET MVC.

He trabajado con Monorail desde hace algunos años y aunque MVC parece prometedor y su flexibilidad es increíble, todavía me resulta incómodo que por cada otra cosa que intento hacer, resulta que no está allí y tengo que conecte una pequeña pieza de MvcContrib, otra pieza de SharpArchitecture, contruya yo mismo, ya puede ver la imagen. El monorraíl es mucho más fácil de trabajar (en este momento, eso es).

Espero que las cosas mejoren en los próximos meses ya que algunas de las soluciones propuestas comenzarán a aumentar frente a otras y se volverán más comunes. Oye, la diversidad de opciones es buena, pero créanme, no querrán estar en Java-land hace 3 años, donde había tantos frameworks web que podían construir su sitio usando una para cada página diferente.

Mientras tanto, seguiré migrando lentamente mis aplicaciones MR a MVC, por las dudas.