PublicouNathan Fiel Alterado mais de 4 anos atrás
2 Agenda O que é a Internet?
Principais serviços oferecidos pela Internet Histórico da Internet O que é uma aplicação Internet? Tipos de aplicações Internet Como aplicações Web funcionam? Quais são as possibilidades na Web? Vantagens e desvantagens das aplicações Web Plataformas de desenvolvimento Web Tecnologias Web
3 Principais serviços oferecidos pela Internet
Protocolo World Wide Web HTTP / HTTPS / SOAP Correio Eletrônico SMTP / POP / IMAP Troca de Arquivos FTP / SFTP / FTPS Mensagem Instantânea Sockets Tecnologias Web
4 O que é uma aplicação Internet?
5 Tipos de aplicações Internet
7 Como funciona a arquitetura Cliente-Servidor?
Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente através de uma rede de computadores. Cada instância cliente pode enviar requisições de dados para um dos servidores conectados e esperar pela resposta. Por sua vez, o servidor pode aceitar tais requisições, processá-las e retornar o resultado para o cliente. Tecnologias Web
8 Como funcionam aplicações Web?
9 Como funcionam aplicações Web?
Web Site Tradicional versus Aplicação Web Aplicações Web: as páginas entregues aos usuários são construídas dinamicamente por um executável; Web sites tradicionais: as páginas entregues aos usuários são páginas estáticas armazenadas no servidor. Tecnologias Web
11 Vantagens de aplicações Web
Distribuição das aplicações Browser + conexão Internet Dispensa a instalação no cliente Atualização das aplicações Centralizada Instantânea Não é necessário um supercomputador para executar as aplicações Independente de plataforma Tecnologias Web
12 Desvantagens de aplicações Web
A experiência do usuário é pobre se comparada com aplicações desktop Drag-and-Drop Número de controles é limitado Baixa produtividade no desenvolvimento É necessária grande quantidade de scripts de cliente (JavaScript) para melhorar a experiência do usuário JavaScript é uma linguagem pobre e possui um ambiente de desenvolvimento e depuração bastante limitado Tecnologias Web
13 HTTP HyperText Transfer Protocol
14 Características do HTTP
Utiliza o protocolo TCP para transporte Presta o serviço na porta 80 Utiliza pares de mensagens de solicitação e resposta Cada transação resulta no estabelecimento de uma conexão TCP Não armazena informações de estado entre transações (Stateless). Não mantém conexão aberta. As conexões são iniciadas pelos navegadores e encerradas pelo servidor Web após enviar as respostas Tecnologias Web
15 Cliente e servidor HTTP
Gerencia sistema virtual de arquivos e diretórios Mapeia pastas do sistema de arquivos local (ex: c:\htdocs) a diretórios virtuais (ex: /) acessíveis remotamente (notação de URI) Papel do servidor HTTP Interpretar requisições HTTP do cliente (métodos GET/POST/HEAD) Devolver resposta HTTP: código de resposta (200, 404, etc), cabeçalho e dados Papel do cliente HTTP Enviar requisições HTTP (GET/POST/HEAD) a um servidor Requisições contêm URI do recurso remoto, e opcionalmente, cabeçalho e dados (método POST) Processar respostas HTTP recebidas (interpretar cabeçalhos, identificar tipo de dados e interpretar dados) Tecnologias Web
16 Comandos do HTTP Método Descrição GET
Solicita uma página Web e envia dados através da URL HEAD Solicita a leitura do cabeçalho HTTP de uma página Web PUT Solicita o armazenamento de uma página Web POST Solicita uma página e envia dados no corpo da requisição DELETE Remove a página da Web Tecnologias Web
17 A plataforma Web Tecnologias Web
18 Principais métodos HTTP GET
GET: pede ao servidor um arquivo (informado sua URI relativa à raiz do servidor) GET <uri> <protocolo>/<versão> <Cabeçalhos HTTP>: <valores> <linha em branco> GET pode enviar dados através da URI (tamanho limitado) <uri>?dados Método HEAD é idêntico ao GET mas servidor não devolve página, devolve apenas o cabeçalho HTTP Tecnologias Web
19 Principais métodos HTTP POST
POST: envia dados ao servidor POST <uri> <protocolo>/<versão> <Cabeçalhos HTTP>: <valores> <linha em branco> <dados> Tecnologias Web
20 Cabeçalhos HTTP Na requisição passam informações do cliente ao servidor Fabricante e nome do browser, data da cópia em cache, cookies válidos para o domínio e caminho da URL da requisição, etc. Exemplos: User-Agent: Mozilla 5.5 (Compatible; MSIE 6.0; MacOS X) If-Modified-Since: Thu, 23-Jun :34:25 GMT Cookies: id=344; user=Jack; flv=yes; mis=no Na resposta passam informações do servidor ao cliente Tipo de dados do conteúdo (text/xml, image/gif) e tamanho, cookies que devem ser criados, endereço para redirecionamento, etc. Content-type: text/html; charset-iso Refresh: 15; url=/pags/novaPag.html Content-length: 246 Set-Cookie: nome=valor; expires=Mon, :03:00 GMT Tecnologias Web
21 Comunicação HTTP Detalhes
22 HTML Hypertext Markup Language
23 Formulários HTML Os formulários possibilitam colher qualquer tipo de informação para processamento imediato por um script ou para análise posterior usando outros aplicativos Existem vários tipos de formulários, a seguir temos alguns exemplos: Formulários de pesquisa Formulários que nos registram nos sites da Web Formulários de compra de produtos on-line Os formulários são suportados desde o HTML 2.0 Tecnologias Web
24 Formulários HTML Cada formulário contém um elemento form (<form>) que tem controles específicos, como botões, caixas de texto, caixas de seleção e botões submit Após o formulário ser preenchido, ele é submetido ao servidor, ou seja, os dados do formulário são codificados e enviados ao servidor Para que o formulário seja bem-sucedido é preciso ter um script ou aplicativo no servidor que armazene ou manipule os dados enviados O formulário pode enviar seus dados para uma outra página ou enviar contendo os dados Tecnologias Web
25 Elemento form O elemento form é base de todos os formulários criados em páginas Web É considerado um elemento em nível de bloco Elementos em nível de bloco iniciam uma nova linha no navegador Sintaxe do form: <form action="algumaação" method="get ou post"></form> O atributo action define a ação tomada quando o formulário é submetido e geralmente contém o endereço URL do script ou aplicativo que receberá os dados do formulário Se não usarmos o atributo action no elemento form, o formulário será submetido para o mesmo URL onde se localiza a página HTML O formulário ainda pode ser submetido à um da seguinte maneira: <form method="post"></form> Tecnologias Web
26 Elemento form O atributo method pode ter um entre dois valores: get ou post O método get adiciona os dados do formulário ao URL da requisição. Os dados são separados do endereço URL com um ponto de interrogação Exemplo com get: O método post envia os dados do formulário para o URL especificado no atributo action no corpo da requisição O atributo method não é obrigatório. Se não for empregado, será usado o método get Tecnologias Web
27 O que é DHTML O DHTML ou HTML Dinâmico não é algo por si mesmo, mas sim uma coleção de tecnologias funcionando em conjunto para obter resultados interativos O DHTML usa elementos HTML para criar uma página Web que depende de folhas de estilo para formatação e posicionamento de seus elementos, e scripts para alterar dinamicamente conteúdo HTML, estilo e posicionamento, sem ter que recarregar a página Tecnologias Web
28 Características do DHTML
Para que o DHTML funcione, é preciso que três tecnologias sejam suportadas pelo navegador Web: HTML Folhas de Estilo (CSS) Scripts (JavaScript) Dispensa o uso de plug-ins ou de máquinas virtuais, pois os navegadores oferecem suporte nativo à JavaScript Nasceu com o advento dos "quatro": HTML 4, Internet Explorer 4 e Netscape 4 Devido a diferenças existentes entre os navegadores do mercado, o maior desafio quando se usa DHTML é criar páginas Web dinâmicas para qualquer navegador Os scripts são responsáveis pela natureza dinâmica do DHTML O DHTML depende de um método de tratamento de eventos para acompanhar as ações do navegador Web e do usuário Tecnologias Web
29 Common Language Specification Common Language Runtime
30 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 Tecnologias Web
31 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 Tecnologias Web
32 Elementos chaves para programação ASP.NET
33 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 Tecnologias Web
34 Partes de uma Aplicação ASP.NET
35 Web Form O Web form é o elemento chave de uma aplicação Web
36 Componentes do Web Form
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 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 SqlConnection, SqlCommand, OleDbConnection, OleDbCommand, DataSet Data controls oferecem maneiras para se conectar, executar comandos e recuperar dados de BDs e arquivos XML Tecnologias Web
37 Tempo de Vida de um Web Form
38 Eventos no ciclo de vida de uma aplicação Web
39 Eventos no ciclo de vida de uma aplicação Web
40 Eventos no ciclo de vida de uma aplicação Web
Após o browser receber o HTML gerado, o usuário pode inserir texto nas caixas, selecionar opções e realizar outras tarefas até que um evento postback seja disparado, tal como um clique em um botão Em um evento postback, o browser envia os dados da página (view state) de volta ao servidor Quando o servidor recebe o view state, ele cria uma nova instância do Web form, carrega os dados do view state e processa qualquer outro evento ocorrido Ao terminar o processamento, o servidor envia o HTML resultante ao browser e destrói a instância do Web form Tecnologias Web
41 Eventos no ciclo de vida de uma aplicação Web
42 Eventos no ciclo de vida de uma aplicação Web
Quando o usuário para de usar a aplicação Web por um período de tempo (o padrão é 20 minutos), sua sessão expira Se não existirem sessões de outros usuários, a aplicação é finalizada. Isto nem sempre acontece pois a CLR gerencia a memória usando Garbage Collection A coleta de lixo é feita periodicamente e quando encontra um objeto que há algum tempo não é usado, o destrói e libera a memória. Isto significa que não sabemos quando exatamente o evento Application_End ocorre Tecnologias Web
43 Preservando dados de um Web Form
44 Preservando dados de um Web Form
45 Preservando dados de um Web Form
46 Eventos de Aplicação e Sessão
Podemos escrever código para responder à eventos de aplicação e sessão no arquivo Global.asax Eventos de aplicação são usados para inicializar objetos que desejamos manter disponíveis para todas sessões de uma aplicação Web Eventos de sessão são usados para inicilizar objetos que desejamos manter disponíveis para uma sessão individual e não desejamos compartilhar entre sessões Tecnologias Web
47 Eventos de Aplicação e Sessão
Nome do Evento Ocorre quando Application_Start O primeiro usuário visita uma página da aplicação Web Application_End Não existem mais usuários da aplicação Application_BeginRequest No início de cada requisição ao servidor. Uma requisição ocorre toda vez que um browser navega em qualquer uma das páginas da aplicação Web Application_EndRequest No final de cada requisição ao servidor Session_Start Um novo usuário visita uma página da aplicação Web Session_End Um usuário para de requisitar páginas de uma aplicação Web e sua sessão expira. Uma sessão expira após um período de tempo especificado no arquivo Web.config Tecnologias Web
48 Eventos do Web Form Nome do Evento Ocorre quando Page_Init
Os server controls são carregados e inicializados a partir do view state do Web form. É o primeiro passo do ciclo de vida de um Web form Page_Load Os server controls são carregados no objeto Page. As informações do view state estão disponíveis a partir deste ponto Page_PreRender A aplicação está prestes a renderizar o objeto Page Page_Unload A página é descarregada da memória Page_Disposed O objeto Page é retirado da memória. Este é o último evento na vida de um objeto Page Page_Error Uma exceção é disparada Page_AbortTransaction Uma transação é abortada Page_CommitTransaction Uma transação é aceita Page_DataBinding Um server control da página é montado através de uma fonte de dados Tecnologias Web
49 Eventos dos Server Controls
50 Eventos dos Server Controls
51 Eventos dos Server Controls
52 Web Namespaces Namespace Contém classes para System.Web
Os objetos Application, Browser, Cache, Cookies, Exception, Request, Response, Server e Trace. Usamos essas classes na maioria das tarefas da programação Web. O objeto Application definido no Global.asax é baseado na classe Application. System.Web.SessionState O objeto Session. Usamos essas classes para salvar e restaurar itens salvos em variáveis de estado Session. System.Web.Services O objeto WebService. Usamos essas classes para criar e usar os Web Services. System.Web.UI Os objetos Page e Control. Usamos essas classes em um Web form para criar e controlar a UI da aplicação. Web forms são baseados na classe Page. System.Web.UI.WebControls Todos os objetos server controls. Usamos essas classes em um Web form. Tecnologias Web
53 Web Namespaces Namespace Contém classes para
System.Web.UI.HTMLControls Todos os objetos HTML control. Usamos essas classes em um Web form. System.Web.Caching O objeto Cache. Usamos essas classes para controlar o cache no servidor para aumentar a performance da aplicação. System.Web.Mail Os objetos MailMessage, MailAttachment e SmtpMail. Usamos essas classes para enviar mensagens a partir de uma aplicação. System.Web.Security Os módulos e objetos de autenticação. Usamos essas classes para autenticar usuários e prover segurança para uma aplicação. Tecnologias Web
54 Objeto Application O objeto Application é usado para configurar a aplicação, salvar informações de estado e responder à eventos da aplicação Tem propriedades e métodos que oferecem acesso à outros objetos da aplicação Tecnologias Web
55 Objeto Application Propriedade / método Usado para Application
Salvar dados no Application state. Context Acessar os objetos Handler, Trace, Cache, Error e outros no contexto atual. Modules Acessar módulos HTTP. Request Ler uma requisição e acessar os objetos Browser, Cookies, ClientCertificates e Files da requisição corrente. Response Escrever texto ou dados em uma resposta e acessar os objetos Cache, Cookies e Output da resposta corrente. Server Processar requisições e respostas. O objeto Server oferece métodos para URL encoding e decoding. Session Salvar dados no Session state. User Acessar informações de autenticação do usuário que está fazendo a requisição. Aplicações Web permitem acesso anônimo. Tecnologias Web
56 Objeto Page O objeto Page faz o controle da interface com usuário da aplicação Tem propriedades e métodos que oferecem acesso à objetos da interface com usuário Tecnologias Web
57 Objeto Page Propriedade / método Usado para Application
Salvar dados no Application state. Cache Controlar como as respostas são armazenadas no cache do servidor. Controls Acessar os controles da página. Request Ler uma requisição e acessar os objetos Browser, Cookies, ClientCertificates e Files da requisição corrente. Response Escrever texto ou dados em uma resposta e acessar os objetos Cache, Cookies e Output da resposta corrente. Server Processar requisições e respostas. O objeto Server oferece métodos para URL encoding e decoding. Session Salvar dados no Session state. Trace Habilitar ou desabilitar o Trace e escrever no trace log. Tecnologias Web
58 Objeto Request O objeto Request contém informações enviadas pelo browser cliente quando uma página da aplicação é requisitada Tem propriedades e métodos que oferecem acesso à objetos que constroem a requisição Tecnologias Web
59 Objeto Request Propriedade / método Usado para Browser
Determinar as capacidades do browser que está fazendo a requisição. As propriedades de Browser oferecem acesso à versão do browser, fabricante, se suporta cookies e outras informações. ClientCertificates Autenticar o cliente. Cookies Armazenar informações do cliente em cookies. Files Pegar arquivos enviados (upload) pelo cliente. InputStream Ler e escrever em dados brutos enviados na requisição. Tecnologias Web
60 Objeto Response O objeto Response é usado para formular a resposta enviada do servidor para o browser cliente Tem propriedades e métodos que oferecem acesso à objetos que compõem a resposta para o cliente Tecnologias Web
61 Objeto Response Propriedade / método Usado para Cache
Determinar como o servidor armazena as respostas no cache antes de serem enviadas ao cliente. Cookies Configurar o conteúdo dos cookies para enviar ao cliente. Output Manipular os dados brutos retornados ao cliente como resposta. Tecnologias Web
62 Mantendo Estado Context.Handler: este objeto recupera membros públicos de uma classe de um Web form exibido subseqüentemente. Query strings: são usadas para passar informações entre requisições e respostas como parte de um URL. São visíveis ao usuário, portanto não podem conter informações de segurança tais como senhas. Cookies: são usados para armazenar pequenas quantidades de informações no cliente. Os clientes podem recusar cookies. View state: o ASP.NET armazena os itens adicionados à propriedade ViewState da página como campos ocultos. Session state: variáveis de estado Session são usadas para armazenar itens que queremos manter na sessão de um usuário. Application state: variáveis de estado Application são usadas para armazenar itens que queremos disponíveis para todos os usuários da aplicação. Tecnologias Web