Introdução ao ASP.NET Tecnologia para Web Enrique Pimentel [email protected] Agenda O que é o ASP.NET? Componentes do ASP.NET Elementos chaves para programação ASP.NET Vantagens do ASP.NET Partes de uma aplicação ASP.NET Web Form Componentes do Web Form Organizando projetos com o IIS Características de aplicações Web O que é o ASP.NET? ASP.NET é a plataforma usada para criar aplicações Web e serviços Web que rodam abaixo do IIS ASP.NET não é a única tecnologia usada para criar aplicações Web, outras tecnologias também são usadas, tais como JSP, PHP, CGI e Perl O que torna o ASP.NET especial é a sua integração com a plataforma Microsoft Componentes do ASP.NET O ASP.NET faz parte da .NET Framework e é composto por diversos componentes: Ferramentas de desenvolvimento Web do Visual Studio .NET System.Web namespaces Controles de Servidor Controles HTML Elementos chaves – ASP.NET Microsoft Internet Information Services (IIS) Linguagens de programação Microsoft Visual Basic .NET Microsoft Visual C# Microsoft Visual J# .NET Framework Microsoft ADO.NET Microsoft Application Center Test (ACT) Vantagens do ASP.NET Integração com Windows Server e ferramentas de programação Com o ASP.NET é mais fácil criar, depurar e instalar aplicações Web porque essas tarefas são realizadas em um único ambiente de desenvolvimento (Visual Studio .NET) As aplicações são compiladas e, portanto, executam mais rapidamente do que scripts interpretados Atualizações podem ser feitas a qualquer momento e dispensam reinicialização do servidor Utilização da .NET Framework, o que simplifica muitos aspectos da programação para Windows Vantagens do ASP.NET Gerenciamento automático de estado para controles de uma página Web (chamados server controls), os quais têm comportamento muito parecido com controles Windows Possibilidade de criar controles de servidor novos e personalizados Métodos de autenticação/autorização nativos Integração com ADO.NET que oferece acesso à bancos de dados Total suporte à Extensible Markup Language (XML), Cascading Style Sheets (CSS) e outros padrões da Web Detecta as características do browser utilizado pelo cliente Partes de uma Aplicação Web O ASP.NET divide uma aplicação Web em três partes: Conteúdo Programa lógico Configuração Partes da Aplicação ASP.NET Parte Tipos de arquivos Descrição Conteúdo Web forms, HTML, imagens, áudio, vídeo e outros Arquivos de conteúdo determinam a aparência de uma aplicação Web. Eles podem conter textos estáticos e imagens assim como elementos que são criados durante a execução da aplicação pelo programa lógico. Programa lógico Arquivos executáveis e scripts Configuração Arquivo de configuração Web, folhas de estilo e configurações do IIS O programa lógico determina como a aplicação responde às ações do usuário. Aplicações ASP.NET possuem uma dynamic-link library (DLL) que roda no servidor e também podem incluir scripts que rodam na máquina cliente Os arquivos de configuração determinam como a aplicação roda no servidor, quem tem acesso, como os erros são tratados e outros detalhes. Web Form O Web form é o elemento chave de uma aplicação Web Um Web form é o cruzamento entre uma página HTML e um Windows form Um Web form tem a mesma aparência e comportamento similar à uma página HTML, mas ele também tem controles que respondem a eventos e rodam código como um Windows form Execução da Aplicação ASP.NET Em uma aplicação ASP.NET, a parte executável de um Web form é armazenada em um assembly (.dll) que roda sobre o controle do ASP.NET worker process (asp_wp.exe), o qual roda em conjunto com o IIS Seqüência de execução: IIS inicia o ASP.NET worker process se ele não estiver rodando. Este por sua vez carrega o assembly associado ao Web form O assembly constrói a resposta ao usuário baseado no conteúdo do Web form e nos programas lógicos que provêm conteúdo dinâmico IIS retorna a resposta ao usuário no formato HTML Componentes do Web Form Componente Exemplos Descrição Server controls TextBox, Label, Button, ListBox, DropDownList Estes controles respondem a eventos do usuário rodando procedures no servidor. Server controls podem manter seu estado. HTML controls TextArea, Table, Image, Submit Button, Reset Button Data controls System components SqlConnection, SqlCommand, OleDbConnection, OleDbCommand, DataSet FileSystemWatcher, EventLog, MessageQueue Representam os elementos padrões HTML. HTML controls são usados quando não é necessário o conjunto completo de características dos server controls. Data controls oferecem maneiras para se conectar, executar comandos e recuperar dados de BDs e arquivos XML Estes componentes oferecem acesso à vários eventos de sistema que ocorrem no servidor Componentes do Web Form Server controls e HTML controls são usados para criar a interface com o usuário em um Web form Data controls e System controls aparecem no Web form somente em tempo de projeto para prover uma maneira visual de alterar suas propriedades e tratar seus seus eventos Em tempo de execução Data controls e System controls não têm uma representação visual Organizando seu projeto com o IIS Aplicações Web somente podem existir em uma localização que tenha sido publicada pelo IIS como um diretório virtual (virtual directory) Um diretório virtual é um recurso compartilhado identificado por um alias que representa uma localização física no servidor O diretório virtual //localhost é o diretório Web raiz em um computador Por padrão, o IIS instala o diretório raiz no boot drive em \Inetpub\wwwroot Características de Aplicações Web Controles Web forms não podem conter controles Windows padrões. Ao invés disso, eles usam Server controls e HTML controls criados especialmente para Web Interface com Usuário A aparência de um Web form é determinada pelo browser que o exibe Diferentes browsers suportam diferentes características do HTML, o que pode mudar a aparência e o comportamento dos Web forms, mas não é preciso preocupar-se pois o ASP.NET trata a maioria dessas diferenças Características de Aplicações Web Tempo de vida Windows forms são instanciados, permanecem na memória o tempo que for necessário e são destruídos Web forms parecem se comportar da mesma forma, mas eles são instanciados, enviados para o browser e, em seguida, destruídos Isso significa que todas as variáveis e objetos declarados em um Web form não estão disponíveis após ele ser exibido Execução O browser é o único software instalado no cliente e toda lógica de negócio roda no servidor Arquivos de um projeto ASP.NET Nome do Arquivos AssemblyInfo.vb AssemblyInfo.cs Global.asax Global.asax.vb Global.asax.cs Styles.css Web.config Projectname.vsdisco WebForm1.aspx WebForm1.aspx.vb WebForm1.aspx.cs WebForm1.aspx.resx Projectname.vbproj Projectname.csproj Projectname.vbproj.webinf o Projectname.csproj.webinfo Conteúdo Todos os atributos que são escritos no assembly compilado, incluindo a versão, o nome da empresa , GUID e etc. Eventos glocais que ocorrem na sua aplicação Web, tais quando a aplicação inicia ou termina. Você pode ter somente um arquivo Global.asax por projeto na pasta raiz do projeto. O código usado em Global.asax. Este arquivo não é mostrado no Solution Explorer. As definições de estilo para usar com o HTML gerado pelo seu projeto. Este arquivo aparece somente nos projetos Visual Basic .NET. As configurações que o seu servidor web usa quando processa o projeto. Descrições de Web Services que o projeto fornece. A descrição visual de um Web form. O código que responde aos eventos no Web Form. Os recursos da linguagem XMl usado pelo Web Form. O arquivo de projeto listando os arquivos e configurações usadas em tempo de desenho. Este arquivo trata o diretório virtual raiz para a aplicação web. Arquivos de um projeto ASP.NET Extensão de arquivo Item de Projeto .aspx .htm .vb or .cs .ascx .asmx .xml .xsd .xslt Descrição Cada Web Form constitui uma página web ASP.NET na sua aplicação. As aplicações podem ter uma ou muitos formulários web. Os Web Web form Forms possuem arquivos de código associados com eles com a extensão .aspx.vb ou aspx.cs para C#. Páginas web que não possuem código do servidor e podem aparecer página HTML como páginas HTML no seu projeto. Código que define objetos na sua aplicação e esta armazenado em Classe ou modulo clases. Controles de usuário que são construídos a partir de outros web forms Web user control e controles de servidor. Web services que exibem classes para execução remota sobre a Web service rede. Arquivos de dados que armazenam informação usada pela sua arquivo XML aplicação. Arquvios de esquema que descrevem o formato e restrições a serem XML Schema aplicados no armazenamento de dados. XML Style Sheet Regras de formatação a serem aplicadas para exibir dados XML Arquivos de Configurações Existem dois arquivos que são usados em ASP.NET para configurar a aplicação Web: global.asax e web.config. global.asax O arquivo global.asax é uma arquivo (classe) opcional utilizado na configuração de uma aplicação Web. Este arquivo deve estar presente no diretório raiz da aplicação Web. Funciona de maneira semelhante as páginas *.aspx. É utilizado para sincronizar qualquer evento exposto pela classe HttpApplication. web.config O arquivo web.config é um arquivo de configurações para aplicações Web no formato XML. Assim como o global.asax não é obrigatório para que a aplicação Web funcione. Se ele não existir o ASP.NET usa um arquivo chamado machine.config como padrão. Geralmente o arquivo web.config é colocado na raiz da aplicação junto com o arquivo global.asax. web.config - Configurações Seção Descrição <appSettings> Utilizada para armazenar suas próprias configurações personalizadas de Aplicativo. <authentication> Configura como o ASP.NET autentica seus usuários. <authorization> Configura a autorização de recursos no ASP.NET. <connectionStrings> Responsável por controlar as configurações do componente de capacidades do navegador. <compilation> Responsável por todas as configurações de compilação. <customErrors> Indica como exibir erros no navegador. <globalization> Responsável por configurar as opções de globalização. <httpHandlers> Responsável pelo mapeamento de URLs de entrada em classes IHttpHandler. <httpModules> Responsável por configurar Módulos de HTTP dentro de um aplicativo. <identity> Controla como o ASP.NET acessa seus recursos. <location> Controla como as configurações se aplicam a um diretório. <pages> Controla configurações de páginas. <processModel> Configura as configurações de modelo de processo do ASP.NET em Sistemas de Servidor da Web do IIS. <sessionState> Configura o Estado de Sessão. <trace> Configura o Trace (Rastreamento). <webServices> Controla as configurações dos Serviços da Web. Armazenando configurações no web.config Existem duas formas de criar uma chave no web config A primeira é através da edição do próprio web.config A segunda é através da aplicação ASP.NET Configuration, acessível através do menu Website. Essa aplicação permite criar várias configurações para o website, entre elas Application Configuration, onde é possível gerenciar as chaves existentes no web.config. Acessando as configurações Para acessar as configurações via programação, são necessários: Incluir o namespace System.Web.Configuration Acessar a propriedade AppSettings da classe estática WebConfigurationManager Exercícios ASP.NET 1. Criar uma aplicação em ASP.NET que realize a conversão de moedas. A aplicação deverá converter valores das seguintes moedas: real, dollar (R$ 2,27), euro (R$ 2,92) e libra (4,26); 2. Altere o programa anterior de modo que o usuário seja capaz de cadastrar moedas e suas respectivas cotações em Reais em tempo de execução. Torres de Hanoi As Torres de Hanoi são um quebra-cabeca muito antigo e conhecido. Ele é constituído de um conjunto de N discos de tamanhos diferentes e três pinos verticais, nos quais os discos podem ser encaixados. Torres de Hanoi Cada pino pode conter uma pilha com qualquer número de discos, desde que cada disco não seja colocado acima de outro disco de menor tamanho. A configuracão inicial consiste de todos os discos no pino 1. O objetivo é mover todos os discos para um dos outros discos, sempre obedecendo à restricão de não colocar um disco sobre outro menor. Torres de Hanoi Um algoritmo recursivo para resolver este problema é o seguinte: procedimento Hanoi(N, Orig, Dest, Temp) se N = 1 então mover o menor disco do pino Orig para o pino Dest; senão Hanoi(N-1, Orig, Temp, Dest); mover o N-ésimo menor disco do pino Orig para o pino Dest; Hanoi(N-1, Temp, Dest, Orig); fim-se fim Exercício ASP.NET Criar uma aplicação web, que dado o número de discos, exiba em um listbox todos os passos para transferir os discos do pino 1 para o pino 3, e o número de passos necessários para executar a tarefa. Deverá ser criada uma classe para implementar o algoritmo.