Qué es Web Forms

ASP.NET Web Forms forma parte del marco de aplicaciones web ASP.NET y se incluye con Visual Studio. Es uno de los cuatro modelos de programación que puede usar para crear aplicaciones web ASP.NET, los demás son ASP.NET MVC, ASP.NET Web Pages y ASP.NET Single Page Applications.

Los formularios Web Forms son páginas que los usuarios solicitan mediante su explorador. Estas páginas se pueden escribir con una combinación de HTML, script de cliente, controles de servidor y código de servidor. Cuando los usuarios solicitan una página, el marco se compila y ejecuta en el servidor y luego el marco genera el marcado HTML que el explorador puede representar. Una página de ASP.NET Web Forms presenta información al usuario en cualquier dispositivo cliente o explorador.

Con Visual Studio, puede crear aplicaciones ASP.NET Web Forms. El entorno de desarrollo integrado (IDE) de Visual Studio le permite arrastrar y colocar controles de servidor para diseñar la página de Web Forms. A continuación, puede establecer fácilmente propiedades, métodos y eventos para los controles de la página o para la propia página. Estas propiedades, métodos y eventos se usan para definir el comportamiento, la apariencia y el funcionamiento de la página web, etc. Para escribir código de servidor y controlar la lógica de la página, puede usar un lenguaje .NET como Visual Basic o C#.

Nota:

La documentación de ASP.NET y Visual Studio abarcan varias versiones. Los temas que resaltan las características de versiones anteriores pueden resultar útiles para las tareas y escenarios actuales con las versiones más recientes.

ASP.NET Web Forms es lo siguiente:

  • Se basa en la tecnología de Microsoft ASP.NET, en la que el código que se ejecuta en el servidor genera dinámicamente la salida de la página web en el explorador o el dispositivo cliente.
  • Es compatible con cualquier explorador o dispositivo móvil. Una página web de ASP.NET representa automáticamente el código HTML compatible con el explorador correcto para características como estilos, diseño, etc.
  • Se admite con cualquier lenguaje compatible con Common Language Runtime de .NET, como Microsoft Visual Basic y Microsoft Visual C#.
  • Se basa en Microsoft .NET Framework. Esto proporciona todas las ventajas del marco, incluido un entorno administrado, seguridad de tipos y herencia.
  • Es flexible porque puede agregar en ellos controles creados por el usuario y de terceros.

ASP.NET Web Forms ofrece:

  • Separación de HTML y otro código de interfaz de usuario de la lógica de la aplicación.
  • Amplio conjunto de controles de servidor para tareas comunes, incluido acceso a datos.
  • Enlace de datos eficaz, con gran compatibilidad con herramientas.
  • Compatibilidad con scripting del lado cliente que se ejecuta en el explorador.
  • Compatibilidad con diversas funcionalidades, como enrutamiento, seguridad, rendimiento, internacionalización, pruebas, depuración, control de errores y administración de estado.

ASP.NET Web Forms le ayuda a superar los desafíos

La programación de aplicaciones web presenta unos desafíos que no suelen surgir al programar aplicaciones tradicionales basadas en cliente. Entre ellos se encuentran:

  • Implementación de una interfaz de usuario web enriquecida: puede resultar difícil y tedioso diseñar e implementar una interfaz de usuario con recursos HTML básicos, especialmente si la página tiene un diseño complejo, una gran cantidad de contenido dinámico y objetos interactivos de usuario completos.
  • Separación de cliente y servidor: en una aplicación web, el cliente (explorador) y el servidor son programas diferentes que a menudo se ejecutan en equipos distintos (e incluso en sistemas operativos diferentes). Por consiguiente, las dos mitades de la aplicación comparten muy poca información; pueden comunicarse, pero normalmente solo intercambian pequeños fragmentos de información simple.
  • Ejecución sin estado: cuando un servidor web recibe una solicitud de una página, busca la página, la procesa, la envía al explorador y descarta luego toda la información de la página. Si el usuario vuelve a solicitar la misma página, el servidor repite toda la secuencia y vuelve a procesar la página desde cero. En otras palabras, un servidor no tiene memoria de las páginas procesadas; las páginas no tienen estado. Por lo tanto, si una aplicación necesita mantener información sobre una página, su naturaleza sin estado puede convertirse en un problema.
  • Funcionalidades de cliente desconocidas: en muchos casos, las aplicaciones web son accesibles a muchos usuarios que utilizan distintos exploradores. Los exploradores tienen diferentes funcionalidades, lo que dificulta la creación de una aplicación que se ejecute igual de bien en todos ellos.
  • Complicaciones con el acceso a datos: leer y escribir en un origen de datos en aplicaciones web tradicionales puede ser complicado y consumir muchos recursos.
  • Complicaciones con la escalabilidad: en muchos casos, las aplicaciones web diseñadas con métodos existentes no cumplen los objetivos de escalabilidad debido a la falta de compatibilidad entre los distintos componentes de la aplicación. Esto suele ser un punto de error común para las aplicaciones que pasan por un ciclo de crecimiento intensivo.

Superar estos desafíos para las aplicaciones web puede requerir un tiempo y un esfuerzo considerables. ASP.NET Web Forms y el marco de ASP.NET abordan estos desafíos de las siguientes maneras:

  • Modelo de objetos intuitivo y coherente: el marco de página de ASP.NET presenta un modelo de objetos que le permite pensar en los formularios como una unidad, no como partes de cliente y servidor independientes. En este modelo, puede programar la página de una manera más intuitiva que en las aplicaciones web tradicionales, incluida la capacidad de establecer propiedades para elementos de página y responder a eventos. Además, los controles de servidor de ASP.NET son una abstracción del contenido físico de una página HTML y de la interacción directa entre el explorador y el servidor. En general, puede usar controles de servidor del mismo modo en que puede trabajar con controles en una aplicación cliente y no tener que pensar en cómo crear HTML para presentar y procesar los controles y su contenido.
  • Modelo de programación controlado por eventos: ASP.NET Web Forms lleva a las aplicaciones web el modelo conocido de escritura de controladores de eventos para eventos que se producen en el cliente o en el servidor. El marco de página de ASP.NET abstrae este modelo de tal manera que el mecanismo subyacente de capturar un evento en el cliente, transmitirlo al servidor y llamar al método adecuado es todo automático y resulta invisible para el usuario. El resultado es una estructura de código clara y fácil de escribir que admite el desarrollo controlado por eventos.
  • Administración de estado intuitiva: el marco de página de ASP.NET controla automáticamente la tarea de mantener el estado de la página y sus controles y proporciona formas explícitas de mantener el estado de la información específica de la aplicación. Esto se logra sin necesidad de un uso intensivo de los recursos del servidor y se puede implementar enviando o no cookies al explorador.
  • Aplicaciones independientes del explorador: el marco de página de ASP.NET permite crear toda la lógica de aplicación en el servidor, lo que elimina la necesidad de programar explícitamente las diferencias en los exploradores. Sin embargo, le sigue permitiendo aprovechar las características específicas del explorador mediante la escritura de código del lado cliente para proporcionar un rendimiento mejorado y una experiencia de cliente más completa.
  • Compatibilidad con Common Language Runtime de .NET Framework: el marco de página de ASP.NET se basa en .NET Framework, por lo que todo el marco está disponible para cualquier aplicación ASP.NET. Las aplicaciones se pueden escribir en cualquier lenguaje que sea compatible con el tiempo de ejecución. Además, el acceso a datos se simplifica mediante la infraestructura de acceso a datos proporcionada por .NET Framework, incluida ADO.NET.
  • Rendimiento del servidor escalable de .NET Framework: el marco de página de ASP.NET permite escalar la aplicación web de un equipo con un único procesador a una granja de servidores web de varios equipos de forma limpia y sin cambios complicados en la lógica de la aplicación.

Ventajas de ASP.NET Web Forms

  • Controles de servidor: los controles de servidor web de ASP.NET son objetos en páginas web de ASP.NET que se ejecutan cuando se solicita la página y que representan el marcado en el explorador. Muchos controles de servidor web son similares a los elementos HTML conocidos, como botones y cuadros de texto. Otros controles incluyen un comportamiento complejo, como controles de calendario y controles que puede usar para conectarse a orígenes de datos y mostrar datos.
  • Páginas maestras: las páginas maestras de ASP.NET permiten crear un diseño coherente para las páginas de la aplicación. Una sola página maestro define la apariencia y el comportamiento estándar que desea para todas las páginas (o un grupo de páginas) en su aplicación. Después, puede crear páginas de contenido individuales con el contenido que desee mostrar. Cuando los usuarios solicitan las páginas de contenido, se combinan con la página maestra para generar una salida que combine el diseño de la página maestra con el contenido de la página de contenido.
  • Trabajar con datos: ASP.NET proporciona muchas opciones para almacenar, recuperar y mostrar datos. En una aplicación ASP.NET Web Forms, se usan controles enlazados a datos para automatizar la presentación o entrada de datos en elementos de la interfaz de usuario de páginas web, como tablas y cuadros de texto y listas desplegables.
  • Pertenencia: ASP.NET Identity almacena las credenciales de los usuarios en una base de datos creada por la aplicación. Cuando los usuarios inician sesión, la aplicación valida sus credenciales leyendo la base de datos. La carpeta Account del proyecto contiene los archivos que implementan las distintas partes de pertenencia: registro, inicio de sesión, cambio de contraseña y autorización de acceso. Además, ASP.NET Web Forms admite OAuth y OpenID. Estas mejoras de autenticación permiten a los usuarios iniciar sesión en el sitio con credenciales existentes, desde cuentas como Facebook, Twitter, Windows Live y Google. De forma predeterminada, la plantilla crea una base de datos de pertenencia con un nombre de base de datos predeterminado en una instancia de SQL Server Express LocalDB, el servidor de bases de datos de desarrollo que viene con Visual Studio Express 2013 para Web.
  • Script de cliente y marcos de cliente: puede mejorar las características basadas en el servidor de ASP.NET mediante la inclusión de la funcionalidad de script de cliente en las páginas de ASP.NET Web Forms. Puede usar el script de cliente para proporcionar una interfaz de usuario más completa y con mayor capacidad de respuesta a los usuarios. También puede utilizar el script de cliente para realizar llamadas asincrónicas al servidor web mientras se ejecuta una página en el explorador.
  • Enrutamiento: el enrutamiento de direcciones URL permite configurar una aplicación para aceptar direcciones URL de solicitud que no se asignan a archivos físicos. Una dirección URL de solicitud es simplemente la dirección URL que un usuario escribe en su explorador para buscar una página en el sitio web. El enrutamiento se usa para definir direcciones URL que son semánticamente significativas para los usuarios y que pueden ayudar con la optimización del motor de búsqueda (SEO).
  • Administración de estados: ASP.NET Web Forms incluye varias opciones que le ayudan a conservar los datos tanto por página como por aplicación.
  • Seguridad: una parte importante del desarrollo de una aplicación más segura es entender las amenazas. Microsoft ha desarrollado una manera de clasificar las amenazas: suplantación de identidad, manipulación, rechazo, divulgación de información, denegación de servicio, elevación de privilegios (STRIDE). En ASP.NET Web Forms, puede agregar puntos de extensibilidad y opciones de configuración que le permiten personalizar varios comportamientos de seguridad en ASP.NET Web Forms.
  • Rendimiento: el rendimiento puede ser un factor clave en un proyecto o sitio web correcto. ASP.NET Web Forms permite modificar el rendimiento relacionado con el procesamiento de control de páginas y servidores, administración de estado, acceso a datos, configuración y carga de aplicaciones, así como unas prácticas de codificación eficaces.
  • Internacionalización: ASP.NET Web Forms contribuye a crear páginas web que puedan obtener contenido y otros datos en función de la configuración de idioma preferida para el explorador o de la elección explícita del idioma del usuario. El contenido y otros datos se conocen como recursos y estos datos se pueden almacenar en archivos de recursos u otros orígenes. En una página de ASP.NET Web Forms, configurará los controles para obtener sus valores de propiedad de los recursos. En tiempo de ejecución, las expresiones de recursos se reemplazan por recursos del archivo de recursos localizado adecuado.
  • Depuración y control de errores: ASP.NET incluye características que le ayudarán a diagnosticar problemas que pueden surgir en la aplicación Web Forms. La depuración y el control de errores son muy compatibles en ASP.NET Web Forms para que las aplicaciones se compilen y ejecuten de forma eficaz.
  • Implementación y hospedaje: Visual Studio, ASP.NET, Azure e IIS proporcionan herramientas que le ayudan con el proceso de implementación y hospedaje de la aplicación Web Forms.

Decidir cuándo se crea una aplicación de Web Forms

Debe considerar cuidadosamente si desea implementar una aplicación web mediante el modelo de ASP.NET Web Forms u otro modelo, como el marco de ASP.NET MVC. El marco de MVC no reemplaza el modelo de formularios Web Forms; puede usar cualquiera de los dos marcos para las aplicaciones web. Antes de decidir usar el modelo de formularios Web Forms o el marco de MVC para un sitio web concreto, sopese las ventajas de cada método.

Ventajas de una aplicación web basada en formularios Web Forms

El marco basado en formularios Web Forms ofrece las ventajas siguientes:

  • Admite un modelo de eventos que conserva el estado sobre HTTP, lo que favorece el desarrollo de la aplicación web de línea de negocio. La aplicación basada en formularios Web Forms proporciona docenas de eventos que se admiten en centenares de controles de servidor.
  • Utiliza un modelo de controlador de página que agrega funcionalidad a las páginas individuales. Para más información, consulte Controlador de página.
  • Usa el estado de vista de los formularios basados en servidor, lo que puede facilitar la administración de la información de estado.
  • Funciona bien para equipos pequeños de desarrolladores web y diseñadores que deseen aprovechar el gran número de componentes disponible para el desarrollo rápido de aplicaciones.
  • En general, es menos complejo para el desarrollo de aplicaciones, puesto que los componentes (la clase Page, controles, etc.) se integran estrechamente y suelen requerir menos código que el modelo de MVC.

Ventajas de una aplicación web basada en MVC

El marco ASP.NET MVC ofrece las ventajas siguientes:

  • Facilita la administración de la complejidad, al dividir una aplicación en el modelo, la vista y el controlador.
  • No usa el estado de vista ni formularios basados en servidor. Esto hace que el marco de MVC sea ideal para los desarrolladores que deseen un control completo sobre el comportamiento de una aplicación.
  • Usa un modelo de controlador frontal que procesa las solicitudes de la aplicación web mediante un controlador único. Esto permite diseñar una aplicación que admite una infraestructura de enrutamiento avanzada. Para más información, consulte Controlador frontal.
  • Proporciona una mayor compatibilidad con el desarrollo basado en pruebas (desarrollo controlado por pruebas).
  • Funciona bien para las aplicaciones web en las que trabajan equipos grandes de desarrolladores y diseñadores web que necesiten un alto grado de control sobre el comportamiento de la aplicación.