¿Por qué ASP.NET MVC en vez del viejo y conocido ASP.NET
Web Forms?
ASP.NET Web Forms es simple: si quiero hacer una
funcionalidad de búsqueda en mi página, arrastro un cuadro de texto, un botón,
y programo el evento click de este último con la lógica de la búsqueda. El
proceso es prácticamente idéntico a lo que se haría en una aplicación de
escritorio, en donde los eventos gobiernan el comportamiento de la aplicación.
Y ése, es precisamente el problema. En realidad cuando
desarrollamos aplicaciones web no deberíamos pensar en términos de páginas,
eventos y botones, por la sencilla razón de que la web no funciona así. La Web
funciona en términos del protocolo HTTP y sus comandos, como GET y POST. La
presentación se obtiene mediante HTML y CSS. El documento HTML se manipula con
JavaScript. De hecho en realidad no hay páginas, ya que una URL es básicamente
un puntero a un recurso que no necesariamente debe estar mapeado a un archivo
físico (.html o .aspx) en el servidor.
Por esa razón, ASP.NET Web Forms debía hacer mucho trabajo
detrás de escena para lograr que la aplicación orientada a eventos que nosotros
escribimos desde Visual Studio se convirtiera en una aplicación HTTP real.
Básicamente Web Forms genera por nosotros el código HTML y JavaScript
respectivo, lo que implica que realmente nunca tenemos el control real sobre el
código que ejecutará el navegador.
En ese sentido, MVC nos permite volver a lo básico.
Mediante este modelo podremos desarrollar aplicaciones Web que funcionen como
realmente opera la Web, haciendo uso de HTTP y sus comandos, y separando la
lógica de la presentación. Podremos incorporar con mayor facilidad tecnologías
como jQuery, HTML5 o CSS3 a nuestros sitios y lo más importante, tendremos
absoluto control sobre el código HTML y JavaScript que será entregado al navegador.
Esta es la primera de varias entradas que buscan ayudarle a
los desarrolladores a nivelar sus conocimientos en Web Forms y MVC, y hacer que
la transición entre las dos tecnologías sea lo más simple posible.
Autor: Hugo Fernando Aristizabal - Consultor & Arquitecto de Software






