request response client-sideserver-side linguagem de programação javascriptc#, vb.net processado...
TRANSCRIPT
Adicionando funcionalidades ao Microsoft ASP.NET Web FormAdicionando funcionalidades ao Microsoft ASP.NET Web FormOlavo Oliveira [email protected](85)8699-0511
Modulo 4:Adicionando funcionalidades ao Microsoft ASP.NET Web Form
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
Capítulo 01Trabalhando com arquivos Code-Behind
Trabalhando com arquivos Code-Behind• Meios para implementar código• Mixed Code e Inline Code• Arquivos Code-Behind• Utilizando arquivos Code-Behind
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
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#>
Arquivos Code-BehindArquivos Code-Behind contém a lógico de programação em um único arquivo Web Form
Arquivos Separados
<HTML> <C#>
Capítulo 02Manipulando Eventos Server Control
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
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
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
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
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
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
Capítulo 03Criando classes e componentes utilizando o Visual Studio 2010
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
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.
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.
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.
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.
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.
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
Criando um componenteDEMONSTRAÇÃO
Criar um componenteCriar uma Class LibraryCompilar a solução (Build)
Entendendo Namespace
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
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
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
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
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
Capítulo 04Capturando eventos da página
Capturando eventos da página
• Ciclo de Vida da página• O processo de PostBack• Demonstração: Como tratar os eventos da
página
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
Ciclo de Vida da páginaPreInit
Init
InitComplete
PreLoad
Load
Eventos de
ControleLoadComplete
PreRender
PreRenderComplet
e
SaveStateComplet
e
Render
Unload
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
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.
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.
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.
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 .
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.
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.
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.
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.
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.
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.
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.
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
Eventos da páginaDEMONSTRAÇÃO
© 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.