TOC

This article has been localized into Spanish by the community.

Introducción:

ASP.NET MVC vs. Web Forms

La primera versión de ASP.NET se lanzó en 2002, con el motor de vistas de Web Forms. Más adelante, pudo soportar MVC, Microsoft extendio ASP.NET para que sea compatible con múltiples motores de visualización, pero durante muchos años, si estaba usando ASP.NET, también estabas usando formularios web.

Microsoft tuvo un muy encomiable objetivo cuando crearon los Web Forms: Ellos querían abstraer muchos de los confusos detalles del protocolo HTTP junto a su naturaleza sin estados, para hacer del desarrollo web una experencia más similar al desarrollo de una aplicación Windows, que ya era una experiencia más agradable en ese momento.

Lo hicieron al introducir el ViewState, que se aseguraría de que el estado actual de cualquier formulario se mantuviera durante los post back al servidor y lo hicieron con los controles del servidor, que encapsulaban el renderizado del HTML y CSS en un control arbitrario que se podía personalizar utilizando propiedades lógicas en vez de verse obligado a mezclar HTML y CSS directamente.

También introdujeron el modelo de eventos conducidos, ya conocido por los desarrolladores Windows de la época, para permitir a los desarrolladores responder a los eventos actuales, como un botón siendo clickado o un checkbox siendo cambiado, en vez de hacer comprobaciones manuales cada vez que la página si que cargaba. Esto también significaba que el marcado y el código estaban separados, que en teoría es una una gran idea.

Dónde fallaron los Web Forms

Los Web Forms fueron un soplo de aire fresco para muchos desarrolladores, y posiblemente ayudo mucho a los nuevos desarrolladores, o desarrolladores familiarizados con el desarrollo de aplicaciones Windows, para aprender a construir aplicaciones para la web. Desafortunadamente Microsoft no tuvo éxito en crear la abstracción perfecta e impecable, porque un gran número de problemas rápidamente emergió. Algunos de ellos fueron arreglados en versiones posteriores, mientras que otros fueron más críticos debido a la forma en la que funcionaban los Web Forms y, por tanto, más difíciles de arreglar. La tecnología de Web Forms ha sido criticada principalmente por lo siguiente:

El ViewState hace a las páginas más pesadas

Al realizar un seguimiento de todos los controles del servidor de la página en una cadena ViewState, que es enviada de ida y vuelta en cada petición, hizo que las páginas de Web Forms se hicieran un poco más pesadas. Si tu construías una página de complejidad media, la cadena ViewState podía llevar al aumento en varios cientos de kilobytes. Esto podía hacer que fueran mayores los tiempos de carga, especialmente en conexiones móviles y con un aumento del tráfico desde los móviles de todo el mundo, esto se convertiría en un serio problema.

Los controles del servidor limitan tu control sobre la salida de HTML

Los controles del servidor facilitan la rápida creación de algo útil, pero nunca obtienes el control total del HTML que se renderiza. Esto puede convertirse en un problema cuando necesitas afinar tu trabajo, así como si experimentas problemas de compatibilidad con el navegador.

Los Web Forms son malos para las pruebas automáticas

El modelo de Web Forms fue introducido antes de las pruebas automáticas/unitarias que se convirtieron en un objeto importante cuando lo hicieron, era fácil ver que a los Web Forms era difícil, si no imposible, aplicarlos las pruebas unitarias de una forma efectiva.

Dónde ASP.NET MVC es una mejora frente a los Web Forms

ASP.NET elimina muchas de las abstracciones implementadas por Web Forms. Por ejemplo, tú sueles generar todo el HTML tú mismo, en vez de confiar en los controles del servidor. Tampoco ya no hay ninguna ViewState mantenida por ti, efectivamente eliminando ese problema (pero también renderizando varios de los controles del servidor, como GridView y Repeater, que son inútiles al mismo tiempo).

El modelo MVC es perfecto para las pruebas automáticas/unitarias, debido a la pérdida de acoplamiento entre las distintas capas.

¿Qué tecnología deberías elegir?

Es importante afirmar que si bien los Web Forms puedan parecer una tecnología obsoleta cuando se lee lo anterior, en realidad no lo son - Microsoft aún está desarrollando activamente los Web Forms y es una opción posible al entrar al mundo del desarrollo web con ASP.NET. Los Web Forms son especialmente adecuados para situaciones en las que quiere que algo se ponga en marcha rápidamente - la gran cantidad de controles avanzados del servidor hace que sea fácil lograr algo muy útil en poco tiempo, al precio de la flexibilidad que te brinda el escribir todo el marcado manualmente.

Si ya sabes cómo utilizar Web Forms, definitivamente deberías probar ASP.NET MVC, especialmente si algunos de los problemas mencionados anteriormente también te han estado molestando. Si es nuevo en el desarrollo web y necesita decidir entre las dos tecnologías, le recomendaría probar ASP.NET MVC. El modelo MVC puede parecer un poco restrictivo para algunas personas, y tener que seguir un patrón es obviamente más difícil al principio que no seguirlo, pero una vez que te acostumbras, es muy agradable trabajar y juzgar por la cantidad de atención que el modelo MVC recibe en general, no es probable que desaparezca pronto.

Resumen

Por tanto, mientras ASP.NET Web Forms puedan parecer un poco más fáciles para comenzar, probablemente deberías probar primero ASP.NET MVC primero, si tú eres nuevo en el mundo del desarrollo. No te preocupes, este tutorial te ayudará a comenzar y guiará a través del proceso de desarrollo de tu primera aplicación ASP.NET MVC.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!