O que é Web Forms
ASP.NET Web Forms faz parte do ASP.NET estrutura do aplicativo Web e está incluído no Visual Studio. É um dos quatro modelos de programação que você pode usar para criar ASP.NET aplicativos Web, os outros são ASP.NET MVC, Páginas da Web do ASP.NET e ASP.NET Aplicativos de Página Única.
Web Forms são páginas que os usuários solicitam usando o navegador. Essas páginas podem ser escritas usando uma combinação de HTML, script de cliente, controles de servidor e código do servidor. Quando os usuários solicitam uma página, ela é compilada e executada no servidor pela estrutura e, em seguida, a estrutura gera a marcação HTML que o navegador pode renderizar. Uma página ASP.NET Web Forms apresenta informações ao usuário em qualquer navegador ou dispositivo cliente.
Usando o Visual Studio, você pode criar ASP.NET Web Forms. O IDE (Ambiente de Desenvolvimento Integrado) do Visual Studio permite arrastar e soltar controles de servidor para definir sua página de Web Forms. Em seguida, você pode definir facilmente propriedades, métodos e eventos para controles na página ou para a própria página. Essas propriedades, métodos e eventos são usados para definir o comportamento, a aparência e a aparência da página da Web e assim por diante. Para escrever o código do servidor para lidar com a lógica da página, você pode usar uma linguagem .NET como Visual Basic ou C#.
Observação
ASP.NET e a documentação do Visual Studio abrangem várias versões. Tópicos que realçam recursos de versões anteriores podem ser úteis para suas tarefas e cenários atuais usando as versões mais recentes.
ASP.NET Web Forms são:
- Com base na tecnologia de ASP.NET da Microsoft, no qual o código executado no servidor gera dinamicamente a saída da página da Web para o navegador ou dispositivo cliente.
- Compatível com qualquer navegador ou dispositivo móvel. Uma página da Web ASP.NET renderiza automaticamente o HTML compatível com o navegador correto para recursos como estilos, layout e assim por diante.
- Compatível com qualquer linguagem compatível com o Common Language Runtime do .NET, como o Microsoft Visual Basic e o Microsoft Visual C#.
- Criado no Microsoft .NET Framework. Isso fornece todos os benefícios da estrutura, incluindo um ambiente gerenciado, segurança de tipo e herança.
- Flexível porque você pode adicionar controles criados pelo usuário e de terceiros a eles.
ASP.NET Web Forms oferta:
- Separação de CÓDIGO HTML e outro código de interface do usuário da lógica do aplicativo.
- Um conjunto avançado de controles de servidor para tarefas comuns, incluindo acesso a dados.
- Associação de dados avançada, com excelente suporte a ferramentas.
- Suporte para scripts do lado do cliente executados no navegador.
- Suporte para uma variedade de outros recursos, incluindo roteamento, segurança, desempenho, internacionalização, teste, depuração, tratamento de erros e gerenciamento de estado.
ASP.NET Web Forms ajuda você a superar desafios
A programação de aplicativos Web apresenta desafios que normalmente não surgem ao programar aplicativos tradicionais baseados em cliente. Entre os desafios estão:
- Implementando uma interface avançada do usuário da Web – pode ser difícil e entediante projetar e implementar uma interface do usuário usando instalações HTML básicas, especialmente se a página tiver um layout complexo, uma grande quantidade de conteúdo dinâmico e objetos interativos de usuário completos.
- Separação de cliente e servidor – em um aplicativo Web, o cliente (navegador) e o servidor são programas diferentes geralmente em execução em computadores diferentes (e até mesmo em sistemas operacionais diferentes). Consequentemente, as duas metades do aplicativo compartilham muito pouca informação; eles podem se comunicar, mas normalmente trocam apenas pequenas partes de informações simples.
- Execução sem estado – quando um servidor Web recebe uma solicitação para uma página, ele localiza a página, processa-a, envia-a para o navegador e descarta todas as informações da página. Se o usuário solicitar a mesma página novamente, o servidor repetirá toda a sequência, reprocessando a página do zero. Dito de outra forma, um servidor não tem memória de páginas processadas— a página é sem estado. Portanto, se um aplicativo precisar manter informações sobre uma página, sua natureza sem estado poderá se tornar um problema.
- Recursos de cliente desconhecidos – em muitos casos, os aplicativos Web podem ser acessados por muitos usuários usando navegadores diferentes. Os navegadores têm recursos diferentes, dificultando a criação de um aplicativo que será executado igualmente bem em todos eles.
- Complicações com o acesso a dados – ler e gravar em uma fonte de dados em aplicativos Web tradicionais pode ser complicado e com uso intensivo de recursos.
- Complicações com escalabilidade – em muitos casos, os aplicativos Web projetados com métodos existentes não atendem às metas de escalabilidade devido à falta de compatibilidade entre os vários componentes do aplicativo. Geralmente, esse é um ponto de falha comum para aplicativos em um ciclo de crescimento intenso.
Atender a esses desafios para aplicativos Web pode exigir tempo e esforço substanciais. ASP.NET Web Forms e a estrutura ASP.NET abordam esses desafios das seguintes maneiras:
- Modelo de objeto intuitivo e consistente – a estrutura de página ASP.NET apresenta um modelo de objeto que permite que você pense em seus formulários como uma unidade, não como partes separadas do cliente e do servidor. Nesse modelo, você pode programar a página de maneira mais intuitiva do que em aplicativos Web tradicionais, incluindo a capacidade de definir propriedades para elementos de página e responder a eventos. Além disso, ASP.NET controles de servidor são uma abstração do conteúdo físico de uma página HTML e da interação direta entre o navegador e o servidor. Em geral, você pode usar controles de servidor da maneira como você pode trabalhar com controles em um aplicativo cliente e não precisa pensar em como criar o HTML para apresentar e processar os controles e seu conteúdo.
- Modelo de programação controlado por eventos – ASP.NET Web Forms trazer para aplicativos Web o modelo familiar de gravação de manipuladores de eventos para eventos que ocorrem no cliente ou no servidor. A estrutura de página ASP.NET abstrai esse modelo de forma que o mecanismo subjacente de capturar um evento no cliente, transmiti-lo para o servidor e chamar o método apropriado seja automático e invisível para você. O resultado é uma estrutura de código clara e facilmente escrita que dá suporte ao desenvolvimento controlado por eventos.
- Gerenciamento de estado intuitivo – a estrutura de página ASP.NET manipula automaticamente a tarefa de manter o estado de sua página e seus controles e fornece maneiras explícitas de manter o estado das informações específicas do aplicativo. Isso é feito sem o uso intenso de recursos do servidor e pode ser implementado com ou sem enviar cookies para o navegador.
- Aplicativos independentes de navegador – a estrutura de página ASP.NET permite que você crie toda a lógica do aplicativo no servidor, eliminando a necessidade de codificar explicitamente as diferenças nos navegadores. No entanto, ele ainda permite que você aproveite os recursos específicos do navegador escrevendo código do lado do cliente para fornecer um desempenho aprimorado e uma experiência de cliente mais rica.
- .NET Framework suporte ao Common Language Runtime – a estrutura de página ASP.NET é criada no .NET Framework, portanto, toda a estrutura está disponível para qualquer aplicativo ASP.NET. Seus aplicativos podem ser escritos em qualquer linguagem compatível com o runtime. Além disso, o acesso a dados é simplificado usando a infraestrutura de acesso a dados fornecida pelo .NET Framework, incluindo ADO.NET.
- .NET Framework desempenho escalonável do servidor – a estrutura de página ASP.NET permite dimensionar seu aplicativo Web de um computador com um único processador para um web farm de vários computadores de forma limpa e sem alterações complicadas na lógica do aplicativo.
Recursos do ASP.NET Web Forms
- Controles de servidor – ASP.NET controles de servidor Web são objetos em ASP.NET páginas da Web executadas quando a página é solicitada e que renderizam a marcação para o navegador. Muitos controles de servidor Web são semelhantes a elementos HTML familiares, como botões e caixas de texto. Outros controles abrangem comportamentos complexos, como controles de calendário e controles que você pode usar para se conectar a fontes de dados e exibir dados.
- Páginas Mestras – ASP.NET master páginas permitem que você crie um layout consistente para as páginas em seu aplicativo. Uma única página mestra define a aparência e comportamento padrão que você deseja para todas as páginas (ou um grupo de páginas) em seu aplicativo. Então, você pode criar páginas de conteúdo individuais com o conteúdo que você deseja exibir. Quando os usuários solicitam as páginas de conteúdo, eles se mesclam com a página master para produzir uma saída que combine o layout da página master com o conteúdo da página de conteúdo.
- Trabalhar com dados – ASP.NET fornece muitas opções para armazenar, recuperar e exibir dados. Em um aplicativo ASP.NET Web Forms, você usa controles associados a dados para automatizar a apresentação ou a entrada de dados em elementos da interface do usuário da página da Web, como tabelas e caixas de texto e listas suspensas.
- Associação – ASP.NET Identity armazena as credenciais dos usuários em um banco de dados criado pelo aplicativo. Quando os usuários fazem logon, o aplicativo valida suas credenciais lendo o banco de dados. A pasta Conta do projeto contém os arquivos que implementam as várias partes da associação: registrar, fazer logon, alterar uma senha e autorizar o acesso. Além disso, ASP.NET Web Forms dá suporte a OAuth e OpenID. Esses aprimoramentos de autenticação permitem que os usuários façam logon em seu site usando credenciais existentes, de contas como Facebook, Twitter, Windows Live e 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 Visual Studio Express 2013 para Web.
- Script do Cliente e Estruturas de Cliente – você pode aprimorar os recursos baseados em servidor do ASP.NET incluindo a funcionalidade de script do cliente em ASP.NET páginas do Web Form. Você pode usar o script do cliente para fornecer uma interface do usuário mais avançada e responsiva aos usuários. Você também pode usar o script do cliente para fazer chamadas assíncronas para o servidor Web enquanto uma página está em execução no navegador.
- Roteamento – O roteamento de URL permite que você configure um aplicativo para aceitar URLs de solicitação que não são mapeadas para arquivos físicos. Uma URL de solicitação é simplesmente a URL que um usuário insere em seu navegador para encontrar uma página em seu site. Você usa o roteamento para definir URLs semanticamente significativas para os usuários e que podem ajudar com a SEO (otimização do mecanismo de pesquisa).
- Gerenciamento de Estado – ASP.NET Web Forms inclui várias opções que ajudam você a preservar dados por página e em todo o aplicativo.
- Segurança – uma parte importante do desenvolvimento de um aplicativo mais seguro é entender as ameaças a ele. A Microsoft desenvolveu uma maneira de categorizar ameaças: Falsificação, Adulteração, Repúdio, Divulgação de informações, Negação de serviço, STRIDE (Elevação de Privilégio). Em ASP.NET Web Forms, você pode adicionar pontos de extensibilidade e opções de configuração que permitem personalizar vários comportamentos de segurança em ASP.NET Web Forms.
- Desempenho – O desempenho pode ser um fator-chave em um site ou projeto bem-sucedido. ASP.NET Web Forms permite modificar o desempenho relacionado ao processamento de controle de página e servidor, gerenciamento de estado, acesso a dados, configuração e carregamento de aplicativos e práticas de codificação eficientes.
- Internacionalização– ASP.NET Web Forms permite criar páginas da Web que podem obter conteúdo e outros dados com base na configuração de idioma preferencial para o navegador ou com base na escolha explícita de idioma do usuário. O conteúdo e outros dados são chamados de recursos e esses dados podem ser armazenados em arquivos de recurso ou em outras fontes. Em uma página ASP.NET Web Forms, você configura os controles para obter os valores de propriedade dos recursos. Em tempo de execução, as expressões de recurso são substituídas por recursos do arquivo de recurso localizado apropriado.
- Depuração e Tratamento de Erros– ASP.NET inclui recursos para ajudá-lo a diagnosticar problemas que podem surgir em seu aplicativo Web Forms. A depuração e o tratamento de erros são bem compatíveis com ASP.NET Web Forms para que seus aplicativos sejam compilados e executados com eficiência.
- Implantação e hospedagem – Visual Studio, ASP.NET, Azure e IIS fornecem ferramentas que ajudam você com o processo de implantação e hospedagem de seu aplicativo Web Forms.
Decidindo quando criar um aplicativo Web Forms
Você deve considerar cuidadosamente se deseja implementar um aplicativo Web usando o modelo ASP.NET Web Forms ou outro modelo, como a estrutura MVC ASP.NET. A estrutura MVC não substitui o modelo de Web Forms; você pode usar ambas as estruturas para aplicativos Web. Antes de decidir usar o modelo de Web Forms ou a estrutura MVC para um site específico, avalie as vantagens de cada abordagem.
Vantagens de um aplicativo Web baseado em Web Forms
A estrutura baseada em Web Forms oferece as seguintes vantagens:
- Ela suporta um modelo de evento que preserva o estado sobre HTTP, o que beneficia o desenvolvimento de aplicativos Web de linha de negócios. O aplicativo baseado em Web Forms fornece dezenas de eventos que são suportados em centenas de controles de servidor.
- Ela usa um padrão Page Controller que adiciona funcionalidade em páginas individuais. Para obter mais informações, consulte Controlador de Página.
- Ele usa formulários baseados em servidor ou estado de exibição, o que pode facilitar o gerenciamento de informações de estado.
- Ela funciona bem com pequenas equipes de desenvolvedores e Web designers que desejem tirar proveito do grande número de componentes disponíveis para um rápido desenvolvimento do aplicativo.
- Em geral, é menos complexo para o desenvolvimento de aplicativos, porque os componentes (a classe Page , controles e assim por diante) são totalmente integrados e geralmente exigem menos código do que o modelo MVC.
Vantagens de um aplicativo Web baseado em MVC
A estrutura ASP.NET MVC oferece as seguintes vantagens:
- Ela torna mais fácil gerenciar a complexidade ao dividir o aplicativo em modelo, exibição e controlador.
- Ela não utiliza o estado de exibição nem formulários baseados no servidor. Isto torna a estrutura MVC ideal para desenvolvedores que desejam controle completo sobre o comportamento do aplicativo.
- Ela usa um padrão Front Controller que processa as solicitações do aplicativo Web através de um único controlador. Isto permite desenvolver um aplicativo que suporta uma poderosa infraestrutura de roteamento. Para obter mais informações, consulte Front Controller.
- Ela fornece um melhor suporte para desenvolvimento controlado por testes (TDD – test-driven development).
- Ele funciona bem para aplicativos Web com suporte de grandes equipes de desenvolvedores e designers da Web que precisam de um alto grau de controle sobre o comportamento do aplicativo.