Es el protocolo utilizado para la transferencia de datos entre el cliente (el Browser en nuestro caso) y el servidor. La comunicación entre ambos se produce con dos objetos, el request que consiste en una petición del cliente, y el response, la respuesta que envía.
El request es la petición del cliente al servidor para que ejecute alguna acción, típicamente pedir informacion o realizar cambios (guardar, actualizar o eliminar datos).
El request puede ser de varios tipos, de los cuales nos enfocaremos en el Get y Post.
El Get es utilizado para la petición de recursos al servidor. Este tipo de peticiones no debe ser utilizado para peticiones que causen ningún tipo de cambio, como lo puede ser la eliminación de registros en una base de datos, esto debido a la facilidad con las que pueden ser realizadas estas peticiones. Por ejemplo, veamos la siguiente tabla:

El botón "eliminar" es un link a un URL, cuando se realiza una petición a este URL se elimina el dato. Ahora, si esta página tiene acceso público, el robot de google podría ingresar a ella en cualquier momento y realizar peticiones a los links encontrados, eliminando los datos de la página sin que nos demos cuenta.
La petición de tipo Post permite enviar datos en el cuerpo del request para que sean procesados por el servidor, como lo es crear, actualizad o eliminar registros de una base de datos.
Html (Hypertext markup language)
Es el principal lenguaje utilizado para estructurar las páginas web. Los navegadores interpretan los documentos Html para generar la vista a mostrar al usuario.
Los documentos Html pueden incluir adicionalmente documentos del tipo CSS para agregar estilos a la página, y scripts, típicamente en lenguaje JavaScript, que agregan funcionalidades a la página del lado del cliente.
Estas 3 tecnologías (HTML, CSS y Javascript) son las tecnologías del lado del cliente más utilizadas.
Http, HTML y el navegador
Como vimos, las páginas Web son usualmente documentos Html con CSS y Javascripts, mostrados por un navegador, el cual se comunica con un servidor a través del protocolo Http.
Todas las peticiones del cliente al servidor son realizadas a un URL:
www.ejemplo.com/MiPeticion/1?queryString=2
Donde la primera parte (www.example.com) indica la dirección del servidor, y el resto es la petición es interpretada por este para determinar la respuesta o acción a tomar y retornar al cliente.
En el caso de las peticiones Post, el servidor recibe adicionalmente los datos enviados en el cuerpo del request. Esto campos son introducidos usualmente por el cliente en un formulario html (< form >).
¿Por qué surge Web Forms?
La tecnologia Web Forms fue desarrollada con la intención de asemejar la programación web a la programación de escritorio, principalmente a Windows forms, abstrayendo al programador del protocolo Http, como lo es la comunicación por requests. En lugar de trabajar con HTML para crear nuestra interfaz, se utilizan controles ASP.
A estos controles le son asociados propiedades, metodos y eventos de manera similar a los controles de Windows Forms, los cuales son luego traducidos a lenguaje HTML desde el servidor para ser enviados al usuario y mostrarse en el navegador.
Esta tecnología es muy buena para el desarrollo de páginas de manera rápida, ademas que es muy fácil su aprendizaje para desarrolladores que no estén familiarizados con el desarrollo web, pero tengan experiencia en el desarrollo de aplicaciones de escritorio con Windows Forms, e incluso con otras tecnologías.
Desventajas de Web Forms
Sin embargo la utilizacion de Web Forms no siempre es la mejor opción, ya que el programador no tiene control directo sobre el HTML o los Javascripts generados, lo que muchas veces dificulta el realizar interfaces de usuario mas especificas o particulares. Esto se debe en parte a que el funcionamiento interno del manejo del protocolo HTTP por parte de WebForms esta parcialmente oculto al programador, lo que termina dificultando la creación de aplicaciones web con funcionalidades muy particulares.
A esto de le suma que las páginas generadas por Web Forms son más pesadas y lentas a diferencia de las que sean creadas completamente por nosotros los programadores
Es por esto que para los programadores experimentados en la web; la tecnología y la forma de ocultar el protocolo HTTP, les resulta más un estorbo que una solución, y muchas veces evita que personas desarrollando aplicaciones web con Web Forms no aprendan cómo funcionan realmente las páginas web.
Pensando en esto, Microsoft desarrolló una nueva tecnología para la creación de aplicaciones web, que se acerca mucho más a la forma en que trabaja el protocolo HTTP, esta tecnología de nombre ASP.Net MVC esta basada en el patrón de ingeniería de software Modelo Vista Controlador, un patrón ya bastante extendido en otras tecnologías de desarrollo como Java, Ruby on Rails y diferentes frameworks de PHP.
La razón de que se use este patrón es que se asemeja al funcionamiento de la web, donde tenemos la vista que representa la interfaz presentada al usuario (HTML, CSS, Javascript, etc). La capa controlador; clases en el servidor que se encargan de recibir los requests, procesarlos, acceder al modelo si es necesario y retornar una vista al usuario. El modelo se encarga de todo el proceso de negocios de la aplicación, obtener y almacenar datos en la base de datos, comunicarse con web services, etc.
¿Cómo utilizamos este nuevo framework?
Lo primero es visitar la página oficial en http://www.asp.net/mvc/ , ahí se encuentra diferentes recursos de aprendizaje. Para instalarlo, hacemos click en Dowmload. Luego veremos en el entorno de Visual Studio nuevas opciones para crear proyectos del tipo MVC.
El Framework funciona tanto para Visual Studio 2008 como para la versión 2010.
Por cierto, el codigo del Framework se encuentra bajo licencia Open Source, por lo que podemos bajarlo y modificarlo como nos plazca.
Ya existen en la web varios recursos para aprender por completo el Framework, en particular recomiendo el libro escrito por Steven Sanderson y publicado por Apress http://tinyurl.com/y8h8yf5 , es muy completo y explica de manera concisa y fácil de entender todo lo relacionado con este nuevo Framework.
David Martinez
Programador