visual tutorial studio que net mvc microsoft framework asp arquitectura c# asp.net-mvc castle-monorail

c# - studio - tutorial asp net mvc



Asp.Net MVC vs Castle MonoRail (4)

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 no está realmente en ASP .NET MVC pero 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 más información sobre chispa: http://dev.dejardin.org/documentation/syntax

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

Tengo algunas experiencias en la aplicación de compilación con Asp.Net, pero ahora los marcos 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.

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

Hablando como defensor de Monorrail, tengo que decir que probablemente deberías utilizar 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 de ventajas y desventajas técnicas:

  • ASP.NET AJAX es un desastre (evítelo), pero ahora tienen 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.
  • Hay algunas mejoras estéticas (por ejemplo, la forma 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 muy similar a Brail, solo usando C # en lugar de Boo.

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

Además, de muchas maneras, 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.

Sin embargo, en general, creo que ASP.NET MVC es un ganador.


Además de la popularidad percibida y el apoyo de Microsoft, ASP.NET MVC aún carece de algunas funciones básicas que Monorail ha tenido durante mucho tiempo como organización controladora (Areas), ViewComponents y filtros nativos que pueden usar IoC para nombrar los más importantes.

Tengo algunas aplicaciones grandes que usan todas estas características y me ha costado mucho 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 trato de hacer, resulta que no está allí y tengo que tapar un poco una pieza de MvcContrib, otra pieza de SharpArchitecture, contruyala yo mismo, ya sacas una foto. 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 contra otras y se volverán más convencionales. 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.


  1. Creo que MVC gana sin problemas. 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 usado casi todos los ViewEngines comunes, pero terminé de rodar el mío ( creé un Proyecto OpenSource para él) 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é una introducción rápida y una guía de referencia si eliges patear las ruedas 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.