2008-11-30 12 views
17

Así que estoy a punto de comenzar de un pequeño proyecto para mi club deportivo para las inscripciones miembros y estoy tratando de decidir entre WebForms o MVC.Cómo decidir qué es correcto, WebForms o MVC ASP.NET cuando se hace

Allit será un inicio de sesión de usuario y formularios de captura de datos (o recuperación de datos), así que estaba pensando WebForms con FBA inicialmente pero he querido jugar con MVC por un tiempo y estaba pensando que no sería una mala elección.

Pero en realidad no tienen mucho conocimiento de MVC no sé si sería un ajuste incorrecto.

Entonces, ¿cuál es una buena forma de decidir si WebForms o MVC es la opción correcta?

+0

posible duplicado de [Formas Web ASP .NET tradicionales frente a MVC] (http://stackoverflow.com/questions/41712/traditional-asp-net-web-forms-vs-mvc) – nawfal

Respuesta

12

¿Es esta una aplicación crítica de nivel de producción o una pequeña aplicación única? ¿Puedes lidiar con el tiempo extra que tomará la curva de aprendizaje de MVC o necesitas hacerlo de inmediato? ¿Puede darse el lujo de desechar todo y comenzar de nuevo si MVC no funciona? ¿Estás dispuesto a cambiar la plataforma (probablemente no mucho ahora que está en beta) mientras desarrollas? ¿Hay otro proyecto que sea menos crítico que podría usar MVC para aprenderlo?

Dependiendo de cómo conteste estas preguntas, aprender MVC en este proyecto podría valer la pena. Personalmente, creo que es una mejor arquitectura, pero una tecnología menos madura en este momento. Ciertamente ha aumentado la capacidad de prueba de mi código web. Espero mover todo mi desarrollo en esta dirección durante el próximo año más o menos, aunque dudo si cambiaré de marcha en alguno de los proyectos que he tenido en desarrollo por un tiempo. Acabo de comenzar mi primer proyecto nuevo en MVC. No estaba dispuesto a comprometerme hasta que entró en beta y creo que estará en producción antes de que termine el proyecto.

+0

Es solo la migración de un sistema de papel a un e-system. Así que tengo todo el tiempo que quiero y es solo para un pequeño club deportivo. –

1

IMO, MVC es la manera de avanzar. Si tiene tiempo para aprender la forma de programación de MVC (porque insinuó que quería jugar con MVC ... es decir, aún no lo ha usado), esta sería una excelente oportunidad para profundizar en el producto.

La curva de aprendizaje no es muy alta si tiene experiencia previa de formularios Web (que supongo que lo hace).

Si tiene que hacer un sitio muy rápido, no se preocupan por lo que es y el sitio será pequeño, y luego ir WebForms. Es la solución rápida y desagradable (solo para mi opinión). Los WebForms funcionan 100% perfectamente bien. Todos mis sitios han sido WebForms y están bien.

Resumen:

  • Tendrán tiempo y quieren aprender la mejor manera de hacer que los sitios: MVC
  • No hay tiempo o no les importa: Web Forms.

gl y HTH.

0

Sobre la base de sus comentarios a tvanfosson, suena como MVC sería una buena opción para usted como usted menciona a su deseo de aprender como una razón para elegir esa tecnología. Dudo que MVC cambie drásticamente desde su versión beta. Entonces, esta podría ser una buena oportunidad para aprender una nueva herramienta. En cuanto a que los WebForms son las soluciones "rápidas y desagradables", me preocupa que sea propaganda de MVC.

+0

Dado que MS ha otorgado explícitamente permiso para usar MVC beta para aplicaciones de producción, es una apuesta segura que no cambiará hasta el punto donde las aplicaciones se romperán cuando lanzan v1.0. – Chris

1

Nos dieron la misma oportunidad.Después de jugar un poco con MVC durante unas semanas, descubrimos que había cosas que no comprendemos del todo, así como, las cosas que iban a implicar algunos cambios:

  • Implementar un diseño Repositorio patrón
  • HTML Ayudantes vs controles de formulario web estándar, como repetidores y GridView
  • almacenamiento en caché
  • si desea utilizar el marco que utilizamos actualmente, CSLA, o tratar de pasar a solo LINQ a SQL con las clases parciales para mantener la lógica de negocio
  • Clases complejas a nd interfaces de usuario que incluyeron las clases de detalles maestros

Decidimos seguir jugando con él y esperar hasta que se publique oficialmente y luego escribir una aplicación interna y ver a dónde nos lleva.

5

Realmente me gusta la metodología WebControls. Mucha gente dice que "al hacer MVC es más fácil realizar una prueba unitaria". En primer lugar, debe saber qué tipo de metodología está utilizando tiene una separación clara de Business Logic y su capa de interfaz de usuario. Si lo hace, puede probar la unidad de su lógica de negocios independientemente de la metodología que esté utilizando. Claro que podría ser más fácil y "salir de la caja" con MVC, pero no es una bala mágica de plata que es la única carretera que conduce a Roma ...

En segundo lugar, puedes usar WatiN que hace que tu aplicación comprobable de maneras que son muy superiores a las pruebas unitarias convencionales. (Nota no me refiero a que debe sustituir a las pruebas unitarias, pero además de pruebas unitarias que le lleva a un nivel de seguridad que antes era imposible de ganar)

En tercer lugar, la web no tiene estado. Esto se debe a que HTTP es un protocolo completamente sin estado. Esto es exactamente lo que hace que la web sea hermosa, pero al mismo tiempo es muy difícil desarrollar aplicaciones para. La metodología de WebControls principalmente corrige esto completamente al tener conceptos tales como ViewState. Esto le quita un lote de la molestia al hacer el desarrollo de la aplicación. Echar un vistazo a este Ajax Calendar sample que es sobre todo imposible de lograr con la misma cantidad (pequeña) de código en cualquier otro paradigma continuación WebControls (descargo de responsabilidad; yo trabajo con Ra-Ajax yo)

Ahora echar un vistazo a Stacked (Descargo de responsabilidad; ... que también trabajo con BTW), luego me doy cuenta de que hasta ahora he pasado menos de 3 días desarrollando lo que está viendo allí. Tal vez alguien podría alcanzar ese logro con MVC, pero lo dudo ...

Creo que el paradigma WebControl es muy bonito. Claro que tiene carencias en algunos puntos, pero adivina qué, también lo hace todo. El único "Silver Bullet" que existe en la programación como una forma de arte es que no existe ningún Silver Bullet.

Cuando lo que se dice, sé que está utilizando Grurrah capa MVC del Proyecto Castillo en además de una biblioteca Ajax basado WebControl. Así que para mezclar WebControls y MVC puede ser difícil, pero seguramente no imposible ...

Creo MVC ha recibido una gran cantidad de "merecido" bombo, pero por desgracia también en el proceso de una gran cantidad de inmerecida bombo demasiado ...!:(

Inventa tu propia mente, no escuches a los evangelistas de MVC que intentan convencerte de que han encontrado el "Silver Bullet" para la programación de la web. Y wat más, tampoco me lo creen! yo también tengo una agenda (conseguir la adopción de Ra-Ajax)

Conforman su propia mente. Preguntar a alguien si usted debe hacer MVC es como preguntar qué he de comer manzanas o naranjas ... La única respuesta Bueno SIEMPRE obtendrá es; "Depende" ...

+0

Soy muy hábil con WebForms, así que no es nada personal en contra de ellos, estaba más preguntando si lo que quiero lograr es algo alcanzable en MVC. –

+0

@Slace, MVC puede usar WebForms como vista. Es una arquitectura (y patrón) más que una tecnología. –

+0

Estoy de acuerdo y +1 por mencionar WaitN, proyecto ordenado! – BobbyShaftoe

1

Webforms es una abstracción de la web para personas que provienen de un mundo de la interfaz gráfica de usuario. Encuentro que tiene muchas ventajas, es especialmente en el sentido RAD, pero cuando escribes grandes aplicaciones a menudo terminas pintándote en una esquina es muy difícil salir de él (es decir: todo lo que tiene que ver con viewstate)

El otro problema es que tipo de caer en malas prácticas con formularios web. No debería utilizar las fuentes de datos de arrastrar y soltar, los controles integrados de la cuadrícula y, definitivamente, no tener lógica comercial en el código subyacente si desea algo que sea escalable y mantenible con una arquitectura limpia. Hacer eso en webforms requiere previsión y disciplina, porque todo te dirige en esas direcciones.

Por el contrario, con MVC caes en las mejores prácticas. Es más eficiente (todo el ciclo de vida de la página/estado viewstate mastica el rendimiento tanto en el cliente como en el servidor) y mucho más limpio desde el punto de vista de la arquitectura.

El inconveniente es que puede decir adiós a RAD, y realmente necesitará tener un conocimiento decente de css/javascript para hacer páginas de buen aspecto.

Realmente se trata de la mejor herramienta para el trabajo, y el tipo de experiencia/conocimiento que usted/su equipo tiene.

Cuestiones relacionadas