Qué son los formularios Web FormsWhat is Web Forms

Los formularios Web Forms ASP.NET forman parte del marco de trabajo de la aplicación Web ASP.NET y se incluyen con Visual Studio.ASP.NET Web Forms is a part of the ASP.NET web application framework and is included with Visual Studio. Es uno de los cuatro modelos de programación que puede usar para crear aplicaciones Web de ASP.NET, mientras que las otras son ASP.NET MVC, ASP.NET Web Pages y ASP.NET de una sola página.It is one of the four programming models you can use to create ASP.NET web applications, the others are ASP.NET MVC, ASP.NET Web Pages, and ASP.NET Single Page Applications.

Los formularios Web Forms son páginas que los usuarios solicitan mediante el explorador.Web Forms are pages that your users request using their browser. Estas páginas se pueden escribir utilizando una combinación de HTML, script de cliente, controles de servidor y código de servidor.These pages can be written using a combination of HTML, client-script, server controls, and server code. Cuando los usuarios solicitan una página, se compilan y ejecutan en el servidor mediante el marco de trabajo y, a continuación, el marco de trabajo genera el marcado HTML que el explorador puede representar.When users request a page, it is compiled and executed on the server by the framework, and then the framework generates the HTML markup that the browser can render. Una página de formularios Web Forms ASP.NET presenta información al usuario en cualquier explorador o dispositivo cliente.An ASP.NET Web Forms page presents information to the user in any browser or client device.

Con Visual Studio, puede crear formularios Web Forms de ASP.NET.Using Visual Studio, you can create 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 formularios Web Forms.The Visual Studio Integrated Development Environment (IDE) lets you drag and drop server controls to lay out your Web Forms page. Después, puede establecer fácilmente las propiedades, los métodos y los eventos de los controles de la página o de la propia página.You can then easily set properties, methods, and events for controls on the page or for the page itself. Estas propiedades, métodos y eventos se utilizan para definir el comportamiento de la página web, la apariencia y el funcionamiento, etc.These properties, methods, and events are used to define the web page's behavior, look and feel, and so on. Para escribir código de servidor que controle la lógica de la página, puede usar un lenguaje .NET como Visual Basic C#o.To write server code to handle the logic for the page, you can use a .NET language like Visual Basic or C#.

Note

La documentación de ASP.NET y Visual Studio abarca varias versiones.ASP.NET and Visual Studio documentation spans several versions. Los temas que resaltan las características de versiones anteriores pueden ser útiles para sus tareas y escenarios actuales con las versiones más recientes.Topics that highlight features from previous versions may be useful for your current tasks and scenarios using the latest versions.

Los formularios Web Forms de ASP.NET son:ASP.NET Web Forms are:

  • Basado en la tecnología de Microsoft ASP.NET, en la que el código que se ejecuta en el servidor genera dinámicamente el resultado de la página web en el explorador o el dispositivo cliente.Based on Microsoft ASP.NET technology, in which code that runs on the server dynamically generates Web page output to the browser or client device.
  • Compatible con cualquier explorador o dispositivo móvil.Compatible with any browser or mobile device. Una página Web ASP.NET representa automáticamente el código HTML compatible con el explorador correcto para características como estilos, diseño, etc.An ASP.NET Web page automatically renders the correct browser-compliant HTML for features such as styles, layout, and so on.
  • Compatible con cualquier lenguaje compatible con .NET Common Language Runtime, como Microsoft Visual Basic y Microsoft Visual C#.Compatible with any language supported by the .NET common language runtime, such as Microsoft Visual Basic and Microsoft Visual C#.
  • Basado en el marco de Microsoft .NET.Built on the Microsoft .NET Framework. Esto proporciona todas las ventajas del marco, incluido un entorno administrado, seguridad de tipos y herencia.This provides all the benefits of the framework, including a managed environment, type safety, and inheritance.
  • Flexible porque puede agregarle controles de terceros y creados por el usuario.Flexible because you can add user-created and third party controls to them.

Oferta de formularios Web Forms ASP.NET:ASP.NET Web Forms offer:

  • Separación de HTML y otro código de interfaz de usuario de la lógica de la aplicación.Separation of HTML and other UI code from application logic.
  • Un amplio conjunto de controles de servidor para tareas comunes, incluido el acceso a datos.A rich suite of server controls for common tasks, including data access.
  • Enlace de datos eficaz, con una excelente compatibilidad con las herramientas.Powerful data binding, with great tool support.
  • Compatibilidad con scripting del lado cliente que se ejecuta en el explorador.Support for client-side scripting that executes in the browser.
  • Compatibilidad con otras funciones, 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.Support for a variety of other capabilities, including routing, security, performance, internationalization, testing, debugging, error handling and state management.

Los formularios Web Forms de ASP.NET le ayudan a superar los desafíosASP.NET Web Forms Helps You Overcome Challenges

La programación de aplicaciones web presenta desafíos que normalmente no surgen al programar aplicaciones tradicionales basadas en cliente.Web application programming presents challenges that do not typically arise when programming traditional client-based applications. Entre los desafíos se encuentran:Among the challenges are:

  • Implementar una interfaz de usuario Web enriquecida : puede ser difícil y tedioso diseñar e implementar una interfaz de usuario mediante el uso de 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 con todas las características.Implementing a rich Web user interface - It can be difficult and tedious to design and implement a user interface using basic HTML facilities, especially if the page has a complex layout, a large amount of dynamic content, and full-featured user-interactive objects.
  • Separación del cliente y del servidor : en una aplicación Web, el cliente (explorador) y el servidor son programas diferentes que se ejecutan a menudo en equipos diferentes (e incluso en sistemas operativos diferentes).Separation of client and server - In a Web application, the client (browser) and server are different programs often running on different computers (and even on different operating systems). Por lo tanto, 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.Consequently, the two halves of the application share very little information; they can communicate, but typically exchange only small chunks of simple information.
  • Ejecución sin estado : cuando un servidor web recibe una solicitud de una página, encuentra la página, la procesa, la envía al explorador y, a continuación, descarta toda la información de la página.Stateless execution - When a Web server receives a request for a page, it finds the page, processes it, sends it to the browser, and then discards all page information. Si el usuario solicita la misma página de nuevo, el servidor repite toda la secuencia y vuelve a procesar la página desde cero.If the user requests the same page again, the server repeats the entire sequence, reprocessing the page from scratch. Otra manera, un servidor no tiene memoria de páginas que ha procesado, la página no tiene estado.Put another way, a server has no memory of pages that it has processed—page are stateless. Por lo tanto, si una aplicación necesita mantener información acerca de una página, su naturaleza sin estado puede convertirse en un problema.Therefore, if an application needs to maintain information about a page, its stateless nature can become a problem.
  • Capacidades de cliente desconocidas : en muchos casos, se puede acceder a las aplicaciones web a muchos usuarios que usan exploradores diferentes.Unknown client capabilities - In many cases, Web applications are accessible to many users using different browsers. Los exploradores tienen capacidades diferentes, lo que dificulta la creación de una aplicación que se ejecutará igualmente correctamente en todos ellos.Browsers have different capabilities, making it difficult to create an application that will run equally well on all of them.
  • Complicaciones con el acceso a datos : la lectura y la escritura en un origen de datos en las aplicaciones web tradicionales pueden ser complicadas y que consumen muchos recursos.Complications with data access - Reading from and writing to a data source in traditional Web applications can be complicated and resource-intensive.
  • 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.Complications with scalability - In many cases Web applications designed with existing methods fail to meet scalability goals due to the lack of compatibility between the various components of the application. Suele ser un punto de error común para las aplicaciones en un ciclo de crecimiento pesado.This is often a common failure point for applications under a heavy growth cycle.

Cumplir estos desafíos para las aplicaciones web puede requerir mucho tiempo y esfuerzo.Meeting these challenges for Web applications can require substantial time and effort. Los formularios Web Forms de ASP.NET y ASP.NET Framework abordan estos desafíos de las siguientes maneras:ASP.NET Web Forms and the ASP.NET framework address these challenges in the following ways:

  • Modelo de objetos intuitivo y coherente : el marco de trabajo de la página ASP.net presenta un modelo de objetos que le permite pensar en los formularios como una unidad, no en partes independientes del cliente y del servidor.Intuitive, consistent object model - The ASP.NET page framework presents an object model that enables you to think of your forms as a unit, not as separate client and server pieces. En este modelo, puede programar la página de una forma más intuitiva que en las aplicaciones web tradicionales, incluida la capacidad de establecer las propiedades de los elementos de página y responder a los eventos.In this model, you can program the page in a more intuitive way than in traditional Web applications, including the ability to set properties for page elements and respond to events. Además, los controles de servidor 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.In addition, ASP.NET server controls are an abstraction from the physical contents of an HTML page and from the direct interaction between browser and server. En general, puede usar controles de servidor de la forma en que puede trabajar con controles en una aplicación cliente y no tener que pensar en cómo crear el código HTML para presentar y procesar los controles y su contenido.In general, you can use server controls the way you might work with controls in a client application and not have to think about how to create the HTML to present and process the controls and their contents.
  • Modelo de programación basado en eventos: los formularios web forms ASP.net proporcionan a las aplicaciones web el modelo conocido de escritura de controladores de eventos para los eventos que se producen en el cliente o el servidor.Event-driven programming model - ASP.NET Web Forms bring to Web applications the familiar model of writing event handlers for events that occur on either the client or server. El marco de trabajo de la página ASP.NET abstrae este modelo de forma que el mecanismo subyacente para capturar un evento en el cliente, transmitirlo al servidor y llamar al método adecuado es todo lo que se puede hacer de forma automática e invisible.The ASP.NET page framework abstracts this model in such a way that the underlying mechanism of capturing an event on the client, transmitting it to the server, and calling the appropriate method is all automatic and invisible to you. El resultado es una estructura de código clara y escrita fácilmente que admite el desarrollo controlado por eventos.The result is a clear, easily written code structure that supports event-driven development.
  • Administración de estado intuitiva : el marco de trabajo de la página ASP.net controla automáticamente la tarea de mantener el estado de la página y sus controles, y proporciona métodos explícitos para mantener el estado de la información específica de la aplicación.Intuitive state management - The ASP.NET page framework automatically handles the task of maintaining the state of your page and its controls, and it provides you with explicit ways to maintain the state of application-specific information. Esto se logra sin un uso intensivo de los recursos del servidor y se puede implementar con o sin enviar cookies al explorador.This is accomplished without heavy use of server resources and can be implemented with or without sending cookies to the browser.
  • Aplicaciones independientes del explorador : el marco de trabajo de la página ASP.net permite crear toda la lógica de la aplicación en el servidor, lo que elimina la necesidad de codificar explícitamente las diferencias en los exploradores.Browser-independent applications - The ASP.NET page framework enables you to create all application logic on the server, eliminating the need to explicitly code for differences in browsers. Sin embargo, aún 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 enriquecida.However, it still enables you to take advantage of browser-specific features by writing client-side code to provide improved performance and a richer client experience.
  • Compatibilidad con .NET Framework Common Language Runtime : el marco de trabajo de páginas de ASP.net se basa en el .NET Framework, por lo que todo el marco está disponible para cualquier aplicación de ASP.net..NET Framework common language runtime support - The ASP.NET page framework is built on the .NET Framework, so the entire framework is available to any ASP.NET application. Las aplicaciones se pueden escribir en cualquier lenguaje que sea compatible con el motor en tiempo de ejecución.Your applications can be written in any language that is compatible that is with the runtime. Además, el acceso a los datos se simplifica mediante la infraestructura de acceso a datos proporcionada por el .NET Framework, incluido ADO.NET.In addition, data access is simplified using the data access infrastructure provided by the .NET Framework, including ADO.NET.
  • .NET Framework rendimiento de servidor escalable : el marco de trabajo de páginas de ASP.net permite escalar la aplicación web desde un equipo con un solo procesador a una granja de servidores Web de varios equipos sin problemas y sin complicados cambios en la lógica de la aplicación..NET Framework scalable server performance - The ASP.NET page framework enables you to scale your Web application from one computer with a single processor to a multi-computer Web farm cleanly and without complicated changes to the application's logic.

Características de formularios Web Forms de ASP.NETFeatures of ASP.NET Web Forms

  • Controles de servidor: los controles de servidor Web 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.Server Controls- ASP.NET Web server controls are objects on ASP.NET Web pages that run when the page is requested and that render markup to the browser. Muchos controles de servidor web son similares a los elementos HTML conocidos, como botones y cuadros de texto.Many Web server controls are similar to familiar HTML elements, such as buttons and text boxes. 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.Other controls encompass complex behavior, such as a calendar controls, and controls that you can use to connect to data sources and display data.
  • Páginas maestras: las páginas maestras de ASP.net le permiten crear un diseño coherente para las páginas de la aplicación.Master Pages- ASP.NET master pages allow you to create a consistent layout for the pages in your application. 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 single master page defines the look and feel and standard behavior that you want for all of the pages (or a group of pages) in your application. Después, puede crear páginas de contenido individuales con el contenido que desee mostrar.You can then create individual content pages that contain the content you want to display. Cuando los usuarios solicitan las páginas de contenido, se combinan con la página maestra para producir una salida que combina el diseño de la página maestra con el contenido de la página de contenido.When users request the content pages, they merge with the master page to produce output that combines the layout of the master page with the content from the content page.
  • Trabajar con datos: ASP.net proporciona muchas opciones para almacenar, recuperar y Mostrar datos.Working with Data- ASP.NET provides many options for storing, retrieving, and displaying data. En una aplicación de formularios Web Forms ASP.NET, se usan controles enlazados a datos para automatizar la presentación o la entrada de datos en elementos de la interfaz de usuario de la página web, como tablas y cuadros de texto y listas desplegables.In an ASP.NET Web Forms application, you use data-bound controls to automate the presentation or input of data in web page UI elements such as tables and text boxes and drop-down lists.
  • Pertenencia: ASP.net Identity almacena las credenciales de los usuarios en una base de datos creada por la aplicación.Membership- ASP.NET Identity stores your users' credentials in a database created by the application. Cuando los usuarios inician sesión, la aplicación valida las credenciales mediante la lectura de la base de datos.When your users log in, the application validates their credentials by reading the database. La carpeta de la cuenta del proyecto contiene los archivos que implementan las distintas partes de la pertenencia: registro, Inicio de sesión, cambio de contraseña y autorización de acceso.Your project's Account folder contains the files that implement the various parts of membership: registering, logging in, changing a password, and authorizing access. Además, los formularios Web Forms de ASP.NET admiten OAuth y OpenID.Additionally, ASP.NET Web Forms supports OAuth and OpenID. Estas mejoras de autenticación permiten a los usuarios iniciar sesión en el sitio con las credenciales existentes, desde cuentas como Facebook, Twitter, Windows Live y Google.These authentication enhancements allow users to log into your site using existing credentials, from such accounts as Facebook, Twitter, Windows Live, and 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 base de datos de desarrollo que viene con Visual Studio Express 2013 para Web.By default, the template creates a membership database using a default database name on an instance of SQL Server Express LocalDB, the development database server that comes with Visual Studio Express 2013 for Web.
  • Scripts de cliente y marcos de cliente: puede mejorar las características basadas en servidor de ASP.net incluyendo la funcionalidad de scripts de cliente en páginas de formularios web forms de ASP.net.Client Script and Client Frameworks- You can enhance the server-based features of ASP.NET by including client-script functionality in ASP.NET Web Form pages. Puede usar el script de cliente para proporcionar a los usuarios una interfaz de usuario más enriquecida y con mayor capacidad de respuesta.You can use client script to provide a richer, more responsive user interface to users. 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.You can also use client script to make asynchronous calls to the Web server while a page is running in the browser.
  • Enrutamiento: elenrutamiento de direcciones URL permite configurar una aplicación para que acepte direcciones URL de solicitud que no se asignan a archivos físicos.Routing- URL routing allows you to configure an application to accept request URLs that do not map to physical files. Una dirección URL de solicitud es simplemente la dirección URL que un usuario escribe en el explorador para buscar una página en el sitio Web.A request URL is simply the URL a user enters into their browser to find a page on your web site. El enrutamiento se usa para definir direcciones URL semánticamente significativas para los usuarios y que pueden ayudar con la optimización del motor de búsqueda (SEO).You use routing to define URLs that are semantically meaningful to users and that can help with search-engine optimization (SEO).
  • Administración de Estados: ASP.NET Web Forms incluye varias opciones que le ayudan a conservar los datos en cada página y en toda la aplicación.State Management- ASP.NET Web Forms includes several options that help you preserve data on both a per-page basis and an application-wide basis.
  • Seguridad: una parte importante del desarrollo de una aplicación más segura es comprender las amenazas.Security- An important part of developing a more secure application is to understand the threats to it. Microsoft ha desarrollado una manera de categorizar amenazas: suplantación de identidad, manipulación, rechazo, divulgación de información, denegación de servicio, elevación de privilegios (STRIde).Microsoft has developed a way to categorize threats: Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege (STRIDE). En los formularios Web Forms de ASP.NET, puede Agregar puntos de extensibilidad y opciones de configuración que le permitan personalizar distintos comportamientos de seguridad en los formularios Web Forms de ASP.NET.In ASP.NET Web Forms, you can add extensibility points and configuration options that enable you to customize various security behaviors in ASP.NET Web Forms.
  • Rendimiento: el rendimiento puede ser un factor clave en un proyecto o sitio web correcto.Performance- Performance can be a key factor in a successful Web site or project. Los formularios Web Forms de ASP.NET permiten modificar el rendimiento relacionado con el procesamiento de controles de páginas y servidores, la administración de Estados, el acceso a datos, la configuración y carga de aplicaciones y las prácticas de codificación eficientes.ASP.NET Web Forms allows you to modify performance related to page and server control processing, state management, data access, application configuration and loading, and efficient coding practices.
  • Los formularios Web de internacionalización-ASP.net permiten crear páginas web que pueden obtener contenido y otros datos en función de la configuración de idioma preferida para el explorador o de acuerdo con la elección explícita del idioma del usuario.Internationalization- ASP.NET Web Forms enables you to create web pages that can obtain content and other data based on the preferred language setting for the browser or based on the user's explicit choice of language. El contenido y otros datos se conocen como recursos y estos datos se pueden almacenar en archivos de recursos u otros orígenes.Content and other data is referred to as resources and such data can be stored in resource files or other sources. En una página de formularios Web Forms de ASP.NET, configure los controles para obtener sus valores de propiedad de los recursos.In an ASP.NET Web Forms page, you configure controls to get their property values from resources. En tiempo de ejecución, las expresiones de recursos se reemplazan por recursos del archivo de recursos localizado adecuado.At run time, the resource expressions are replaced by resources from the appropriate localized resource file.
  • Depuración y control de errores: ASP.net incluye características para ayudarle a diagnosticar los problemas que pueden surgir en la aplicación de formularios Web Forms.Debugging and Error Handling- ASP.NET includes features to help you diagnose problems that might arise in your Web Forms application. La depuración y el control de errores se admiten en los formularios Web Forms de ASP.NET para que las aplicaciones se compilen y se ejecuten de forma eficaz.Debugging and error handling are well supported within ASP.NET Web Forms so that your applications compile and run effectively.
  • Implementación y hospedaje: Visual Studio, ASP.net, Azure e IIS proporcionan herramientas que le ayudarán en el proceso de implementación y hospedaje de su aplicación de formularios Web Forms.Deployment and Hosting- Visual Studio, ASP.NET, Azure, and IIS provide tools that help you with the process of deploying and hosting your Web Forms application.

Decidir cuándo crear una aplicación de formularios Web FormsDeciding When to Create a Web Forms Application

Debe considerar detenidamente si desea implementar una aplicación Web mediante el modelo de formularios Web Forms de ASP.NET o cualquier otro modelo, como el marco de MVC de ASP.NET.You must consider carefully whether to implement a Web application by using either the ASP.NET Web Forms model or another model, such as the ASP.NET MVC framework. El marco de MVC no reemplaza el modelo de formularios Web Forms; puede usar cualquiera de los dos marcos para las aplicaciones web.The MVC framework does not replace the Web Forms model; you can use either framework for Web applications. Antes de decidirse a usar el modelo de formularios Web Forms o el marco MVC para un sitio web concreto, sopese las ventajas de cada enfoque.Before you decide to use the Web Forms model or the MVC framework for a specific Web site, weigh the advantages of each approach.

Ventajas de una aplicación web basada en formularios Web FormsAdvantages of a Web Forms-Based Web Application

El marco basado en formularios Web Forms ofrece las ventajas siguientes:The Web Forms-based framework offers the following advantages:

  • Admite un modelo de eventos que conserva el estado sobre HTTP, lo cual favorece al desarrollo de la aplicación web de línea de negocio.It supports an event model that preserves state over HTTP, which benefits line-of-business Web application development. La aplicación basada en formularios Web Forms proporciona docenas de eventos que se admiten en centenares de controles de servidor.The Web Forms-based application provides dozens of events that are supported in hundreds of server controls.
  • Usa un modelo de controlador de página que agrega funcionalidad a las páginas individuales.It uses a Page Controller pattern that adds functionality to individual pages. Para obtener más información, vea controlador de páginas en el sitio web de MSDN.For more information, see Page Controller on the MSDN Web site.
  • Usa el estado de vista o los formularios basados en servidor, lo que puede facilitar la administración de la información de estado.It uses view state or server-based forms, which can make managing state information easier.
  • Funciona bien para los equipos pequeños de desarrolladores web y los diseñadores que deseen aprovechar el gran número de componentes disponible para el desarrollo rápido de aplicaciones.It works well for small teams of Web developers and designers who want to take advantage of the large number of components available for rapid application development.
  • En general, es menos complejo para el desarrollo de aplicaciones, porque los componentes (la clase de Página , los controles, etc.) están estrechamente integrados y normalmente requieren menos código que el modelo de MVC.In general, it is less complex for application development, because the components (the Page class, controls, and so on) are tightly integrated and usually require less code than the MVC model.

Ventajas de una aplicación web basada en MVCAdvantages of an MVC-Based Web Application

El marco de ASP.NET MVC ofrece las ventajas siguientes:The ASP.NET MVC framework offers the following advantages:

  • Facilita la administración de la complejidad, al dividir una aplicación en el modelo, la vista y el controlador.It makes it easier to manage complexity by dividing an application into the model, the view, and the controller.
  • No usa el estado de vista ni formularios basados en servidor.It does not use view state or server-based forms. Esto hace que el marco de MVC sea ideal para los desarrolladores que deseen un control completo sobre el comportamiento de una aplicación.This makes the MVC framework ideal for developers who want full control over the behavior of an application.
  • Usa un modelo de controlador frontal que procesa las solicitudes de la aplicación web a través de un controlador único.It uses a Front Controller pattern that processes Web application requests through a single controller. Esto permite diseñar una aplicación que admite una infraestructura de enrutamiento avanzada.This enables you to design an application that supports a rich routing infrastructure. Para obtener más información, vea front controller en el sitio web de MSDN.For more information, see Front Controller on the MSDN Web site.
  • Proporciona una mayor compatibilidad con el desarrollo basado en pruebas (TDD).It provides better support for test-driven development (TDD).
  • Funciona bien para las aplicaciones web que son compatibles con los grandes equipos de desarrolladores y diseñadores web que necesitan un alto grado de control sobre el comportamiento de la aplicación.It works well for Web applications that are supported by large teams of developers and Web designers who need a high degree of control over the application behavior.