Programação em ASP.net

Documentos relacionados
Programação em ASP S. P net

Programação em ASP.net

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 4 PROF. EMILIO PARMEGIANI

Desenvolvimento Web. Versão 2 Jan/2019. Professor Emiliano S. Monteiro

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 6 PROF. EMILIO PARMEGIANI

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. quarta-feira, 17 de outubro de 12

14/08/2009. Módulo 4

Java para WEB com Struts 2 e Hibernate

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. domingo, 30 de setembro de 12

Introdução ao ASP.NET

Para o carregamento das DropDownList usar métodos:

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani

Introdução ao ASP.NET

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016.

ADO1. Visual Studio 2008 New Web Site: ADO1 em C:\Utilizadors\Fernando\ \ARQSI\TP6

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

Lists. Aproveitando o projeto WebLogin, vamos ver como implementar alguns componentes de lista (DropDownList, RadioButtonList e CheckBoxList).

Tutorial de Aplicação Simples usando Web Forms e MySQL. Luiz Eduardo Guarino de Vasconcelos

C# (C Sharp) - Web Forms (Módulo 1) Avançado

WINDOWS FORMS APPLICATION - Aplicação (Programa) que não usa a CONSOLE

05 Como utilizar POO no ambiente gráfico do C#?

Aula 06 Usando controles em ASP.NET

Introdução ao ASP.NET

VB.NET - Web Forms (Módulo 1) Avançado

Web User Control. No projeto, adicione as pastas Content e Header, conforme a figura

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 3 PROF. EMILIO PARMEGIANI

UFCD 0793 Scripts CGI e Folhas de Estilo Formadora: Sónia Rodrigues

WINDOWS FORMS APPLICATION - Aplicação (Programa) que não usa a CONSOLE

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos aplicar os temas e os skins.

Programação para Internet

Orientação a Objetos - Programação em C++

1 - Ambiente de desenvolvimento

Capítulo 4. Programação em ASP

ACESSO AO BANCO DE DADOS PARTE 2 ALTERAÇÃO, EXCLUSÃO E INCLUSÃO DE REGISTROS

Criação de uma aplicação Web ASP.NET MVC 4

2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. quarta-feira, 12 de setembro de 12

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API

Selecione o WPF Application dentro de Templates > Visual C# > Windows

Programação para web HTML: Formulários

Programação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet

Introdução ao ASP.NET Aula4

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 5 PROF. EMILIO PARMEGIANI

Login. Criar um novo website File > New > WebSite Framework 4.5 Visual C# ASP.NET Empty Web Site Nome do projeto: WebLogin

Autoria Web. Formulários Aula 5. Cleverton Hentz

Aplicação MVC com Class Library

Visual Studio.NET - C# Parte 2 Windows Forms e Web Services

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Integração por Web Services

Bem vindos ao Curso de ASP.NET MVC 3 Razor e C#

Tarefa Orientada 3 Aplic. Manutenção de Produtos Text Box

Repeater no GASweb. Regiões

Capítulo 7. A camada de aplicação

LAB12: Componentes ASP.NET

Java Server Pages (JSP)

Introdução ao ASP.NET Aula3

Recursos Complementares (Tabelas e Formulários)

HyperText Markup Language HTML. Formulário

Programação Estruturada e Orientada a Objetos

Desenvolvendo Websites com PHP

Associação 1:1. Baseado no Diagrama de Classe a seguir, iremos criar as classes de Modelagem que compõem a Associação de Piloto com Carro.

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

Desenvolvimento Web II

Estruturas de Controle em c#

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

Classe PHP Client. A classe Zend\Http\Client fornece uma interface para realizar pedidos HTTP.

Aplicações e Serviços de Internet

Introdução à linguagem JavaScript

Aula 12 Aplicação e prática do JS

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

Trabalho de laboratório sobre HTTP

Adicionando mais tags HTML

Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar. gersonjpl

Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

Objetivos. Aprender o que são JavaBeans e como podem ser usados em páginas JSPs Usando ações-padrão ao invés de scripts

Histórico de Revisões

Formação ASP.NET MVC com C#

Delphi 7 Aula 03 Progressão Geométrica

Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile)

Web Presentation Patterns - Controllers

Introdução a Javascript

Laboratório de Sistemas e Serviços Web

Guia de Configuração Proxy IIS

Fundamentos Programação

Conteúdo Programático JavaScript Web Developer

INTRODUÇÃO AO JQUERY PARTE 2. Prof. Me. Hélio Esperidião

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Sistemas Distribuídos

JSP e Servlet Princípio de MVC

Começando com o AWS IoT

Desenvolvimento Web TCC Turma A-1

Tarefa Orientada 9 Base de Dados Pagamentos

HTML BÁSICO E TEMPLATE VIEW. Gabrielle Amorim Porto

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

Tratamento de Exceções. Julio Cesar Nardi

ASP.Net 4.0 com Mobile Apps

ASP.NET Web Services. José Antônio da Cunha IFRN

Transcrição:

Programação em ASP.net

Programação em ASP.net PostBacks, Round Trips Quando se faz um pedido de uma página.aspx o código da página é executado no servidor A cada pedido a página chama-se a si mesma de modo a executar o código outra vez. Como a página executa no servidor cada acção implica uma ida ao servidor. A web é inerentemente desconectada O browser e o servidor estão conectados apenas durante o tempo necessário para processar o pedido O pedido de uma página implica no servidor uma nova instância da página 1

Programação em ASP.net Ciclo de processamento da página Round Trip O utilizador solicita a página. (A página é solicitada usando um método HTTP GET). A página é executada pela primeira vez, executando processamentos preliminares se tiverem sido programados A página dinamicamente produz HTML para o navegador, semelhante a qualquer outra página HTML O utilizador interage com a página e submete a informação clicando num botão. A página é enviada para o servidor Web. ( O navegador executa um método HTTP POST, que no ASP.NET é conhecido como um postback). Especificamente, a página é remetida de volta a si mesma. No servidor Web, a página executa novamente. As informações que o utilizador introduziu estão disponíveis para o código da página. A página executa o processamento que estiver programado. A página dinamicamente produz HTML para o navegador, semelhante a qualquer outra página HTML 2

Programação em ASP.net Transferir informação (post) para outra página Usando hyperlinks na página Redireccionar programaticamente forçando o browser a pedir outra página Método Redirect Equivalente a um link Comando HTTP GET Informação transferida pela QueryString Redireccionar programáticamente transferindo o control para outra página na mesma aplicação Web Método Server.Transfer Comando HTTP POST Permite à página destino ler valores dos controlos e propriedades públicas da página inicial 3

Programação em ASP.net Cross-Page Configurar Cross-Page o que permite especificar outra página quando se faz post da corrente Cross-Page é a possibilidade de enviar informação para outras páginas Na página destino pode-se aceder às propriedades publicas da inicial e aos valores dos controlos. Definir no botão de submit a página destino PostBackUrl -> TargetPage.aspx 4

Programação em ASP.net Cross-Page (cont.) 1- Aceder à informação - Controlos Propriedade Page.PreviousPage Método FindControl if (Page.PreviousPage!= null) { TextBox SourceTextBox = (TextBox)Page.PreviousPage.FindControl( tbox1"); if (SourceTextBox!= null) { Label1.Text = SourceTextBox.Text; } } 5

Programação em ASP.net 2 - Aceder à informação - Propriedades Definir propriedade publica na página inicial public string Cidade{ get { return ddlcidade.selecteditem.text; }} Definir uma referência na página destino para a página inicial <%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> Na página destino aceder à propriedade Label1.Text = PreviousPage.Cidade; 6

Programação em ASP.net Links no MSDN: Cross-Page Posting in ASP.NET Web Pages http://msdn2.microsoft.com/en-us/library/ms178139(vs.80).aspx Redirecting Users to Another Page http://msdn2.microsoft.com/en-us/library/x3x8t37x.aspx How to: Pass Values Between ASP.NET Web Pages http://msdn2.microsoft.com/en-us/library/6c3yckfw.aspx 7

Ciclo de vida da página

Ciclo de vida da página Modelo de compilação e classes parciais Uma Web Form deriva da classe System.Web.UI.Page Dois componentes: Code behind file- xxx.aspx.cs - contém o código para os eventos e outros métodos relacionados com a página Public parcial class _Default protected void Page_Load(object sender, EventArgs e) {if (!Page.IsPostBack) Designer file xxx.aspx que contém declarações de controlos HTML e eventos. <asp:radiobuttonlist ID="rbl" runat="server" AutoPostBack="True" OnSelectedIndexChanged="rbl_SelectedIndexChanged"> 9

Ciclo de vida da página Ciclo de vida da página Para cada pedido a página é instanciada de novo, perdendo todos os valores e estado anterior Para manter a informação tem de se usar um mecanismo de gestão de estado: Application, Session, Variáveis de Cache ou Cookies. A classe Page implementa o método ProcessRequest da interface IHttpHandler, responsável por todas as fases do ciclo de vida da página Durante a execução da página são lançados vários eventos. 10

Sequência de Eventos Sequência de Eventos 1 PreInit Todos os controlos criados no design são inicializados com os seus valores por omissão. Neste evento podem ser criados controlos dinâmicos. Pode-se fazer override do método. protected override void OnPreInit(EventArgs e) { //custom code base.onpreinit(e); } Permite a definição dinâmica da Master Page e do theme aplicado à página. 11

Sequência de Eventos 2 Init Os controlos da página são inicializados e a propriedade UniqueID de cada controlo é definida. Os skin são aplicados aos controlos. O ViewState dos controlos ainda não está disponível. 3 InitComplete Apenas ocorre quando é um postback e consiste na recuperação do estado interno da página através dos dados guardados no Viewstate e no ControlState. O estado interno dos controlos é actualizado com os dados provenientes do formulário enviado HTTP Post Data 4 Load Podem ser criados controlos dinâmicos e definidas propriedades dos controlos. O métod IsPostBack permite verificar se é um postback 12

Sequência de Eventos 4 Load (cont) São gerados os eventos servidores dos controlos. Por exemplo, o evento Click gerado pelo controlo Button. 5 PreRender Começa a fase de geração do HTML da página. É o ultimo evento onde se pode alterar o valor dos controlos. 6 SaveViewState, SaveControlState A página inicia o armazenamento dos dados internos mantidos por todos os controlos. Os dados são guardados num HTML input escondido <input type="hidden" name=" VIEWSTATE" id=" VIEWSTATE" value="/wepdwukmtk3mdmwmzewna. 13

Sequência de Eventos 6 - Render É gerado o HTML para todos os controlos existentes na árvore de controlos da página. O evento RenderControl é chamado recursivamente para todos os controlos. 7 UnLoad Permite efectuar a limpeza de eventuais recursos usados durante o processamento Links [ASP.NET Page Life Cycle] http://msdn2.microsoft.com/en-us/library/ms178472.aspx [ASP.NET Page Lifecycle] http://www.codeproject.com/useritems/lifecycle.asp http://codebetter.com/blogs/raymond.lewallen/archive/2005/03/10/59583.aspx 14

Eventos Exemplo de override de um evento A master page é acrescentada à página no evento PreInit. A alteração ou substituição da master page deve ser realizada nesse evento protected override void OnPreInit(EventArgs e) { base.onpreinit(e); //criar variáveis com o controlo da master Label lb = (Label)Page.Master.FindControl("LabelMaster"); lb.text = Texto alterado"; // pode tambem alterar a master page //Page.MasterPageFile = "~/MasterPage2.master"; } 15

Trace Trace Permite detectar erros na página e ver os vários eventos que ocorrem na página Document -> Properties - > Trace = true Informação gerada: Trace Information Control Tree Session state Aplication state Request Cookie Collection Response cookie Collection Headers Collection Response headers collection Form Collection QueryString Collection Server variables 16

Trace Inserir Informação no Trace Trace.Warn("debugging", "Radio Button SelectedIndexChanged "); Excerto da Informação de trace aspx.page aspx.page aspx.page aspx.page aspx.page aspx.page aspx.page aspx.page debugging aspx.page End ProcessPostData Begin PreLoad End PreLoad Begin Load End Load Begin ProcessPostData Second Try End ProcessPostData Second Try Begin Raise ChangedEvents Radio Button SelectedIndexChanged End Raise ChangedEvents 17

Trace O trace pode ser ligado para toda a aplicação sendo mostrada a informação noutra página Link MSDN [Walkthrough: Using Tracing in Visual Web Developer to Help Find Web Page Errors] http://msdn2.microsoft.com/en-us/library/yc8h9b0b(vs.80).aspx 18

Eventos Server Control Event Model Os eventos associados aos server control são originados nos clientes mas processados no servidor protected void Bt_Click(object sender, EventArgs e) { // código de processamento do evento } Asp.net captura o evento, transmite e interpreta o evento Apenas alguns eventos geram chamada ao servidor Button -> Click, Calendar -> SelectionChanged Para outros eventos é necessário AutoPostBack=true; CheckBox -> CheckedChange Server control não suportam eventos com grande ocorrência OnMouseOver, OnMouseOut 19

Eventos Argumentos dos eventos protected void Bt_Click(object sender, EventArgs e) Objecto que provocou o evento object sender Um objecto evento que contém informação específica sobre o evento EventArgs e CommandEventArgs e Propriedades: CommandName, CommandArgument protected void btsubmit_command(object sender, CommandEventArgs e) 20

Eventos Propriedades CommandName e CommandArgument <h3>button CommandName Example</h3> Click on one of the command buttons. <asp:button id="button1" Text="Sort Ascending" CommandName="Sort" CommandArgument="Ascending" OnCommand="CommandBtn_Click" runat="server"/> <asp:button id="button2" Text="Sort Descending" CommandName="Sort" CommandArgument="Descending" OnCommand="CommandBtn_Click" runat="server"/> <br><br> 21

Eventos void CommandBtn_Click(Object sender, CommandEventArgs e) { switch(e.commandname) { case "Sort": // Call the method to sort the list. Sort_List((String)e.CommandArgument); break; case "Submit": // Display a message for the Submit button being clicked. Message.Text = "You clicked the Submit button"; // Test whether the command argument is an empty string (""). if((string)e.commandargument == "") 22

Criação dinâmica de controlos protected String[] links= {"http://www.sapo.pt","http://www.tsf.pt"}; foreach (String str in links) { HyperLink hl = new HyperLink(); hl.text = str; hl.navigateurl = str; PanelLinks.Controls.Add(hl); LiteralControl lc = newliteralcontrol("<br>"); PanelLinks.Controls.Add(lc); } 23

Criação dinâmica de uma tabela int n = 5; int k = 0; Table ta = new Table(); for (int i = 0; i < n; i++) { TableRow tr = new TableRow(); for (int j = 0; j < n; j++) { TableCell tc = new TableCell(); tc.text = k.tostring(); tr.cells.add(tc); k++; } ta.rows.add(tr); } Panel1.Controls.Add(ta); } 24