request response client-sideserver-side linguagem de programação javascriptc#, vb.net processado...

48
Adicionando funcionalidades ao Microsoft ASP.NET Web FormAdicionando funcionalidades ao Microsoft ASP.NET Web Form Olavo Oliveira Neto [email protected] om (85)8699-0511

Upload: internet

Post on 18-Apr-2015

110 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Adicionando funcionalidades ao Microsoft ASP.NET Web FormAdicionando funcionalidades ao Microsoft ASP.NET Web FormOlavo Oliveira [email protected](85)8699-0511

Page 2: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Modulo 4:Adicionando funcionalidades ao Microsoft ASP.NET Web Form

Page 3: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Adicionando funcionalidades ao Microsoft ASP.NET Web Form• Capítulo 01 – Trabalhando com arquivos

Code-Behind• Capítulo 02 – Manipulando Eventos Server

Control• Capítulo 03 – Criando classes e

componentes utilizando o Visual Studio 2010

• Capítulo 04 – Capturando eventos da página• Laboratório – Adicionando funcionalidade ao

Microsoft ASP.NET Web Form

Page 4: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Capítulo 01Trabalhando com arquivos Code-Behind

Page 5: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Trabalhando com arquivos Code-Behind• Meios para implementar código• Mixed Code e Inline Code• Arquivos Code-Behind• Utilizando arquivos Code-Behind

Page 6: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Meios para implementar códigoExistem três meios para implementar o código

Mixed Code: O código é colocado no mesmo arquivo que o contéudo HTMLInline Code: O código é colocado no mesmo arquivo, porém, em seções diferentes Arquivo Code-behind: Código colocado em arquivos separados

Arquivo Code-Behind é o meio padrão para adicionar código no Visual Studio 2010

Page 7: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Mixed Code e Inline CodeMixed Code: O código é colocado no mesmo arquivo que o conteúdo HTMLNo Inline Code, as marcações e o código são separados por seções dentro do mesmo arquivo

Mixed Code Inline Code

Arquivo Único

Arquivo Único

<HTML>

<C#>

<HTML>

<HTML>

<C#>

Page 8: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Arquivos Code-BehindArquivos Code-Behind contém a lógico de programação em um único arquivo Web Form

Arquivos Separados

<HTML> <C#>

Page 9: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Capítulo 02Manipulando Eventos Server Control

Page 10: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Manipulando Eventos Server Control• O que são os Event Handlers ?• O que são Event Handlers do lado Cliente ?• O que são Event Handlers do lado Servidor?• Criando eventos do lado Servidor

Page 11: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

O que são os Event Handlers ?Um event Handler (Manipulação de Evento) é uma ação que se inicia em resposta a uma requisição gerada pelo usuário.

Os eventos são iniciados

por usuários

Evento

Um evento pode ser executado no lado Cliente ou Servidor

Page 12: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

O que são Event Handlers do lado Cliente ?

Client-side Event Handlers são eventos que são disparados no computador do cliente

Evento Client-Side disparado

Interface com o Usuário

Processamento Server-Side

Servidor

Page 13: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

O que são Event Handlers do lado Servidor?Eventos do tipo Server-Side são utilizados para capturar eventos que são gerados dos

componentes Web ou HTML Server Controls

Evento Server-Side disparado

Interface com o Usuário

Processamento Server-Side

Servidor

REQUEST

RESPONSE

Page 14: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

O que são Event Handlers do lado Servidor?

Diferenças entre Client-Side e Server-Side

Client-Side Server-Side

Linguagem de Programação Javascript C#, VB.NET

Processado no lado Cliente Sim Não

Processado no lado Servidor Não Sim

Compilado Não Sim

Interpretado Sim Não

Acessa recursos do lado Cliente diretamente Não Sim

Page 15: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Criando eventos do lado ServidorPara criar um evento Server-Side é necessário:

Criar o controle que irá gerar o evento no Web FormEscrver o código para o evento a ser manipulado no arquivo Code-Behind que irá disparar o eventoLigar o evento manipulador ao evento do controle

Page 16: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Capítulo 03Criando classes e componentes utilizando o Visual Studio 2010

Page 17: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Criando classes e componentes utilizando o Visual Studio 2010• Princípios da Orientação a Objeto• O que são Tipos, Componentes e Classes?• Criando um componente• Demonstração: como criar classes no

VS2010• Adicionando variáveis e constantes à

classes• Adicionando Propriedades e Métodos à

classe• Adicionando construtores à classe• Acessando componentes no ASP.NET Web

Form

Page 18: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Princípios da Orientação a ObjetoSOLID = Código Sólido

Single Responsibility Principle (SRP), ou, Princípio da Responsabilidade Única.Esse princípio diz que as classes devem ser coesas, ou seja, terem uma única responsabilidade. Classes assim tendem a ser mais reutilizáveis, mais simples, e propagam menos mudanças para o resto do sistema.

Page 19: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Princípios da Orientação a ObjetoSOLID = Código Sólido

Open Closed Principle (OCP), ou Princípio do Aberto Fechado. Diz que as classes devem poder ter seu comportamento facilmente estendidas quando necessário, por meio de herança, interface e composição. Ao mesmo tempo, não deve ser necessário abrir a própria classe para realizar pequenas mudanças. No fim, o princípio diz que devemos ter boas abstrações espalhadas pelo sistema.

Page 20: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Princípios da Orientação a ObjetoSOLID = Código Sólido

Liskov Substitution Principle (LSP), ou Príncipio da Substituição de Liskov. Esse princípio diz que precisamos ter cuidado para usar herança. Herança é um mecanismo poderoso, mas, evitando os casos de Gato-estende-Cachorro, apenas por possuírem algo em comum.

Page 21: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Princípios da Orientação a ObjetoSOLID = Código Sólido

Interface Segregation Principle (ISP), ou Princípio da Segregação de Interfaces.Esse princípio diz que nossos módulos devem ser enxutos, ou seja, devem ter poucos comportamentos. Interfaces que tem muitos comportamentos geralmente acabam se espalhando por todo o sistema, dificultando manutenção.

Page 22: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Princípios da Orientação a ObjetoSOLID = Código Sólido

Dependency Inversion Principle (DIP), ou Princípio da Inversão de Dependências. Esse princípio diz que devemos sempre depender de abstrações, afinal abstrações mudam menos e facilitam a mudança de comportamento e as futuras evoluções do código.

Page 23: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

O que são Tipos, Componentes e Classes?

Tipos Componentes Classes

Tipo é um nome comum para

objetos de valor, estruturas,

referências ou objetos

Componentes são formados

por um ou mais Tipos

compilados em Assembly DLL

Classes são tipos de

referências e são utilizados

como Templates dos objetos

Page 24: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Criando um componenteDEMONSTRAÇÃO

Criar um componenteCriar uma Class LibraryCompilar a solução (Build)

Entendendo Namespace

Page 25: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Como criar classes no VS2010DEMONSTRAÇÃO

Criando um projeto do tipo Class LibraryCriando um método que retorne uma StringCompilando o projeto Class LibraryAdicionando a referência do projeto Class Library

Page 26: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Adicionando variáveis e constantes à classesApós criar uma classe, vamos adicionar variáveis e constantes à

ela.

VariáveisClasse ou de métodoGeralmente são privados

RegionsServem para organizar o código, criando blocos lógicos

ConstantesSão valores que permanecem o mesmo durante a vida doobjetoUtilizado para não ter de repetir valores ou lembrar dadosRepetitivos

Page 27: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Adicionando Propriedades e Métodos à classeAgora vamos adicionar comportamento e assessores à classe

PropriedadesSão encapsulamento das variáveis de modo a controlar as mudanças nas variáveis da classePodem ser públicas, privadas e protegidas, mas geralmente são públicas

MétodosSão ações, comportamentos ou operações da classePodem ser públicos, privados, protegidos ou protegidos

Page 28: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Adicionando construtores à classeCriando métodos construtores à classe, comportamento

obrigatório

Por padrão toda classe tem um construtor público, sem parâmetros Métodos construtores obrigam as classes a executarem comportamentos sempre que instanciadasTambém é uma forma de preencher atributos da classe no ato da instanciaçãoMétodos construtores são herdados e deverão ser preenchidosTambém é possível impedir que uma classe seja instanciada diretamente, por exemplo Pattern Singleton

Page 29: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Adicionando construtores à classeCriando métodos construtores à classe, comportamento

obrigatório

Adiciona a referência ao assembly gerado (componente)Declarar e instanciar a classeUtilizar os métodos e propriedades do objeto

Page 30: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Capítulo 04Capturando eventos da página

Page 31: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Capturando eventos da página

• Ciclo de Vida da página• O processo de PostBack• Demonstração: Como tratar os eventos da

página

Page 32: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaCiclo de vida de uma página se refere a uma série de eventos que ocorrem quando uma

página ASP.NET é requisitada

Page Request Web Server

Page Initialization

Load

Validation

Postback event Handler

Rendering

Page Unloading

Page 33: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaPreInit

Init

InitComplete

PreLoad

Load

Eventos de

ControleLoadComplete

PreRender

PreRenderComplet

e

SaveStateComplet

e

Render

Unload

Page 34: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaPreInit

Gerado após o estágio de início ser concluído e antes do estágio de inicialização começar. Use este evento para o seguinte:

Verifique o a propriedade para determinar se é a primeira vez que a página está sendo carregada. As propriedades e  também foram definidas no momento.Criar ou recriar controles dinâmicosDefina uma página mestra dinamicamenteDefina a propriedade dinamicamenteLer ou definir valores de propriedades de perfil

Page 35: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaInit

Gerado depois de todos os controles foram inicializados e as configurações do skin foram aplicados.O evento Init de controles individuais ocorre antes do evento Init da página.Use este evento para ler ou inicializar as propriedades do controle.

Page 36: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaInitComplete

Gerado no final do estágio de inicialização da página. Apenas uma operação ocorre entre os eventos Init e InitComplete : o acompanhamento de alterações de estado de exibição é ativado. View state de acompanhamento permite aos controles persistir quaisquer valores que são adicionados através de programação para a coleção ViewState. Até que view state de acompanhamento esteja ativado, quaisquer valores adicionados ao view state são perdidos entre postbacks. Controles geralmente ativam view state de acompanhamento imediatamente depois que eles carregam seus eventos Init.Use este evento para fazer alterações no view state que você quer ter a certeza que são persistentes após o próxima postback.

Page 37: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaPreLoad

Gerado após a página for carregada o estado de exibição para si mesmo e todos os controles e depois de processar dados de postback que está incluídos com o Request instância.

Page 38: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaLoad

O objeto Page chama o método OnLoad no objeto Page e, em seguida, recursivamente faz o mesmo para cada controle filho até que a página e todos os controles sejam carregados. O evento Load de controles individuais ocorre após o evento Load da página.Use o método do evento OnLoad para definir propriedades em controles e para estabelecer conexões de banco de dados .

Page 39: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaEventos de controle

Eventos de controle serão disparados neste evento, Click do botão, TextChanged dos controles TextBox, SelectIndexChanged do DropDownList são alguns exemplos.

Page 40: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaLoadComplete

Gerado no final da fase de tratamento de eventos.Use este evento para tarefas que exigem que todos os outros controles na página sejam carregados.

Page 41: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaPreRender

Lançado após o objeto Page ter criado todos os controles que são necessárias para processar a página, incluindo controles filho de controles de composição. (Para fazer isso, o objeto Page chama EnsureChildControls para cada controle e para a página.)O objeto Page gera o evento PreRender no objeto Page e, em seguida, recursivamente faz o mesmo para cada controle filho . O evento PreRender de controles individuais ocorre após o evento PreRender da página.Use o evento para fazer alterações finais no conteúdo da página ou de seus controles, antes do início do estágio de renderização.

Page 42: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaPreRenderComplete

Gerado após cada controle vinculado a dados cuja propriedade DataSourceID está definida e chama o método DataBind. Para mais informações, consulte Data Binding Events for Data-Bound Controls mais adiante neste tópico.

Page 43: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaSaveStateComplete

Gerado após o view state e o estado do controle foram salvas para a página e para todos os controles. Quaisquer alterações para a página ou controles afetam o renderização neste momento, mas as alterações não serão recuperadas durante o próximo postback.

Page 44: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaRender

Este não é um avento; em vez disso, nesta fase de processamento, o objeto Page chama esse método em cada controle. Todos os controles de servidor Web ASP.NET tem um método Render que grava fora do controle de marcação para enviar para o navegador.Se você cria um controle personalizado, você normalmente substitui esse método para produzir controles de marcação.

Page 45: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Ciclo de Vida da páginaUnload

Gerado para cada controle e, em seguida, para a página.Nos controles, use esse evento para fazer a limpeza final para controles específicos, como fechar conexões de banco de dados específicos de controle.Para a própria página, use este evento para fazer o trabalho de limpeza final, como fechar arquivos abertos e conexões de banco de dados, ou finalizando login ou outras tarefas específicas da requisição.

Page 46: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

O processo de PostBackif (this.IsPostBack) { }

Uma página ASP.NET é sempre processada desde do íncio a cada requisiçãoA primeira requisição, o IsPostBack = True

Declarar e instanciar a classeUtilizar os métodos e propriedades do objeto

Page 47: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

Eventos da páginaDEMONSTRAÇÃO

Page 48: REQUEST RESPONSE Client-SideServer-Side Linguagem de Programação JavascriptC#, VB.NET Processado no lado Cliente SimNão Processado

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.