2009-08-04 34 views
7

Soy un gran admirador de lo que ASP.NET MVC está haciendo, en muchos niveles.¿Para qué sirve ASP.NET MVC?

Estoy a punto de participar en re-construcción de un sitio web muy alto tráfico, y no soy el que sería el mejor marco (en su caso).

El sitio necesitará la siguiente:

  • Para soporta Javascript-pesada, páginas altamente interactivos
  • Pero al mismo tiempo, proporcionar semántica HTML subyacente para los motores de búsqueda
  • Soporte de múltiples idiomas
  • Sea skinnable
  • Exponga una API de servicio web RESTful para los socios

Por lo que puedo decir, no hay ninguna razón para no usar ASP.NET MVC para esto.

  • Puedo presentar HTML semántico y capa arriba con jQuery.
  • Se pueden atender múltiples idiomas para usar los archivos de recursos (igual que en la actualidad).
  • El despellejado se puede hacer con CSS (no implicará cambios en el marcado).
  • Puedo centralizar la lógica comercial para que los Controladores y el servicio web WCF utilicen el mismo código.

¿Pero hay posibles inconvenientes para usar MVC que no he considerado?

no quiero ser el tipo que recoge una tecnología porque es fresco, pero se encuentra más adelante en la pista que no es muy adecuado para el trabajo.

Respuesta

11

ASP.NET MVC no es bueno cuando todo lo que estás haciendo está haciendo un sitio web que necesita el código del lado del servidor (pero que también es cierto acerca de ASP.NET también).

En su caso creo MVC sería un gran camino por recorrer. MVC ha demostrado su valía en sitios web de alto tráfico (por ejemplo, este). Sin embargo, debe recordar que MVC es nuevo y cambiante. Es posible que no exista una biblioteca para realizar una tarea específica, lo que significa que tendrá que escribir ese código usted mismo.

Buena suerte en su reconstrucción!

+0

más uno para éste! :); –

6

ya está bueno para ir con MVC teniendo en cuenta lo que ha dicho acerca de su proyecto.

Por lo que a mí respecta, ASP.NET MVC realmente NO es bueno para situaciones donde tienes una gran base de código en WebForms (lo que significa que tienes muchos controles de usuario ASP.NET, controles personalizados, etc.). Tampoco es bueno si vas a tener personas trabajando en ello que no saben de qué se trata. Aparte de eso, es una tecnología bastante agradable.

0

no me gusta ASP.NET MVC debido a las razones siguientes:

1. API de enrutamiento feo, no es http://ayende.com/Blog/archive/2008/11/05/a-case-study-of-bad-api-design-asp.net-mvc-routing.aspx descripción de lo que está mal. Por cierto, urls amigables se pueden implementar fácilmente sin MVC http://demo.liveui.net/bugtracker/Tasks/7

2. modelo de objetos pobre. Está demostrado que un buen software debe consistir en componentes reutilizables. No hay nada que se pueda reutilizar en el sitio web basado en ASP.NET MVC. Por ejemplo, si implementó la lista desplegable inteligente una vez será difícil volver a utilizarla (incluso en el mismo sitio web).

3. Falta de controles. Algunas funciones (como TreeView o Menú) ya están implementadas como Controles y sería una pérdida de tiempo volver a implementarlas usando mvc.

Si yo fuera usted, trataría de encontrar algunos CMS y personalizarlos para las necesidades de WebSite.

A respuestas: SÍ. Sé sobre las desventajas de los controles ASP.NET, pero la pregunta es sobre ASP.NET MVC. Uno puede escribir un libro sobre lo que es bueno y lo que está mal en ASP.NET, pero no creo que sea apropiado discutirlo aquí.

+2

Descartaría esto si fuera wiki de la comunidad como esta pregunta y sus respuestas deberían serlo. En realidad no abordaron sus puntos. Los controles tienden a tener un marcado incorrecto. Puede hacer fácilmente componentes reutilizables (intente con Spark en lugar de motor de vista de Webforms). Puede tener un punto en la API de enrutamiento. Puede ser feo, pero funciona bastante bien. –

+1

Estoy de acuerdo con su punto de que el motor de enrutamiento podría mejorarse. Acerca de la reutilización, es cierto que no puede usar controles clásicos de ASP.NET, sin embargo * puede * utilizar componentes jQuery/javascript mucho más fácilmente en ASP.NET MVC, manteniendo al mismo tiempo un marcado semántico limpio. – Jonathan

+3

No veo razones por las cuales los controles deberían tener un marcado incorrecto. Incluso la sintaxis similar a MVC se puede usar en cualquier control ASCX. Acerca del modelo de objetos pobres. Se ha demostrado que es útil tener un modelo de objetos que se puede modificar o personalizar después de la creación. Por ejemplo, tener un modelo de objetos basado en el control I puede modificar las propiedades de los controles, escuchar eventos, etc. Mientras que con la ideología MVC es difícil cambiar algo una vez que se creó la vista. –

3

Mis dos centavos:

ASP.NET MVC es una gran opción, pero hay una pequeña curva de aprendizaje, por lo que asegúrese de que su plan de proyecto/línea de tiempo ha manejado esto. Puede haber desarrolladores en su equipo que no se sientan cómodos trabajando con ASP.NET MVC, y esto puede causar posibles retrasos (¡muchos desarrolladores todavía trabajan en ASP.NET 1.1!).

@Alex: La falta de controles. Algunas funciones (como TreeView o Menú) ya están implementadas como Controles y sería una pérdida de tiempo volver a implementarlas usando mvc.

IMO la idea de usar controles en ASP.NET MVC no tiene mucho sentido. Puede crear un control TreeView usando jQuery fácilmente. Los controles clásicos del servidor ASP.NET llevaban mucho equipaje (viewstate, etc.) y, por lo tanto, ASP.NET MVC no usaba ninguno de esos controles (aunque puede usar helpers).

Finalmente, ASP.NET MVC es una alternativa, no un reemplazo de los formularios web. No usaría ASP.NET MVC ya que todavía está evolucionando, y mi equipo no está muy cómodo con él, pero creo que cada vez más y más programadores cambiarán a esta (mejor) opción.

0

Hay mejores formas de implementar MVC sin utilizar asp.net MVC. Lo he hecho en el pasado, incluso antes de que asp.net MVC apareciera en vivo. MVC es un patrón, no una tecnología, no entiendo por qué algunas personas lo llaman Tecnología. Puede separar todas las preocupaciones eliminando el código subyacente de los formularios web y crear sus propios controladores y enrutadores, y seguirá teniendo la ventaja de los controles de formularios web, etc., a los que la mayoría de los desarrolladores de asp.net están acostumbrados. asp.net mvc es bueno para las personas que realmente no tienen tiempo para crear correctamente una aplicación MVC en un entorno de formularios web y para aquellos que no tienen tiempo para diseñar una mejor solución. en concusión, asp.net mvc es bueno, pero hay una manera mucho mejor de hacerlo y, finalmente, MVC NO es una tecnología.