2009-10-12 39 views
8

¿Por qué consideraría usar ASP.Net MVC o ASP.Net estándar con formularios y controles para un proyecto web? Aparte de las preferencias personales, ¿cuáles serían las razones? ¿Qué tipo de proyectos considera más adecuados para MVC y qué proyectos para ASP.Net normal?ASP.Net MVC vs ASP.Net Formularios

¿Consideraría transferir sus proyectos actuales a uno u otro?

Respuesta

8

WebForms es una abstracción que oculta la mecánica de la web del desarrollador. Permite a los desarrolladores de escritorio transferir sus habilidades a la web con relativa facilidad. Si bien logra esto en parte, en escenarios prácticos, generalmente no pasa mucho tiempo antes de que la abstracción se rompa y uno tenga que poner soluciones desordenadas. La prueba unitaria es difícil, porque la lógica para manejar las interacciones del usuario está estrechamente relacionada con la IU. El HTML producido por una aplicación típica de WebForms está lejos de ser óptimo. Es típicamente hinchado, difícil de leer y contiene una gran cantidad de contenido que está presente solo para permitir que la abstracción funcione, p. viewstate, que es una gran cantidad de información para ayudar a la abstracción a dar la ilusión de estado al desarrollador, a pesar de que la web es un medio sin estado.

MVC, sin embargo, abarca la mecánica de la web. Las operaciones fundamentales que tienen lugar en una solicitud y respuesta web se presentan al desarrollador como simples abstracciones. MVC tiene una clara separación de preocupaciones. El modelo simplemente representa los objetos o entidades comerciales con los que se relaciona el sistema, con métodos para recuperar y almacenar instancias de estos objetos. El controlador toma una solicitud web, realiza operaciones contra el modelo y luego pasa el modelo a la vista. La vista es puramente un renderizador, para presentar el modelo al usuario y exponer los elementos de la interfaz que permiten al usuario formular la próxima solicitud para pasar a un controlador. Esta separación de preocupaciones permite pruebas de unidades relativamente fáciles. El desarrollador tiene control total sobre el HTML producido y no hay necesidad de que estén presentes otros artefactos (por ejemplo, viewstate).

Prefiero MVC. En raras ocasiones, puede ser útil usar formularios web, p. un prototipo rápido o demo, pero por lo demás, siempre recomendaría el uso de MVC.

En cuanto a la transferencia de un proyecto de Webforms a MVC, esto es obviamente muy subjetivo y depende de la aplicación en sí, y de las limitaciones presupuestarias, pero en general creo que es un paso en la dirección correcta.

1

Usted puede encontrar muchas diferencias, ventajas sobre el ASP.Net MVC más de los normales ASP.Net

Aplicaciones. si no amablemente visita stack overlow page.

Biggest advantage to using ASP.Net MVC vs web forms

la razón para elegir el concepto MVC para su aplicación varían en muchas cosas

  1. Lo que para su aplicación para? cualquier tipo de foro, herramienta de informes o sitio web de la intranet

  2. Si desea seguir el diseño del diseño o no?

    En caso afirmativo, ¿entonces si va a ser MVC o cualquier otro?

  3. Si necesita modularidad para futuras mejoras?

  4. Ya sea que necesite un control total de su código?

  5. Mejor soporte en la parte de prueba desde la perspectiva del desarrollador debe estar allí o no?

Si está seguro acerca de esas cosas, entonces puede pasar a la Solicitud ur MVC modelo de marco.

De otra manera es mejor continuar con ASP.Net Web.apps, ya que incluye todas las últimas

presenta lo que las necesidades actuales de la industria.

+0

que no entiendo el punto 4, si necesita un control total sobre su código? Nunca noté una falta de control con el código asp.net. –

+0

control - architecturing de su código por su cuenta. no habrá ningún bloque de código autogenerado, ya que está en las aplicaciones ASP.Net normales – solairaja

13

ASP.NET Web Forms y MVC son dos frameworks web desarrollados por Microsoft, ambos son buenas opciones. Ninguno de los marcos web debe ser reemplazado por el otro ni existen planes para que se "fusionen" en un solo marco. El soporte y el desarrollo continuos son hechos en paralelo por Microsoft y ninguno de ellos 'se va'.

Cada uno de estos marcos web ofrece ventajas/desventajas, algunas de las cuales deben tenerse en cuenta al desarrollar una aplicación web. Una aplicación web puede desarrollarse utilizando cualquiera de las dos tecnologías: puede hacer que el desarrollo de una aplicación en particular sea más fácil seleccionando una tecnología frente a la otra y viceversa.

ASP.NET Web Forms:

  • Desarrollo soporta estado • da la ilusión de que una aplicación web es consciente de lo que el usuario ha estado haciendo, similar a las aplicaciones de Windows. Es decir. Hace que la funcionalidad 'asistente' sea un poco más fácil de implementar. Los formularios web hacen un gran trabajo al ocultar gran parte de esa complejidad al desarrollador.
  • desarrollo rápido de aplicaciones (RAD) • La capacidad de sólo 'salto en' y empezar a entregar los formularios web. Esto es disputado por parte de la comunidad de MVC, pero empujado por Microsoft. Al final, se reduce al nivel de experiencia del desarrollador y con lo que se sienten cómodos. El modelo de formularios web probablemente tiene menos de una curva de aprendizaje para desarrolladores menos experimentados.
  • grande caja de herramientas de control • ASP.NET Web Forms ofrece una caja de herramientas mucho mayor y más robusto (controles web), mientras MVC ofrece un conjunto de control más primitivo confiando más en los controles del lado del cliente ricos a través de jQuery (Javascript).
  • maduro • Ha existido desde 2002 y hay una gran cantidad de información con respecto a las preguntas, problemas, etc. ofrece más control de terceros - necesidad de considerar sus kits de herramientas existentes.

ASP.NET MVC:

  • separación de las preocupaciones (SoC) • Desde un punto de vista técnico, la organización de código dentro de MVC es muy limpio, organizado y granular, por lo que es más fácil (con suerte) para una aplicación web a escala en términos de funcionalidad. Promueve un gran diseño desde el punto de vista del desarrollo.
  • Integración más fácil con herramientas del lado del cliente (herramientas de interfaz de usuario ricas) • Más que nunca, las aplicaciones web son cada vez más ricas como las aplicaciones que se ven en sus escritorios. Con MVC, que le da la capacidad de integrarse con estos kits de herramientas (como jQuery) con mayor facilidad y más fluida que en los formularios web.
  • Search Engine Optimization (SEO) Amistoso/sin estado • URL son más amigable para los motores de búsqueda (es decir mywebapplication.com/users/ 1 - recuperar usuario con un ID de 1 vs MyWebApplication/usuarios/getuser.aspx (id aprobado en sesión)). Del mismo modo, ya MVC es sin estado, lo que elimina el dolor de cabeza de los usuarios que lanzan múltiples navegadores web desde la misma ventana (colisiones de sesión). En ese mismo sentido, MVC se adhiere al protocolo sin estado web en lugar de 'lucha' contra ella.
  • funciona bien con los desarrolladores que necesitan alto grado de control • formularios web ASP.NET genera automáticamente la mayor parte del HTML puro que se ve cuando se procesa una página. Esto puede causar dolores de cabeza a los desarrolladores. Con MVC, usted tiene control total sobre lo que se representa y no hay sorpresas. Aún más importante, es que los formularios HTML normalmente son mucho más pequeños que los formularios web que puede equivaler a un aumento de rendimiento - algo a considerar seriamente.
  • Desarrollo controlado por prueba (TDD) • Con MVC, puede crear pruebas más fácilmente para el lado web. Una capa adicional de prueba proporcionará otra capa de defensa contra el comportamiento inesperado.

autenticación, autorización, configuración, compilación y despliegue son todas las características que son compartidas entre los dos marcos web.

Cuestiones relacionadas