viernes, 13 de enero de 2012

Saltando de ASP.net WebForms a MVC 3

Actualmente y desde hace tiempo, existe un debate comparativo importante con metodologías y patrones a emplear con tecnologías ASP .net. Específicamente con ASP.net WebForms y MVC.

Tras la aparición de MVC surgió la duda en la comunidad de programadores Microsoft: ¿MVC reemplazará WebForms?. Microsoft aclaró que únicamente iba a representar una opción más para el desarrollo web.

Con el trascurso del tiempo, la tecnología MVC pasó a colocarse en una posición ventajosa respecto a la utilización de WebForms, siendo la tecnología más apropiada y utilizada para el desarrollo web de proyectos de gran envergadura.


Tras aproximadamente medio año, me encuentro abordando la tecnología ASP.net MVC 3, desarrollando y asistiendo a un curso. Teniendo en cuenta los más de ocho años programando y escalando versiones en ASP.net WebForms. Iré recopilando puntos de vista y experiencias en lo que concierne a dichas tecnologías, en varios escenarios de desarrollo. Aún teniendo en cuenta que pueda dejarme muchos conceptos, que os animo a discutir. Y que poco a poco, con el transcurso del tiempo iré comentando.

Empecemos haciendo un poco de memoria:

Antes del tremendo cambio conceptual que supuso ASP.net, recuerdo haber programado con PHP / ColdFusion / JSP / ASP, tareas tan problemáticas como:

  • Peticiones asíncronas manuales mediante iframes ocultos.
  • Proxy Webservices XML/RPC.
  • Utilización de POO mediante clases contenidas en inclusiones de archivos.
  • Generación de librerías COM.
  • Etc.

Con la entrada de ASP.net

Nos solucionó la inmensa mayoría de todos los problemas. Supuso cambiar la filosofía, metodología y patrón de desarrollo, facilitando en gran medida la programación, organización y clasificación, en todos los aspectos.

En posteriores versiones, introdujo la librería de código cliente AJAX, incluyendo componentes cómo el ScriptManager, ScriptResource, UpdatePanel, etc. Facilitando más aún el desarrollo.

Versión a versión, Microsoft priorizó la rapidez, estandarización y automatización en el desarrollo de cualquier tipo de aplicación, en el menor tiempo posible. Mediante wizards y código auto-generado.

Toda esa facilidad y auto-generación de código, con el tiempo y observación, se convirtió en un problema de rendimiento para los proyectos web de gran envergadura, alto rendimiento y gran concurrencia de usuarios.

Dichos proyectos web necesitan/requieren una rápida y optimizada ejecución, tanto en el cliente como en el servidor, obligando a tener un control absoluto del HTML y archivos JS y CSS enviados al navegador.
Con esa básica e importante prioridad, ASP.net WebForms, no te lo pone sencillo.

Por cada problema, tanto la comunidad de programadores, como Microsoft propusieron soluciones y recursos que evitaban la automatización, mediante prácticas para la mejora del rendimiento para ASP.net WebForms.

Dichas soluciones, Microsoft fue incluyéndolas en posteriores versiones:

ASP .net 4.0 nos facilita la optimización de JS/AJAX mediante jQuery y MS AJAX Content Delivery Network.
Output Caching Extensible con ASP.net 4.0
Optimizando el rendimiento de ASP .net
Optimizando el rendimiento de JS/AJAX

Viendo esta evolución, no es de extrañar que Microsoft brindara una nueva opción en los desarrollos web, planteando un nuevo patrón, mediante una nueva metodología. Intentando extraer la ventaja del rápido desarrollo de ASP.net WebForms, con el control absoluto de código: ASP.net MVC. Aunque siempre, de una forma u otra, consumiendo todo el potencial del Framework 4.0.

Arquitectura: Modelo Vista Controlador:

Modelo: Representa la lógica de negocio de la aplicación. Más comúnmente: BLL (Business Logic Lager) y DAL (Data Access Layer).
Vista: Representan la presentación de la aplicación. Más comúnmente: GUI (Graphical User Interface).
Controlador: Recogen y procesan las acciones del usuario, mediante el Modelo. Devolviendo la Vista determinada y procesada.

De modo que tenemos una nueva óptima solución, a barajar ante nuevos proyectos Web.

Desde mi experiencia, la adaptación inicial en el desarrollo de ASP.net WebForms a MVC, fue rápida, aunque teniendo siempre presente los principales cambios conceptuales que repercuten en cada tecnología.

Realmente lo importante no es “qué” herramienta vamos a utilizar, sino el “cómo” vas a emplearla (teniendo en cuenta que el “cómo” es directamente proporcional al “quien”). Destaco la frase sentenciadora existente en el post de ScottGu´s – About Technical Debates (and ASP.net Web Forms and ASP.net MVC debates in particular:

“Great developers using bad tools/frameworks can make great apps. Bad developers using great tools/frameworks can make bad apps.”

Puedes encontrar infinidad de links interesantes que hablan del tema. En los que podrás obtener información más detallada. Destaco algunos:

Social MSDN – MVC vs WebForms
Magazine MSDN – Building Web Apps without Web Forms
WebForms vs ASP.net MVC




fuente: http://www.josecuellar.net/js-ajax/saltando-de-asp-net-webforms-a-mvc-3

No hay comentarios: