2009-06-02 22 views
10

Estamos planeando utilizar ASP.NET MVC en un proyecto relativamente importante (para la empresa). El equipo de desarrollo consta de 4 desarrolladores y un líder técnico. 2 de los desarrolladores y Tech Lead han trabajado juntos anteriormente en el proyecto ASP.NET WebForms y confían en usar esa tecnología.Principales riesgos al utilizar ASP.NET MVC por primera vez

Nos avergonzamos un poco cuando miramos algunos de los enfoques utilizados en algunos de nuestros primeros proyectos de WebForms (ejemplos incluyen el uso excesivo de UpdatePanels, falta de conocimiento de controles como ListView, ViewState hinchado, etc.).

¡Es importante que no miremos hacia atrás en este proyecto en un año y nos estremezcamos con algunos de nuestros enfoques ASP.NET MVC!

Según la experiencia, ¿alguien tiene algún riesgo clave que pueda citar al usar ASP.NET MVC por primera vez?

Estoy pensando en gotchas, bombillas que tomaron un tiempo para continuar, partes del marco que sentiste que estabas peleando hasta que aprendiste un elemento específico, ese tipo de cosas.

+4

¿No es totalmente normal mirar hacia atrás en su código dentro de un año y sentir vergüenza de lo que escribió? ¿Particularmente un nuevo marco? A menos que sus superiores estén familiarizados con el patrón MVC, nadie estará allí para sostener su mano y ayudarlo a escribir un código impresionante la primera vez. –

+0

@Chad - ¡probablemente tengas razón, solo estoy tratando de minimizar el factor de vergüenza que podríamos enfrentar! –

Respuesta

2

Los mayores riesgos que he visto provienen del regreso a un medio sin estado.

La copia de seguridad se ha ido. La mayoría de los controles de servidor se han ido. Viewstate se ha ido. El modelo impulsado por el evento se ha ido.

Si sus desarrolladores SOLAMENTE han utilizado formularios web asp.net para crear sitios, y nunca otra tecnología web, les queda mucho aprendizaje.

+2

Estoy de acuerdo en que podría ser una gran cantidad de aprendizaje, pero es bueno aprender ;-) Desafortunadamente, muchos desarrolladores de formularios web saben muy poco sobre la web, en muchos casos menos que un desarrollador clásico típico de ASP, que al menos tenía que pensar abuot HTTP POST y GET aunque la mayoría del código terminó como espagueti. Creo que es saludable para los formularios web que los chicos aprendan sobre MVC, ya que significa que aprenderán lo que realmente sucede en una aplicación web. No estoy de acuerdo con que sea una vuelta a un medio sin estado. La web siempre ha sido un medio sin estado, es solo que las formas web ocultan el hecho de una manera bastante torpe. –

+0

Oh, totalmente. Es muy bueno aprender, y algo que es muy beneficioso para cualquier desarrollador, si nada más de lo que realmente les muestra cómo usar las tuercas y tornillos de HTTP. Cuando digo return, para mucha gente de formularios web, * es * stateful. Viewstate es torpe y feo para quienes lo conocen, pero para muchos desarrolladores de asp.net es la forma en que la web "funciona". –

0

Los más grandes para mí fueron la comprensión de la vinculación de modelos y que puede tener vistas escritas a máquina.

Asegurando adecuadamente sus rutas.

+0

¿Puede agregar más detalles? Encuadernación del modelo: ¿está hablando de vistas fuertemente tipadas? ¿Qué quieres decir con asegurar tus rutas? –

7

uso inflexible de tipos Vistas y crear un nuevo modelo para cada vista

sencilla razón: Esto es para asegurar que su modelo se separted desde su punto de vista. Si necesita refactorizar, solo rompe una parte. Entonces, si tiene una Vista llamada "Últimas noticias", debe tener un "LatestNewsViewModel". El trabajo del controlador consiste en obtener los datos del modelo/base de datos real y crear un modelo de vista que pasó a sus vistas. Además, si decide que necesita cosas adicionales en su vista, no tiene que refactorizar toda la capa de acceso a datos, ya que solo tiene que cambiar el modelo de vista y la acción del controlador que lo rellena.

Rendimiento

recomiendo echar un vistazo a this slideshow acerca de los problemas de rendimiento y optimizaciones que pueden tener un impacto enorme.

+1

Interesante presentación de diapositivas en el enlace, gracias :) –

+1

Tenía la impresión de que sus modelos no deberían "preocuparse" por las vistas en las que se usan (separación de preocupaciones). ¿Recomienda dos clases de modelos: aquellos que representan datos "justos" y aquellos específicamente diseñados para su uso en vistas? –

+0

Sí. Básicamente, tiene sus clases de modelo habituales para tratar la lectura y escritura de datos en la base de datos, pero también tiene clases de modelos separadas para cada vista, lo que se denomina Modelos de visualización. Esos modelos de vista en realidad no hacen nada, son solo un conjunto de propiedades y contienen exactamente los datos que la vista necesita. El Controlador luego habla con su modelo "normal" para obtener exactamente los datos necesarios, crea una Instancia del Modelo de Vista apropiado y lo rellena y luego lo envía a la Vista (fuertemente tipada). Parece excesivo al principio, pero ahorra dolores de cabeza de refactorización más adelante. –

2

Puede descargar gratis eBook de la captura del blog de Scotts Guthrie, que le brinda una guía completa y detallada sobre cómo crear un sitio ASP.NET MVC desde cero.

Cuestiones relacionadas