O que é o Web FormsWhat is Web Forms

Web Forms do ASP.NET é uma parte da estrutura de aplicativo web ASP.NET e está incluído no Visual Studio.ASP.NET Web Forms is a part of the ASP.NET web application framework and is included with Visual Studio. É um dos quatro modelos de programação que você pode usar para criar aplicativos web ASP.NET, os outros são ASP.NET MVC, páginas da Web ASP.NET e aplicativos de página única do ASP.NET.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.

Formulários da Web são páginas que os usuários solicitam usando seu navegador.Web Forms are pages that your users request using their browser. Essas páginas podem ser gravadas usando uma combinação de HTML, script de cliente, os controles de servidor e código do servidor.These pages can be written using a combination of HTML, client-script, server controls, and server code. Quando os usuários solicitam uma página, ele é compilado e executado no servidor pelo framework e, em seguida, a estrutura gera a marcação HTML que pode fazer com que o navegador.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. Uma página de Web Forms do ASP.NET apresenta informações para o usuário em qualquer navegador ou dispositivo cliente.An ASP.NET Web Forms page presents information to the user in any browser or client device.

Usando o Visual Studio, você pode criar Web Forms do ASP.NET.Using Visual Studio, you can create ASP.NET Web Forms. O Visual Studio Development IDE (ambiente integrado) permite arrastar e soltar os controles de servidor para dispor de sua página de Web Forms.The Visual Studio Integrated Development Environment (IDE) lets you drag and drop server controls to lay out your Web Forms page. Você pode facilmente definir propriedades, métodos e eventos para controles na página ou para a página propriamente dita.You can then easily set properties, methods, and events for controls on the page or for the page itself. Essas propriedades, métodos e eventos são usados para definir o comportamento da página da web, e a aparência e assim por diante.These properties, methods, and events are used to define the web page's behavior, look and feel, and so on. Para escrever código para manipular a lógica para a página do servidor, você pode usar uma linguagem .NET como Visual Basic ou c#.To write server code to handle the logic for the page, you can use a .NET language like Visual Basic or C#.

Note

Documentação do ASP.NET e Visual Studio abrange várias versões.ASP.NET and Visual Studio documentation spans several versions. Os tópicos que realçam os recursos de versões anteriores podem ser úteis para seus cenários usando as versões mais recentes e as tarefas atuais.Topics that highlight features from previous versions may be useful for your current tasks and scenarios using the latest versions.

Web Forms do ASP.NET são:ASP.NET Web Forms are:

  • Com base na tecnologia Microsoft ASP.NET, no qual o código que é executado no servidor dinamicamente gera saída de página da Web para o navegador ou 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.
  • É compatível com qualquer navegador ou dispositivo móvel.Compatible with any browser or mobile device. Uma página da Web do ASP.NET automaticamente renderiza o HTML em conformidade com o navegador correto para recursos, como estilos, layout e assim por diante.An ASP.NET Web page automatically renders the correct browser-compliant HTML for features such as styles, layout, and so on.
  • É compatível com qualquer linguagem compatível com o .NET common language runtime, como Microsoft Visual Basic e o Microsoft Visual c#.Compatible with any language supported by the .NET common language runtime, such as Microsoft Visual Basic and Microsoft Visual C#.
  • Construído sobre o Microsoft .NET Framework.Built on the Microsoft .NET Framework. Isso fornece todos os benefícios do framework, incluindo um ambiente gerenciado, segurança de tipos e herança.This provides all the benefits of the framework, including a managed environment, type safety, and inheritance.
  • Flexível porque você pode adicionar criados pelo usuário e de controles terceirizados para eles.Flexible because you can add user-created and third party controls to them.

Web Forms do ASP.NET oferecem:ASP.NET Web Forms offer:

  • Separação de HTML e outro código de interface do usuário da lógica do aplicativo.Separation of HTML and other UI code from application logic.
  • Um conjunto avançado de controles de servidor para tarefas comuns, incluindo acesso a dados.A rich suite of server controls for common tasks, including data access.
  • Eficientes vinculação de dados, com suporte a excelente ferramenta.Powerful data binding, with great tool support.
  • Suporte para scripts do lado do cliente que é executado no navegador.Support for client-side scripting that executes in the browser.
  • Suporte para uma variedade de outros recursos, incluindo o roteamento, segurança, desempenho, internacionalização, teste, depuração, manipulação de erros e gerenciamento de estado.Support for a variety of other capabilities, including routing, security, performance, internationalization, testing, debugging, error handling and state management.

Web Forms do ASP.NET ajuda você a superar os desafiosASP.NET Web Forms Helps You Overcome Challenges

Programação de aplicativo Web apresenta desafios que normalmente não surgem ao programar aplicativos tradicionais baseados em cliente.Web application programming presents challenges that do not typically arise when programming traditional client-based applications. Entre os desafios são:Among the challenges are:

  • Implementando uma interface de usuário da Web avançada – pode ser difícil e entediante, projetar e implementar um usuário usando os recursos básicos do HTML, especialmente se a página tiver um layout complexo, uma grande quantidade de conteúdo dinâmico, de interface e completos objetos de usuário interativo.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.
  • Separação entre cliente e servidor -aplicativo na Web, o cliente (navegador) e o servidor são diferentes de programas em execução em computadores diferentes (e até mesmo em diferentes sistemas operacionais).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). Consequentemente, as duas metades do aplicativo compartilhem informações muito pouco; eles podem se comunicar, mas normalmente apenas pequenos blocos de informações simples do exchange.Consequently, the two halves of the application share very little information; they can communicate, but typically exchange only small chunks of simple information.
  • Execução sem monitoração de estado - quando um servidor Web recebe uma solicitação para uma página, ele encontra a página, processa-os, envia para o navegador e, em seguida, descarta todas as informações de 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. Se o usuário solicita a mesma página novamente, o servidor repete a sequência inteira, reprocessamento a página a partir do zero.If the user requests the same page again, the server repeats the entire sequence, reprocessing the page from scratch. Em outras palavras, um servidor não tem memória de páginas que ele tenha processado — página são sem monitoração de estado.Put another way, a server has no memory of pages that it has processed—page are stateless. Portanto, se um aplicativo precisar manter informações sobre uma página, sua natureza sem monitoração de estado pode se tornar um problema.Therefore, if an application needs to maintain information about a page, its stateless nature can become a problem.
  • Recursos de cliente desconhecido -em muitos casos, os aplicativos Web são acessíveis a vários usuários que usam diferentes navegadores.Unknown client capabilities - In many cases, Web applications are accessible to many users using different browsers. Navegadores têm recursos diferentes, tornando difícil criar um aplicativo que será executada igualmente bem em todos eles.Browsers have different capabilities, making it difficult to create an application that will run equally well on all of them.
  • Complicações com acesso a dados -leitura do e gravar em uma fonte de dados em aplicativos Web tradicionais podem ser complicadas e intensivo de recursos.Complications with data access - Reading from and writing to a data source in traditional Web applications can be complicated and resource-intensive.
  • Complicações com escalabilidade – em muitos casos, os aplicativos Web desenvolvidos com métodos existentes não atender às metas de escalabilidade devido à falta de compatibilidade entre os vários componentes do aplicativo.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. Isso geralmente é um ponto de falha comum para aplicativos em um ciclo pesado de crescimento.This is often a common failure point for applications under a heavy growth cycle.

Enfrentar esses desafios para aplicativos da Web pode exigir esforço e tempo consideráveis.Meeting these challenges for Web applications can require substantial time and effort. Web Forms do ASP.NET e a estrutura do ASP.NET enfrentam esses desafios das seguintes maneiras:ASP.NET Web Forms and the ASP.NET framework address these challenges in the following ways:

  • Modelo de objeto consistente e intuitiva -estrutura de página no ASP.NET apresenta um modelo de objeto que permite que você pensar em seus formulários como uma unidade, e não como partes separadas de cliente e 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. Nesse modelo, você pode programar a página de uma maneira mais intuitiva do que em aplicativos Web tradicionais, incluindo a capacidade de definir propriedades para elementos de página e responder a 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. Além disso, os controles de servidor ASP.NET são uma abstração do conteúdo físico de uma página HTML e da interação direta entre navegador e 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. Em geral, você pode usar controles de servidor a maneira como você pode trabalhar com controles em um aplicativo cliente e não precisará pensar sobre como criar o HTML para apresentar e processar os controles e seus conteúdos.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 programação orientada a eventos -Web Forms do ASP.NET trazer para aplicativos da Web, o modelo familiar de escrever manipuladores de eventos para eventos que ocorrem no cliente ou 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. Estrutura de página ASP.NET abstrai esse modelo de tal forma que o mecanismo subjacente de capturar um evento no cliente, transmiti-los para o servidor e chamar o método apropriado é automático e invisível para você.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. O resultado é uma estrutura clara e facilmente escrita de código que dá suporte ao desenvolvimento controlado por evento.The result is a clear, easily written code structure that supports event-driven development.
  • Gerenciamento de estado intuitivo - estrutura de página no ASP.NET manipula automaticamente a tarefa de manter o estado da sua página e seus controles, e ele fornece maneiras explícitas para manter o estado de informações específicas do aplicativo.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. Isso é feito sem uso intenso de recursos do servidor e pode ser implementado com ou sem enviar cookies no navegador.This is accomplished without heavy use of server resources and can be implemented with or without sending cookies to the browser.
  • Aplicativos independentes de navegador -estrutura de página no ASP.NET permite que você crie toda a lógica de aplicativo no servidor, eliminando a necessidade de codificação explícita para diferenças em navegadores.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. No entanto, ele ainda permite tirar proveito dos recursos específicos de navegador escrevendo código do lado do cliente para fornecer melhor desempenho e uma experiência mais avançada do cliente.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.
  • Suporte do .NET framework common language runtime -estrutura de página no ASP.NET se baseia no .NET Framework, portanto, a estrutura inteira está disponível para qualquer aplicativo 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. Os aplicativos podem ser escritos em qualquer linguagem que é compatível com o tempo de execução.Your applications can be written in any language that is compatible that is with the runtime. Além disso, o acesso a dados é simplificado usando a infraestrutura de acesso de dados fornecida pelo .NET Framework, inclusive o ADO.NET.In addition, data access is simplified using the data access infrastructure provided by the .NET Framework, including ADO.NET.
  • Desempenho do servidor escalonável do .NET framework -estrutura de página no ASP.NET permite que você dimensione o seu aplicativo Web de um computador com um único processador para um Web farm de vários computador corretamente e sem alterações complicadas para o aplicativo lógica..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.

Recursos do Web Forms do ASP.NETFeatures of ASP.NET Web Forms

  • Controles de servidor-controles de servidor Web do ASP.NET são objetos em páginas da Web ASP.NET que são executados quando a página é solicitada e renderização a marcação para o navegador.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. Muitos controles de servidor Web são semelhantes a elementos HTML familiares, como botões e caixas de texto.Many Web server controls are similar to familiar HTML elements, such as buttons and text boxes. Outros controles possuem um comportamento complexo, como um calendário, controles e controles que você pode usar para se conectar a fontes de dados e exibir dados.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 mestras-páginas mestras do ASP.NET permitem que você crie um layout consistente para as páginas em seu aplicativo.Master Pages- ASP.NET master pages allow you to create a consistent layout for the pages in your application. Uma única página mestra define a aparência e o comportamento padrão que você deseja para todas as páginas (ou um grupo de páginas) em seu aplicativo.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. Em seguida, você pode criar páginas de conteúdo individuais que contêm o conteúdo que você deseja exibir.You can then create individual content pages that contain the content you want to display. Quando os usuários solicitam as páginas de conteúdo, eles mesclam com a página mestra para produzir saída que combina o layout da página mestra com o conteúdo da página de conteúdo.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.
  • Trabalhando com dados-ASP.NET oferece muitas opções para armazenar, recuperar e exibir dados.Working with Data- ASP.NET provides many options for storing, retrieving, and displaying data. Em um aplicativo Web Forms do ASP.NET, você pode usar controles ligados a dados para automatizar a entrada de dados em elementos de interface do usuário da página da web, como tabelas e listas suspensas e caixas de texto ou uma apresentação.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.
  • Associação-identidade ASP.NET armazena credenciais dos usuários em um banco de dados criado pelo aplicativo.Membership- ASP.NET Identity stores your users' credentials in a database created by the application. Quando os usuários fazer logon, o aplicativo valida suas credenciais ao ler o banco de dados.When your users log in, the application validates their credentials by reading the database. Seu projeto conta pasta contém os arquivos que implementam as várias partes da associação: registrar, fazer logon, alterar uma senha e autorizar o acesso.Your project's Account folder contains the files that implement the various parts of membership: registering, logging in, changing a password, and authorizing access. Além disso, o ASP.NET Web Forms dá suporte a OAuth e OpenID.Additionally, ASP.NET Web Forms supports OAuth and OpenID. Esses aprimoramentos de autenticação permitem que os usuários façam logon em seu site usando as credenciais existentes, de tais contas como Facebook, Twitter, Windows Live e Google.These authentication enhancements allow users to log into your site using existing credentials, from such accounts as Facebook, Twitter, Windows Live, and Google. Por padrão, o modelo cria um banco de dados de associação usando um nome de banco de dados padrão em uma instância do SQL Server Express LocalDB, o servidor de banco de dados de desenvolvimento que vem com o 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.
  • Script de cliente e estruturas de cliente-você pode melhorar os recursos baseados em servidor do ASP.NET, incluindo a funcionalidade de script de cliente em páginas de Web Form do 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. Você pode usar o script de cliente para fornecer uma interface do usuário mais sofisticados e mais ágil na resposta aos usuários.You can use client script to provide a richer, more responsive user interface to users. Você também pode usar o script de cliente para fazer chamadas assíncronas para o servidor Web, enquanto uma página está em execução no navegador.You can also use client script to make asynchronous calls to the Web server while a page is running in the browser.
  • Roteamento-roteamento de URL permite que você configure um aplicativo para aceitar solicitações de URLs que não são mapeadas para arquivos físicos.Routing- URL routing allows you to configure an application to accept request URLs that do not map to physical files. Uma URL de solicitação é simplesmente a URL em que um usuário digita em seu navegador para encontrar uma página em seu site da web.A request URL is simply the URL a user enters into their browser to find a page on your web site. Usar o roteamento para definir URLs que são semanticamente significativos para os usuários e que podem ajudar com a otimização do mecanismo de pesquisa (SEO).You use routing to define URLs that are semantically meaningful to users and that can help with search-engine optimization (SEO).
  • Gerenciamento de estado-Web Forms do ASP.NET inclui várias opções para ajudar a preservam os dados em uma base por página e uma base de todo o aplicativo.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.
  • Segurança-uma parte importante do desenvolvimento de um aplicativo mais seguro é compreender as ameaças a ele.Security- An important part of developing a more secure application is to understand the threats to it. A Microsoft desenvolveu uma maneira de categorizar as ameaças: Falsificação, violação, repúdio, divulgação de informações confidenciais, negação de serviço, elevação de privilégios (STRIDE).Microsoft has developed a way to categorize threats: Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege (STRIDE). No Web Forms do ASP.NET, você pode adicionar pontos de extensibilidade e opções de configuração que permitem personalizar vários comportamentos de segurança no Web Forms do 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.
  • Desempenho-desempenho pode ser um fator-chave em um projeto ou um site bem-sucedido.Performance- Performance can be a key factor in a successful Web site or project. Web Forms do ASP.NET permite que você modifique desempenho eficiente de práticas recomendadas de codificação e relacionado à página e processamento de controle de servidor, gerenciamento de estado, acesso a dados, configuração de aplicativo e o carregamento.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.
  • Internacionalização- Web Forms do ASP.NET permite que você crie páginas da web que pode obter conteúdo e outros dados com base na configuração de idioma preferencial para o navegador ou com base na opção explícita do usuário da linguagem.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. Conteúdo e outros dados são conhecidos como recursos e esses dados podem ser armazenadas em arquivos de recurso ou outras fontes.Content and other data is referred to as resources and such data can be stored in resource files or other sources. Em uma página de Web Forms do ASP.NET, você deve configurar os controles para obter seus valores de propriedade dos recursos.In an ASP.NET Web Forms page, you configure controls to get their property values from resources. Em tempo de execução, as expressões de recurso são substituídas por recursos do arquivo de recurso localizado apropriado.At run time, the resource expressions are replaced by resources from the appropriate localized resource file.
  • Depuração e tratamento de erros-ASP.NET inclui recursos para ajudá-lo a diagnosticar problemas que podem surgir em seu aplicativo de formulários da Web.Debugging and Error Handling- ASP.NET includes features to help you diagnose problems that might arise in your Web Forms application. Depuração e tratamento de erros também têm suporte no Web Forms do ASP.NET para que seus aplicativos compilar e executar com eficiência.Debugging and error handling are well supported within ASP.NET Web Forms so that your applications compile and run effectively.
  • Implantação e hospedagem-IIS, ASP.NET, Azure e Visual Studio fornecem ferramentas que ajudam com o processo de implantação e hospedagem de seu aplicativo 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.

Decidindo quando criar um aplicativo Web FormsDeciding When to Create a Web Forms Application

Você deve considerar cuidadosamente se implementar um aplicativo Web usando o ASP.NET Web Forms modelo ou outro modelo, como o ASP.NET MVC framework.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. A estrutura do MVC não substitui o modelo de Web Forms; Você pode usar ambas as estruturas para aplicativos da Web.The MVC framework does not replace the Web Forms model; you can use either framework for Web applications. Antes de decidir usar o modelo de Web Forms ou MVC framework para um site específico, pondere as vantagens de cada abordagem.Before you decide to use the Web Forms model or the MVC framework for a specific Web site, weigh the advantages of each approach.

Vantagens de um aplicativo da Web baseada em formulários da WebAdvantages of a Web Forms-Based Web Application

A estrutura baseada em Web Forms oferece as seguintes vantagens:The Web Forms-based framework offers the following advantages:

  • Ele dá suporte a um modelo de evento que preserva o estado sobre HTTP, que beneficia o desenvolvimento de aplicativos Web de linha de negócios.It supports an event model that preserves state over HTTP, which benefits line-of-business Web application development. O aplicativo baseado em Web Forms fornece dezenas de eventos que são suportados em centenas de controles de servidor.The Web Forms-based application provides dozens of events that are supported in hundreds of server controls.
  • Ele usa um padrão Page Controller que adiciona funcionalidade para páginas individuais.It uses a Page Controller pattern that adds functionality to individual pages. Para obter mais informações, consulte Page Controller no site do MSDN.For more information, see Page Controller on the MSDN Web site.
  • Ele usa o estado de exibição nem formulários baseados em servidor, que podem facilitar o gerenciamento de informações de estado.It uses view state or server-based forms, which can make managing state information easier.
  • Ele funciona bem para pequenas equipes de desenvolvedores da Web e designers que desejam tirar proveito do grande número de componentes disponíveis para desenvolvimento rápido de aplicativos.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.
  • Em geral, é menos complexo para o desenvolvimento de aplicativos, porque os componentes (a página classe, controles e assim por diante) estão extremamente integrados e normalmente exigem menos código do que o modelo 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.

Vantagens de um aplicativo Web com base no MVCAdvantages of an MVC-Based Web Application

O ASP.NET MVC framework oferece as seguintes vantagens:The ASP.NET MVC framework offers the following advantages:

  • Ele torna mais fácil de gerenciar a complexidade ao dividir um aplicativo em modelo, o modo de exibição e o controlador.It makes it easier to manage complexity by dividing an application into the model, the view, and the controller.
  • Ele não usa estado de exibição nem formulários baseados em servidor.It does not use view state or server-based forms. Isso torna a estrutura MVC ideal para desenvolvedores que desejam controle completo sobre o comportamento de um aplicativo.This makes the MVC framework ideal for developers who want full control over the behavior of an application.
  • Ele usa um padrão Front Controller que processa as solicitações de aplicativo Web por meio de um único controlador.It uses a Front Controller pattern that processes Web application requests through a single controller. Isso permite que você criar um aplicativo que dá suporte a uma infraestrutura de roteamento avançada.This enables you to design an application that supports a rich routing infrastructure. Para obter mais informações, consulte controlador frontal no site do MSDN.For more information, see Front Controller on the MSDN Web site.
  • Ele fornece melhor suporte para o desenvolvimento orientado por testes (TDD).It provides better support for test-driven development (TDD).
  • Ele funciona bem para aplicativos da Web que são suportados por grandes equipes de desenvolvedores e designers da Web que precisam de um alto grau de controle sobre o comportamento do aplicativo.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.