¿Qué es Web Forms?

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

Los formularios web son páginas que los usuarios solicitan mediante su explorador. Estas páginas se pueden escribir mediante 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 compila y ejecuta en el servidor y, a continuación, 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 navegador.

Con Visual Studio, puede crear ASP.NET Formularios web. El entorno de desarrollo integrado (IDE) de Visual Studio le permite arrastrar y colocar controles de servidor para diseñar la página de formularios 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 comportamiento de la página web, etc. Para escribir código de servidor para controlar la lógica de la página, puede usar un lenguaje .NET como Visual Basic o C#.

Nota:

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

ASP.NET Web Forms son:

  • Basado 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 al explorador o al dispositivo cliente.
  • 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.
  • Compatible con cualquier lenguaje compatible con .NET Common Language Runtime, como Microsoft Visual Basic y Microsoft Visual C#.
  • Basado en Microsoft .NET Framework. Esto proporciona todas las ventajas del marco, incluido un entorno administrado, la seguridad de tipos y la herencia.
  • Flexible porque puede agregar controles creados por el usuario y de terceros a ellos.

ASP.NET ofrece Formularios Web:

  • Separación de HTML y otro código de interfaz de usuario de la lógica de la aplicación.
  • Un amplio conjunto de controles de servidor para tareas comunes, incluido el 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 el enrutamiento, la seguridad, el rendimiento, la internacionalización, las pruebas, la depuración, el control de errores y la administración de estado.

ASP.NET formularios web le ayuda a superar los desafíos

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

  • Implementar una interfaz de usuario web enriquecida : puede ser difícil y tediosa diseñar e implementar una interfaz de usuario mediante instalaciones HTML básicas, 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 diferentes (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, a continuación, descarta 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. Por otra parte, un servidor no tiene memoria de páginas procesadas; la página no tiene estado. Por lo tanto, si una aplicación necesita mantener información sobre una página, su naturaleza sin estado puede representar un problema.
  • Funcionalidades de cliente desconocidas : en muchos casos, las aplicaciones web son accesibles para muchos usuarios que usan distintos exploradores. Los exploradores tienen diferentes funcionalidades, lo que dificulta la creación de una aplicación que se ejecutará igualmente 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 intensivo en 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 en un ciclo de crecimiento intensivo.

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

  • Modelo de objetos intuitivo y coherente : el marco de ASP.NET página presenta un modelo de objetos que 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, ASP.NET controles de servidor 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 de la manera en que puede trabajar con controles en una aplicación cliente y no tener que pensar en cómo crear el HTML para presentar y procesar los controles y su contenido.
  • Modelo de programación controlado por eventos: ASP.NET Web Forms llevan 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 ASP.NET página 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 e invisible para usted. 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 ASP.NET página 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 información específica de la aplicación. Esto se logra sin un uso intensivo de los recursos del servidor y se puede implementar con o sin enviar cookies al explorador.
  • Aplicaciones independientes del explorador: el marco de ASP.NET página permite crear toda la lógica de aplicación en el servidor, lo que elimina la necesidad de codificar explícitamente las diferencias en los exploradores. Sin embargo, todavía le permite aprovechar las características específicas del explorador escribiendo 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 trabajo 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 la ADO.NET.
  • Rendimiento del servidor escalable de .NET Framework: el marco de páginas ASP.NET permite escalar la aplicación web de un solo equipo con procesador único a una granja de servidores web de varios equipos limpiamente y sin cambios complicados en la lógica de la aplicación.

Características de ASP.NET Web Forms

  • Controles de servidor - Los controles de servidor web de ASP.NET son objetos en las páginas web de ASP.NET que se ejecutan cuando se solicita la página y que renderizan el marcado en el navegador. Muchos controles de servidor web son similares a los elementos HTML conocidos, como botones y cuadros de texto. Otros controles abarcan 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: ASP.NET páginas maestras 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. A continuación, puede crear páginas de contenido individuales que contengan el contenido que desea mostrar. Cuando los usuarios solicitan las páginas de contenido, se combinan con la página maestra para generar resultados que combinan 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 de formularios web Forms de ASP.NET, se usan controles enlazados a datos para automatizar la presentación o entrada de datos en elementos de la interfaz de usuario de página web, como tablas y cuadros de texto y listas desplegables.
  • Pertenencia: ASP.NET Identidad 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 Cuenta del proyecto contiene los archivos que implementan las distintas partes de pertenencia: registrar, iniciar sesión, cambiar una contraseña y autorizar el 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 trabajo 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 Web Forms de ASP.NET. 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 usar 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 Formularios web 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 comprender las amenazas. Microsoft ha desarrollado una manera de clasificar 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, la administración de estado, el acceso a datos, la configuración y la carga de aplicaciones, y prácticas de codificación eficaces.
  • Internacionalización: ASP.NET Web Forms permite 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 en función 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 formularios Web de ASP.NET, configurará los controles para obtener sus propiedades 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 de Formularios Web Forms. La depuración y el control de errores se admiten bien en ASP.NET Web Forms para que tus 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 de Formularios Web Forms.

Decidir cuándo crear una aplicación de formularios web

Debe considerar detenidamente si se debe implementar una aplicación web mediante el modelo de formularios web ASP.NET u otro modelo, como el marco de ASP.NET MVC. El marco MVC no reemplaza el modelo de Formularios Web Forms; Puede usar cualquiera de los marcos para las aplicaciones web. Antes de decidir usar el modelo de Formularios Web Forms o el marco de MVC para un sitio web específico, pesa las ventajas de cada enfoque.

Ventajas de una aplicación web basada en formularios web

El marco basado en Web Forms ofrece las siguientes ventajas:

  • Admite un modelo de eventos que conserva el estado a través de HTTP, lo que beneficia al desarrollo de aplicaciones web de línea de negocio. La aplicación basada en Web Forms proporciona docenas de eventos que se admiten en cientos de controles de servidor.
  • Usa un patrón de controlador de página que agrega funcionalidad a páginas individuales. Para obtener más información, vea Controlador de página.
  • Usa estado de vista o 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 quieren aprovechar el gran número de componentes disponibles para el desarrollo rápido de aplicaciones.
  • En general, es menos complejo para el desarrollo de aplicaciones, ya que los componentes (la clase Page , los controles, etc.) están estrechamente integrados y normalmente requieren menos código que el modelo MVC.

Ventajas de una aplicación web basada en MVC

El marco de ASP.NET MVC ofrece las siguientes ventajas:

  • Facilita la administración de la complejidad dividiendo una aplicación en el modelo, la vista y el controlador.
  • No usa el estado de la vista ni los formularios basados en servidor. Esto hace que el marco de MVC sea ideal para los desarrolladores que desean un control total sobre el comportamiento de una aplicación.
  • Usa un patrón de controlador frontal que procesa las solicitudes de aplicación web a través de un único controlador. Esto le permite diseñar una aplicación que admita una infraestructura de enrutamiento enriquecida. Para obtener más información, consulte Controlador frontal.
  • Proporciona una mejor compatibilidad con el desarrollo controlado por pruebas (TDD).
  • Funciona bien para las aplicaciones web compatibles con grandes equipos de desarrolladores y diseñadores web que necesitan un alto grado de control sobre el comportamiento de la aplicación.