NET com C Bruno Inojosa MCP NET Framework
. NET com C# Bruno Inojosa MCP. NET Framework
Aula VI �Tópicos abordados: � AJAX. NET � Web Services
AJAX
Roadmap da Apresentação Visual Silver. Light (‘WPF/e’) WPF • A “Media Web” Riqueza para a camada de apresentacao ASP. NET AJAX HTML + Java. Script • Melhora Navegação • Facilita a Personalização HTML • Grande Alcance Fácil utilização, personalização, diferenciação, riqueza renda/usuário • Aumenta a interação do usuário • Aumenta a Experiência
Conver. Gência Web e Desktop • Aplicação Desktop o o o Interativa Rápida Difícil Implantação Desatualizada Roda no Cliente • Aplicação Web o o o Estática Lenta Fácil Implementação Sempre Atualizada Roda no Servidor RIA - Rich Internet Application
Experiência do Usuário �A web hoje é dinâmica? �O mesmo conteúdo é apresentado a todos os usuários �Aplicações Web ainda perdem de aplicações Desktop �Alternativas � Java Applets � Silver. Light � Macromedia Flash
Problemas em uma aplicação Web • Post-backs forçam que a página seja recarregada a cada clique. • Não mantém o estado da página naturalmente (stateless). • Interfaces ricas são de difícil concepção. • “Lenta” em relação a aplicações de clientes ricos (desktop).
Solução para aplicações Web • RIA – Rich Internet Application • Web 2. 0 AJAX
AJAX Conceitos • AJAX = “Asynchronous Javascript And XML”. • É um conjunto de recursos e tecnologias, presentes há algum tempo, nas linguagens e navegadores atuais. • AJAX não é tecnologia. É um conjunto de técnicas que tem como objetivo promover uma melhor e mais rica experiência de uso. • AJAX faz uso das características da linguagem Java. Script, da portabilidade e flexibilidade do padrão XML e dos recursos de chamada assíncronas que foram implementadas nos navegadores.
Renderização Parcial de Páginas • A renderização de partes de páginas é suportada por um conjunto de controles do servidor e scripts no cliente • Permite atualizar de forma assíncrona pedaços de uma página sem a necessidade do postback completo da página • Principais componentes envolvidos: o o XMLHttp. Request Script. Manager Update. Panel Update. Progress
Xml. Http. Request • Objeto que a linguagem Java. Script implementa e está presente nos navegadores • Tem a capacidade de executar a leitura remota de dados de forma assíncrona, permitindo assim a execução de outras tarefas imediatamente após a chamada • Retorna dados em formato XML e texto • PADRÃO RECONHECIDO PELO W 3 C! http: //www. w 3. org/TR/XMLHttp. Request/ (05/04/06)
Script. Manager • Disponível em System. Web. Ui • Gerencia elementos AJAX em uma página ASP. NET o o Componentes e scripts Renderização parcial de páginas Requisições do cliente Respostas do servidor • Uso obrigatório se forem utilizados os componentes Update. Panel, Update. Progress e Timer
Script. Manager • Proriedades: o Enable. Partial. Rendering – deve possuir valor true (valor-padrão) para habilitar renderização parcial de páginas; alterável somente antes ou durante o evento Init da página o Supports. Partial. Rendering – deve possuir valor true para habilitar renderização parcial de páginas; se não atribuído, o valor é obtido através de consulta ao navegador
Update. Panel • Disponível em System. Web. UI • Controle ASP. NET AJAX que cria um painel atualizável em uma página ASP. NET AJAX, permitindo postbacks baseados em Xml. Http. Request • É possível colocar múltiplos componentes Update. Panel em uma mesma página
Update. Panel <asp: Update. Panel ID="Update. Master“ runat="server"> <Content. Template> <div> <asp: Grid. View ID="Grid. View 1" runat="server" />. . . </asp: Grid. View> </div> </Content. Template> </asp: Update. Panel>
Update. Panel • Ciclo de vida de um postback utilizando o ASP. NET AJAX: o ASP. NET AJAX intercepta as ações de postback da página o Usa XMLHttp. Request para disparar o postback ao servidor que ocorre normalmente o Apenas os conteúdos Update. Panel são retornados o As regiões alteradas no Update. Panel são atualizadas no cliente o Todos os postbacks gerados por controles dentro do Update. Panel serão tratados como postback Ajax com atualizações incrementais da página o Postbacks para controles fora do Update. Panel transcorrerão da forma convencional por padrão
Update. Panel
Update. Panel • Propriedades: o Update. Mode – define quando é realizado a atualização do painel • Always – sempre realiza atualização a qualquer postback • Conditional – realiza atualização quando um postback assíncrono específico ocorre
Update. Panel • Por padrão, todos os controles dentro de um Update. Panel podem disparar eventos para o postback assíncrono daquele Update. Panel • Controles fora de um Update. Panel podem também disparar um postback assíncrono em um Update. Panel • Adiciona-se Triggers em um Update. Panel para permitir que outros controles disparem postback assíncrono <asp: Update. Panel ID="Update. Master“ runat="server">. . . <Triggers> <asp: Async. Post. Back. Trigger Control. ID=“Button 1" Event. Name="Click" /> </Triggers> </asp: Update. Panel>
Update. Progress • Provê feedback no processo de atualização durante um postback assíncrono <asp: Update. Progress ID="Update. Progress 1" runat="server"> <Progress. Template>. . . </Progress. Template> </asp: Update. Progress>
Update. Progress • Propriedades: o Associated. Update. Panel. ID – referência para o Update. Panel cujo postback assíncrono indica que o Update. Progress deve ser mostrado; se o valor não for informado, será associado, por padrão, a qualquer postback assíncrono da página o Dynamic. Layout – indica se o componente possui uma área reservada (false)ou não (true) no design da página
Laboratório 2. 6. 1
ASP. NET AJAX Control Toolkit • Um rico conjunto de controles e extenders que transformam a tarefa de construir uma interface rica utilizando ASP. NET AJAX uma tarefa simples e rápida o Exemplos de fácil compreensão o SDK que simplifica a criação e reutilização de seus próprios controles o Código fonte e documentação completa o Mais de 30 componentes e extenders Projeto não suportado pela Microsoft Este é um projeto comunitário suportado e disponível no Code. Plex
Toolkit Controls Accordion No. Bot Always. Visible. Control Numeric. Up. Down Animation Paging. Bulleted. List Cascading. Drop. Down Password. Strength Collapsible. Panel Popup. Control Confirm. Button Rating Drag. Panel Reorder. List Drop. Down Resizable. Control Drop. Shadow Rounded. Corners Dynamic. Populate Slider Filtered. Text. Box. Watermark Hover. Menu Toggle. Button Modal. Popup Update. Panel. Animation Mutually. Exlcusive. Check. Box Validator. Callout
Aprimorando Controles existentes �Control Extenders � Estender controles ASP. NET com funcionalidades de controles ASP. NET AJAX � Encapsular comportamentos tanto no lado do cliente quanto do lado do servidor � Mesmo modelo de programação de controles ASP. NET <asp: Text. Box runat="server" ID="Text. Box 1" /> <asp: Auto. Complete. Extender runat="server" ID="AC 1” Target. Control. ID="Text. Box 1" Service. Path="Auto. Complete. asmx“ Service. Method="Get. Words" Enabled="true" Minimum. Prefix. Length="1" />
Demonstração
Web Services
O que é Web Service? • É um serviço disponível na Internet, através de um Servidor Web • Possui funções contendo suas regras de negócios, que podem ser acessadas através de aplicativos • Possibilita a comunicação entre Sistemas • Tecnologia que torna possível realizar transações, troca de dados entre empresas, que antes eram difíceis ou impossíveis
Web Services Características • São baseados em Padrões da Web • Os dados trafegam em formato XML, através do protocolo SOAP • Independente de plataforma, ou seja, sistemas heterogêneos podem se comunicar facilmente • Pode retornar vários tipos de dados, como por exemplo uma tabela do banco de dados
Por que Web Services? • Necessidade de Integração entre Negócios (B 2 B) • Tendência do Software como Serviço
Pré-Web Services �Disquete, Email, FTP ou Compartilhamento de Redes �Comunicação Aplicativo X Aplicativo �Banco de Dados �Arquivos (Ex: Texto, como CSV; ou em Protocolo Específico) �Invocação de Objetos Remotos (Ex: CORBA, DCOM, IIOP, ORB)
Pré-Web Services Problemas • Tecnologias dependentes de plataforma • Difícil integração • Criava-se um pequeno protocolo de comunicação • Necessidade de Transformação de Dados • Pouco segura, complexas, caras, baixa produtividade e pouco robustas
Uma solução integrada. . . �Deve ser independente de software e hardware �Prover Serviços através das barreiras existentes entre diferentes companhias �Promover automação Como conseguir tudo isso? Web Services!
Integração entre plataformas Plataforma Integrada Microsoft Web Services Integration Unix AS 400 Linux OS 390
Infraestrutura • Web Services provêm meios de objetos interagirem utilizando a Internet como meio de transmissão (“middleware”) • Baseado em diversos protocolos padrões: o Simple Object Access Protocol (SOAP) o Universal Description, Discovery and Integration (UDDI) o Web Services Description Language (WSDL)
O que é o SOAP? • Simple Object Access Protocol • Define como as mensagens podem ser trocadas entre dois sistemas • Define uma estrutura XML de troca de mensagens que pode chamar e retornar resultados a partir de uma aplicação.
Vantagens do SOAP • Independente de plataforma • Fácil de ‘traduzir’. (decodificar) • Pode ser veiculado pela porta 80, sem a necessidade de abrir portas no firewall
Web App + Web Services HTTP Message HTTP Request HTML HTTP Request GET- POST HTML HTTP Message HTML SOAP Message SOAP Request XML SOAP Message XML Servidor Web Browser Cliente do Web Service Rede HTTP Message HTML Web App HTTP Message HTTP Response HTML Rede SOAP Message XML Web Service SOAP Message SOAP Response XML
O que é o WSDL? • WSDL – Web Services Description Language • Documento XML que define as interfaces de seu Web Service • Mostra os métodos e suas assinaturas
O que é o DISCO e UDDI? • DISCO (Discovery of WS) & UDDI (Universal Description, Discovery and Integration) • “Engine de Busca por Web Services” • “Páginas Amarelas” • http: //uddi. xml. org/
Funcionamento Pesquisa o Serviço http: //www. uddi. org URL de um documento DISCO ou WSDL UDDI Acha o Serviço Cliente Do Web Service http: //yourservice. com HTML ou XML com URL para WSDL Como conversar? (WSDL) http: //yourservice. com/? WSDL Descrições do serviço em XML Conversando (SOAP) http: //yourservice. com/svc 1 XML/SOAP Tempo de Desenvolvimento Tempo de Execução Web Service
Requisitos - Desenvolvimento Visual Studio. NET, Web Matrix, … IIS – Servidor IDE ASP. Net. NET Framework Máquina de Desenvolvimento Código Aplicação IIS ASP. Net. NET Framework Servidor da Aplicação
Requisitos - Produção Cliente Aplicação asmx SOAP (xml) Aplicação IIS ASP. Net. NET Framework Servidor da Aplicação
Consumindo Web Services • Para consumir um web service: o Criar uma classe proxy • Via wsdl. exe • Via Visual Studio o Adicionar uma web reference ao projeto informando a URL do web service o Declarar um objeto do tipo do web service o Invocar os métodos sobre o objeto remoto
Consumindo Web Services • O processo de comunicação entre um cliente e um web service é realizado através de um objeto proxy o Classe proxy é local ao cliente o Responsável pela chamada dos métodos remotos do web service e tratamento dos protocolos (SOAP, HTTP, etc)
Consumindo Web Services • Ferramenta “wsdl. exe” o Cria uma classe proxy para acesso ao web service a partir do documento WSDL de definição do web service o Cria uma classe servidor baseada no documento WSDL de definição do web service • No Visual Studio, adição de uma “web reference” cria a classe proxy o A classe criada é uma subclasse de System. Web. Service. Protocols. Soap. Http. Client. Protoc ol
Consumindo Web Services • Exemplo: Cadastro. Pessoal. WS ws = new Cadastro. Pessoal. WS(); Cadastro. Pessoal. WS. Pessoa p = ws. Busca. Pessoa("Antonio Carlos"); Console. Write. Line(p. Nome);
Criando Web Service • Para criar um web service básico: o Criar um projeto “ASP. NET Web Service” o Marcar as classes que serão disponibilizadas via web service com o atributo [Web. Service] • Definir o valor da propriedade namespace o Marcar os método de acesso remoto via web service com o atributo [Web. Method]
Laboratório 2. 6. 2
- Slides: 49