desenvolvimento asp.net. 1 framework.net common language runtime assembly garbage collection...

98
Desenvolvimento ASP.net

Upload: internet

Post on 17-Apr-2015

117 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

Desenvolvimento ASP.net

Page 2: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

2

Desenvolvimento ASP.net Framework .net

Common Language Runtime Assembly Garbage Collection

Conceitos de C# Características da Linguagem Operadores e estruturas

ASP .net Paradigma ASP.net Visual Studio .NET Web Forms, Server Controls e User Controls Gestão do estado ADO .Net

Page 3: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

Framework .net

Page 4: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

4

Visão .net

Page 5: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

5

Framework .net Conjunto de tecnologias para o

desenvolvimento e utilização de componentes para a criação de: Web Forms Web Services Aplicações Windows

Suporta todos as fases da produção de Software Desenvolvimento Debugging Distribuição Manutenção

Page 6: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

6

Common Language Runtime - CLR

Ambiente que permite a execução em tempo real de aplicações.

Fornece um conjunto de serviços, ao nível das fases de desenvolvimento, de distribuição e de execução, que melhoram o desempenho da aplicação.

Page 7: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

7

CLR - Serviços Fase de Desenvolvimento

Diversas linguagens de programação Aumento de produtividade

Fase de Instalação Processo de instalação resume-se a uma cópia de

ficheiros (XCOPY) A gestão de versões de componentes é feita no

processo de compilação Fase de Execução

Performance Escalabilidade Disponibilidade

Page 8: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

8

CLR - Arquitectura

Class Loader

MSIL to NativeCompilers (JIT)

CodeManager

GarbageCollector (GC)

Security Engine Debug Engine

Type Checker Exception Manager

Thread Support COM Marshaler

Base Class Library (.NET Framework) Support

Gere a metadata e o carregamento das classes necessárias.

Converte código MSIL para código nativo optimizado

Controla a execução do código

Gestão de memória

Procedimentos de segurança baseados na identificação do utilizador e na localização do código

Permite fazer debug da aplicação

Impede conversões inadequadas e gere o acesso às variáveis

Tratamento de erros

Fornece classes e interfaces para utilização de threads

Sequencia a distribuição dos componentes

Faz a integração com a .NET Framework class library.

Page 9: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

9

CLR - Características

Sistema Comum de Tipos Conversão directa dos tipos de informação da

Linguagem de programação para os da Framework Compilador Just-in-time (JIT)

O JIT converte o código intermédio (MSIL) em código nativo optimizado

Gestão de memória – Garbage Collection Evita problemas de “falta de memória disponível”

Tratamento de Excepções Permite um tratamento de erros mais elegante

Gestão de Threads

Page 10: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

10

Compilação e Execução

Class LoaderClass LoaderClass LoaderClass Loader

JIT CompilerJIT Compilerwith optionalwith optionalverificationverification

JIT CompilerJIT Compilerwith optionalwith optionalverificationverification

ExecutionExecution

Security ChecksSecurity Checks

EXE/DLL(MSIL and

metadata)

EXE/DLL(MSIL and

metadata)

ClassLibraries

(MSIL and

metadata)

ClassLibraries

(MSIL and

metadata)

Trusted,pre-JITedcode only

Call to anuncompiled

method

Runtime Engine

ManagedNative Code

CompilerCompiler SourceCode

SourceCode

Page 11: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

11

Assembly

Contêm código e metadata para o CLR Constitui-se como unidade básica de

distribuição Podem ser do tipo EXE e DLL

Page 12: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

12

DEMO 01: ildasm.exe Desenvolver uma pequena aplicação em VB .NET e em

C# Utilizar a aplicação ildasm para verificar o código MSIL

gerado

Page 13: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

13

DEMO 01 Ficheiro Demo1.cs

csc /t:exe /out:Demo1CS.exe Demo1.cs ildasm Demo1CS.exe

using System;namespace Ades{ public class Demo { public static void Main() { Console.WriteLine("Ola Mundo"); Console.ReadLine(); } }}

Page 14: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

14

DEMO 01

Ficheiro Demo1.vb

vbc /t:exe /out:Demo1VB.exe Demo1.vb ildasm Demo1VB.exe

Imports Systemnamespace Ades public class Demo

public Shared Sub Main() Console.WriteLine("Ola Mundo") Console.ReadLine() end Sub

end classend namespace

Page 15: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

15

Algoritmo “Garbage Collection”

Espera que todas as threads terminem Verifica quais os objectos que estão

referenciados. A memória ocupada pelos objectos não referenciados é libertada.

Desloca os objectos válidos para a “compact heap”

Actualiza as suas referências

Page 16: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

16

Garbage Collection

Page 17: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

Conceitos de C#

Page 18: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

18

Introdução ao C#

Linguagem baseada no C/C++ com inspiração no Java preserva investimentos e conhecimentos

adquiridos permite um código mais “limpo” possui construções sintácticas especiais

para retirar partido da framework Tudo são objectos Ficheiros têm extensão .cs

Page 19: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

19

Tipos de dados object string sbyte, short, int, long byte, ushort, uint, ulong char float, double, decimal bool

Estes tipos são alias para os tipos definidos na framework

Por exemplo, int == System.Int32

Page 20: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

20

Classes e namespaces

Organização do código dentro de classes

Classes organizadas dentro de namespaces

namespace Demo {public class MyClass {...}

}

Page 21: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

21

Métodos Sintaxe semelhante ao C/C++ Podem ser públicos ou privados Suporta overloading

public class MyHelloWorld {...public void SayHello(){ ... }

private void SetTitle(String Title){ ... }

}

Page 22: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

22

Passagem de parâmetros Por valor Por referência

out – parâmetro de saída ref – parâmetro de entrada e saída

public void func1(int x){ ... }

public void func2(out int x){ ... }

public void func2(ref int x){ ... }

Page 23: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

23

Herança

Apenas existe herança simples

public class MyClassBase {

...

public void Func() { ... }

}

public class MyClassDeriv : MyClassBase {

...

public new void Func() { base.Func(); ... }

}

Page 24: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

24

Propriedades

Sintaxe alternativa para acesso a membros de dados da classe mas com as vantagens dos métodos

public class Button : Control{

private string m_caption;public string Caption {

get { return m_caption; }set { m_caption = value; Repaint(); }

}...

}

Page 25: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

25

Operadores

Atribuição =

Relacionais < <= > >= == !=

Lógicos && || !

Aritméticos + - * / % += -= *= /= ++ --

Page 26: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

26

Criação de objectos

// definição da classe

public class MyClass { ... }

// definição da variável

MyClass obj;

// criação do objecto

obj = new MyClass();

Page 27: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

27

Construtores

Seguem as regras do C/C++ Mesmo nome da classe Sem tipo de retorno Podem ter ou não argumentos

public class MyClass {...public MyClass() { ... }public MyClass(String Title) { ... }

}

Page 28: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

28

Ciclos// repetição n vezesfor (int x = 0; i < vec.Length; i++)

Console.WriteLine(vec[i]);

// repetição condicionalint i = 0;while (i < vec.Length){

Console.WriteLine(vec[i]); i++;

}

// enumeração (colecções)foreach (String x in vec)

Console.WriteLine(x);

Page 29: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

29

Estruturas Condicionais

// teste de decisãoif (i < vec.Length)

Console.WriteLine(vec[i]);else

Console.WriteLine(“Erro!!!”);

// teste múltiploswitch (x){

case 1: ...; break;case 2: ...; goto case 3;case 3: ...; break;default: ...; break;

}

Page 30: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

ASP.net

Page 31: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

31

O que é o ASP.net?

Sucessor da tecnologia Active Server Pages

Independente da linguagem utilizada Independente do browser cliente Informação inserida no cliente é

directamente processada no servidor (conceito de Web Form)

Criação de aplicações Web distribuídas por meio de “Web Services”

Page 32: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

32

IIS – Internet Information Server

Servidor Web produzido pela Microsoft Incluído no

Windows 2000, Windows XP Professional, Windows 2003

Suporte para ASP e ASP.Net Servidor IIS do DEI – w2ks.dei.isep.ipp.pt Referencia local ao IIS - localhost

Page 33: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

33

Colocação de conteúdos ASP.net no IIS

Num servidor IIS local Aceder a c:\inetpub\wwwroot Criar uma directoria para colocar as páginas

do site Classificar essa directoria como sendo uma

Directoria Virtual (recorrendo a Computer Management no painel de controlo)

O acesso web é feito pela URL http://localhost/nomeDirectoriaVirtual

Page 34: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

34

Colocação de conteúdos ASP.Net no IIS

No w2ks Os alunos de ADES têm uma directoria com

o nome de xxxxxxw$ (onde xxxxxx representam os 6 dígitos da direita do numero do aluno)

Essa directoria está classificada como directoria virtual (com nome xxxxxx).

Para colocar conteúdos nessa directoria devem aceder a \\w2ks\xxxxxxw$

O acesso web é feito pela URL http://w2ks.dei.isep.ipp.pt/xxxxxx

Page 35: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

35

Aplicação ASP.net

XML Data Database

InternetInternet

Page1.aspx

Page2.aspx

WebServices

WebServices ComponentsComponents

Web Forms

Code-behind pages

global.asax

Web.config

machine. config

ASP.NET Web Server

Out

put C

ache

Clients

Page 36: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

36

Modelo de Execução ASP.net

Page 37: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

37

Visual Studio .NET

Um só IDE (Integrated Development Environment) para múltiplas linguagens e múltiplos tipos de projectos

Múltiplas linguagens num só projecto Múltiplos projectos numa só solução Integra browser Permite efectuar debbug Gera código .net

Page 38: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

38

Templates de Projectos

A lista dos templates de projectos baseia-se no perfil do utilizador e na escolha do tipo de projecto

Page 39: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

39

IDE VS.netTo

olbo

x

Task List

SolutionExplorer

Dynamic Help

Editor/Browser

Properties

Server Explorer

Object Browser

Page 40: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

40

Processo de Desenvolvimento

Fase de análise e especificação

Fase de análise e especificação

CompilarCompilar

Fase detestes

Fase detestes

Produzir a interfacee escrever código

Produzir a interfacee escrever código

Criar um projecto

Criar um projecto

Visual Studio .NET

DisponibilizarDisponibilizar

Page 41: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

41

Ficheiros da aplicação Web

Solution files (.sln, .suo) Project files (.vbproj, .csproj) Web application files

Web forms (.aspx) User Controls (.ascx) Web services (.asmx) Classes, code-behind pages (.cs, .vb) Global application classes (.asax) Web.config file

Project assembly (.dll)

Page 42: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

42

Estrutura de Ficheiros da Aplicação Web

wwwrootwwwroot

BinBin

InetpubInetpub

ProjectAProjectA

My DocumentsMy Documents

Development FilesDevelopment Files

Assembly FilesAssembly Files

WebForm1.aspx

WebForm1.aspx.cs(Code-behind page)

Visual StudioProjects

Visual StudioProjects

SolutionSolution

Solution.sln ProjectA.csproj

ProjectA.dllBuild

Page 43: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

43

DEMO 02: Visual Studio .NET Apresentação do IDE VS.NET Criar um Projecto de Aplicação Web em C#

Page 44: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

44

O que são Web Forms?

Ficheiros com extensão aspx Constituídos essencialmente por:

Atributo Page (directiva @Page)

Atributo Body

Atributo Form

<%@ Page language="c#“Codebehind="WebForm1.aspx.cs”Inherits=“nomeAplicacao.WebForm1”%>

<%@ Page language="c#“Codebehind="WebForm1.aspx.cs”Inherits=“nomeAplicacao.WebForm1”%>

<body MS_POSITIONING="GridLayout"><body MS_POSITIONING="GridLayout">

<form id="Form1" method="post" runat="server"><form id="Form1" method="post" runat="server">

Page 45: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

45

Web Forms – Modelo de Objectos

As Web Forms possuem um modelo de objectos interno constituído por: Objecto Server

Representa o Servidor Web Objecto Page

Representa a página Web Objecto Request

Representa o pedido efectuado pelo browser cliente Objecto Response

Represente a resposta a enviar ao cliente pelo servidor

Page 46: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

46

Web Forms – Atributo FORM

Dentro do atributo FORM colocam-se controlos denominados “Server Controls”

Web Server Controls Intrinsic controls (asp:TextBox) Validation controls (asp:RequiredFieldValidator) Rich controls (asp:Calendar) List-bound controls (asp:DataGrid ) Internet Explorer Web Controls

(http://www.asp.net/IEWebControls/Download.aspx) HTML Server Controls

Controlos HTML básicos (DIV, IMG, HR ,...)

Page 47: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

47

Server Controls

Runat=“server” São executados no Servidor Web Armazenam informação de estado (viewstate)

Têm funcionalidades intrínsecas Modelo de programação comum

Todos têm os atributos Id e Text Geram código HTML específico para o browser

cliente

<asp:Button id=“Button1” runat=“server” Text=“Submit”/>

<asp:Button id=“Button1” runat=“server” Text=“Submit”/>

Page 48: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

48

HTML server controls Baseados nos elementos HTML

Runat=“server”

Existem no namespace System.Web.UI.HtmlControls

<input type="text" id="txtName" runat="server" />

<input type="text" id="txtName" runat="server" />

Page 49: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

49

Web server controls Existem no namespace

System.Web.UI.WebControls

Sintaxe ASP.net

HTML gerado

<asp:TextBox id="TextBox1"runat="server">Text_to_Display</asp:TextBox>

<asp:TextBox id="TextBox1"runat="server">Text_to_Display</asp:TextBox>

<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>

<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>

Page 50: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

50

Escolher o Controlo Adequado

Necessitar de funcionalidades especificas tais como um “calendar”

O controlo irá interagir com scripts no cliente e no servidor

Pretender desenvolver páginas que serão visualizadas por diversos tipos de browsers

Pretender fornecer rapidamente funcionalidades ASP.NET a páginas HTML já existentes

Preferir trabalhar com um modelo de programação orientado a objectos

Preferir trabalhar com a estrutura de objectos HTML

Optar porOptar porWeb Server ControlsWeb Server Controls se: se:

Optar porOptar porHTML Server ControlsHTML Server Controls se: se:

A largura de banda disponível não constituir um problemaA largura de banda for limitada

Page 51: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

51

DEMO 03: Server Controls Criar um Web Form Utilizar Server Controls (Label, Button e calendar)

Page 52: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

52

Como programar em ASP .NET

Três métodos de implementar código: Colocar o código no mesmo ficheiro que contem os

Server Controls misturado com as definições dos mesmos (mixed)

Colocar o código no mesmo ficheiro que contem os Server Controls, mas numa zona separada das definições dos controlos (inline code)

Colocar o código num ficheiro separado (code-behind pages)

Por defeito o VS .NET utiliza ficheiros separados de código (code-behind)

Page 53: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

53

Programação Inline Definição dos controlos e código no mesmo

ficheiro Secções separadas para o código e para o HTML

<HTML><asp:Button id="btn" runat="server"/></HTML>

<SCRIPT Language="c#" runat="server"> private void btn_Click(object sender,

System.EventArgs e) { . . . }</SCRIPT>

<HTML><asp:Button id="btn" runat="server"/></HTML>

<SCRIPT Language="c#" runat="server"> private void btn_Click(object sender,

System.EventArgs e) { . . . }</SCRIPT>

Page 54: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

54

Programação Code-BehindCódigo e HTML em ficheiros separados

Programadores e Web Designers podem trabalhar de forma independente

Form1.aspxForm1.aspx Form1.aspxForm1.aspx Form1.aspx.csForm1.aspx.cs

<tags><tags> códigocódigo

códigocódigo

Ficheiros separadosUm só ficheiro

Page 55: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

55

Como funcionam as página com Code-Behind?

Ficheiros separados para interface e para o código

A ligação dos ficheiros é feita pela directiva @ Page no processo de pré-compilação (JIT-compile)

Page1.aspx

<% @ Page Language="c#"Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs" Src = "Page1.aspx.cs" %>

Page1.aspx.cs public class WebForm1 { private void cmd1_Click() { … } }

Page 56: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

56

O que são Event Procedures?

Acções em resposta à interacção do utilizador com os controlos numa página

Page 57: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

57

Scripts no cliente

Só utilizados com controlos HTML Interpretado pelo browser e executado no

cliente Não acede a recursos do servidor <SCRIPT language="language">

Internet .HTM Pages

Page 58: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

58

Scripts no servidor

Utilizado em qualquer tipo de Server Control Compilado e executado no servidor Tem acesso aos recursos do servidor <SCRIPT language=“cs“ runat="server">

Internet .ASPX Pages

Page 59: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

59

Tratamento de eventos no Cliente e no Servidor

Page 60: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

60

DEMO 04: Eventos Criar procedimentos que permitam responder a eventos

capturados pelos controlos da web form

Page 61: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

61

Tratamento do evento Postback - uso de Page.IsPostBack

O evento Page_Load ocorre em cada pedido á página.

A propriedade IsPostBack do objecto Page permite verificar se se trata do primeiro pedido ou não.

private void Page_Load(object sender, System.EventArgs e){ if (!Page.IsPostBack)

{ //Código executado somente no primeiro pedido}

//este código será executado em todos os pedidos}

private void Page_Load(object sender, System.EventArgs e){ if (!Page.IsPostBack)

{ //Código executado somente no primeiro pedido}

//este código será executado em todos os pedidos}

Page 62: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

62

Como se processa o Postback?

Page 63: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

63

DEMO 05: Page_Load Definir procedimento Page_load Utilizar a propriedade Page.IsPostBack

Page 64: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

64

Análise da “Maquina de Calcular”

Page 65: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

65

O que é validação da informação inserida pelo utilizador?

Verifica se o valor inserido num controlo está minimamente coerente com a informação pretendida

Bloqueia o processamento da página até que todos os valores sejam validos.

Page 66: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

66

Validação no Cliente e no Servidor

ASP.NET cria processos de validação no cliente e no servidor Validação no Cliente

Dependente do browserResposta imediataReduz número de pedidos ao servidor

Validação no servidorRepete todas as validações efectuadas no clientePermite utilizar recursos externos (p.e. bases de dados)

Valid?

Valid?

User Enters Data

No

No

Yes

Yes

Error Message

Client

Server

Web ApplicationProcessed

Page 67: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

67

Controlos de Validação

O ASP.NET fornece controlos de validação para:

Comparar valores Comparar com uma fórmula pré-definida Verificar se um valor pertence a um

intervalo Confrontar com expressões regulares Exigir preenchimento de informação Sumariar as validações inseridas numa

página

Page 68: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

68

Controlos de ValidaçãoComo utilizar?

1. Colocar o controlo na web form

2. Seleccionar o controlo que se pretende validar

3. Configurar as propriedades de validação

<asp:Type_of_Validator id="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">

</asp:Type_of_Validator>

<asp:Type_of_Validator id="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">

</asp:Type_of_Validator>

<asp:TextBox id="txtName" runat="server" /><asp:TextBox id="txtName" runat="server" />

1111

2222

3333

Page 69: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

69

Controlos de validaçãoCombinação

Pode haver vários controlos de validação afectos a um mesmo objecto

Somente o RequiredFieldValidator verifica se a informação está preenchida

Page 70: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

70

Controlos de Validação

RequiredFieldValidatorInitialValue

CompareValidatorValueToCompare or ControlToCompareTypeOperator

RangeValidatorMinimumValueMaximumValueType

Page 71: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

71

Controlos de Validação

RegularExpressionValidatorPermite confrontar valores com expressões regularesO VS .NET já inclui algumas expressões regulares (p.e: emails)

<asp:RegularExpressionValidator …ControlToValidate=“Email"…ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" >*</asp:RegularExpressionValidator >

<asp:RegularExpressionValidator …ControlToValidate=“Email"…ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" >*</asp:RegularExpressionValidator >

Page 72: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

72

Controlos de ValidaçãoCustomValidator

Permite validar no cliente, no servidor, ou em ambosClientValidationFunctionOnServerValidate

<asp:RequiredFieldValidator id="txtNameValidator" runat="server"

ControlToValidate="txtOddNum"

ClientValidationFunction="ClientValidateName"

OnServerValidate="ServerValidateName"

ErrorMessage="You must enter an odd number"

display="dynamic" Text="*">

</asp:RequiredFieldValidator>

<asp:RequiredFieldValidator id="txtNameValidator" runat="server"

ControlToValidate="txtOddNum"

ClientValidationFunction="ClientValidateName"

OnServerValidate="ServerValidateName"

ErrorMessage="You must enter an odd number"

display="dynamic" Text="*">

</asp:RequiredFieldValidator>

Page 73: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

73

Controlos de Validação

ValidationSummary Apresenta as mensagens de erro de todos

os controlos de validação da página

<asp:ValidationSummary id="valSummary"runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>

<asp:ValidationSummary id="valSummary"runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>

Page 74: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

74

Propriedade Page.IsValid

Verifica o estado de todos os controlos de validação inseridos na página

private void cmdSubmit_Click(object s, System.EventArgs e)

{ if (Page.IsValid)

{ Message.Text = "Page is Valid!";

// Actualização de uma base de dados ou

// outra tarefa sensivel

}

}

private void cmdSubmit_Click(object s, System.EventArgs e)

{ if (Page.IsValid)

{ Message.Text = "Page is Valid!";

// Actualização de uma base de dados ou

// outra tarefa sensivel

}

}

Page 75: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

75

DEMO 06: Validações Usar controlos de validação Utilizar a propriedade Page.IsValid

Page 76: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

76

O que é um User Control? Um User Control é um Web Server Control definido

pelo programador Tem extensão .ascx Simplifica a reutilização de componentes de

interface dentro de uma aplicação web Não contem as etiquetas <HTML>, <BODY> e

<FORM> Possui directiva @Control

Contem o código para tratar os seus próprios eventos

<%@ Control Language=“c#" %><%@ Control Language=“c#" %>

Page 77: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

77

Porquê utilizar User Controls?Reutilização de componentes de

interface e de código

Page2.aspx

Control1.ascx

Page1.aspx

Page3.aspx

Aplicação A Aplicação B

Page 78: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

78

Criação de um User ControlDois métodos:

Utilizando o Visual Studio .NET Converter uma página ASP.NET para user control

A interacção é feita alterando as propriedades

As páginas utilizadoras do controlo deverão estar em flow layout

public int pNum{ get { return Convert.ToInt32(txtNum.Text); } set { txtNum.Text = Convert.ToString(value); }}

public int pNum{ get { return Convert.ToInt32(txtNum.Text); } set { txtNum.Text = Convert.ToString(value); }}

Page 79: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

79

DEMO 07: User Control Criação de User Controls Utilização de User Controls

Page 80: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

80

Gestão do estado

First Name

Last Name

Please enter your logon information:

John

SubmitSubmit

Chen

Web ServerWeb Server

Login.aspx Login.aspx

Web ServerWeb Server

Hello John Chen

Greetings.aspx

Please enter your logon information:

John

SubmitSubmit

Chen

Hello

Greetings.aspx

I forget who you are!!

I forget who you are!!

First Name

Last Name

Sem gestão de estado Com gestão de estado

Page 81: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

81

Tipos de Gestão de Estado

No ServidorNo Servidor No ClienteNo Cliente

Objecto Application Informação fica disponível para todos

os utilizadores da aplicação

Cookies Ficheiro de texto com informação do

estado

Objecto Session Só o utilizador da sessão terá acesso

á informação

Propriedade ViewState Permite guardar valores entre pedidos

á página

Base de Dados Poderá ser utilizada uma BD para

manter informação do estado

Query strings Informação inserida no final da URL

Page 82: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

82

Gestão de Estado no Servidor O objecto Application permite armazenar

informação de toda a aplicação web O uso de Session está condicionado á sessão

do browser cliente A sessão ASP.NET é identificada pela

propriedade SessionID do objecto session

Servidor WebServidor Web

ClienteCliente

Variáveis de Sessão e de Aplicação

SessionID

Page 83: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

83

Gestão de Estado no Cliente

Utilização de cookies (persistentes / temporárias) Menos fiável que a gestão no servidor

O utilizador pode apagar as cookies Limite ao tamanho da informação

Restrições no cliente ao tamanho de ficheiros

ServidorServidor

ClienteCliente

Cookies

Page 84: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

84

Global.asax

Só um ficheiro Global.asax por aplicação Web

Colocado na raiz da directoria virtualUtilizado para tratar os eventos dos

objectos Application e Session

Page 85: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

85

Global.asax Eventos tratados

Application_StartExecutado imediatamente antes da aplicação ser criada.

Session_StartExecutado imediatamente antes da sessão ser criada

Application_BeginRequestExecutado por cada pedido ao servidor

Application_EndRequestExecutado no final de cada pedido ao servidor

Application_AuthenticateRequestExecutado antes da autenticação de um utilizador

Application_ErrorExecutado por cada erro não previsto na aplicação

Session_EndExecutado imediatamente antes do final da instância da sessão

Application_EndExecutado imediatamente antes do final da instância da aplicação

Page 86: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

86

Métodos de Autenticação do ASP.NET

Windows Assenta no SO e no IIS Utilizador faz um pedido seguro que é transferido ao IIS Após as credencias serem verificadas, o pedido é

satisfeito Forms

É feito um acesso não autenticado a um Form HTML onde serão fornecidas as credenciais

Após verificação é atribuída uma cookie de autenticação

Microsoft Passport Serviço de autenticação centralizado XML Web Service

Page 87: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

87

Métodos de Autenticação

Page 88: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

88

Comparação entre os Métodos de Autenticação

MétodoMétodo VantagensVantagens DesvantagensDesvantagens

Windows

Utiliza infra-estrutura Windows

Controla acesso a informação sensível

Não se adequa à maioria das aplicações web

Forms

Adequado à maioria das aplicações web

Suporta todos os tipos de clientes

Baseia-se em cookies

Microsoft Passport

Uma só assinatura para diversos sites web

Não necessita de armazenar informação do utilizador

Baseia-se em cookies Serviço pago

Page 89: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

89

Acesso a Bases de DadosADO .NET

Namespace System.Data Modos de aceder à informação

OLE DB – namespace System.Data.OleDb SQL - namespace System.Data.SqlClient

Ap

lica

tivo

.N

et

Informação

InformaçãoSQL Server

Objectos OLE DB

OLE DB

Objectos OLE DB

TDS

Page 90: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

90

Objecto Connection SqlConnection / OleDbConnection

Parâmetros da string de conexão Connection timeout Data source Initial catalog Integrated security

Password Persist security info Provider User ID

string strConn = "data source=localhost; " + "initial catalog=northwind; " +

"integrated security=true";

SqlConnection conn = new SqlConnection(strConn);

string strConn = "data source=localhost; " + "initial catalog=northwind; " +

"integrated security=true";

SqlConnection conn = new SqlConnection(strConn);

Page 91: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

91

Objecto Command

SqlCommand / OleDbCommand

Executar comandos SQL ExecuteReader – executa comandos que devolvam

linhas de informação (ex: SELECT) ExecuteNonQuery – executa comandos que

retornam dados (ex: INSERT, UPDATE, DELETE) ExecuteScalar - retorna um valor único como

resultado de uma função agregada (ex: COUNT)

SqlCommand com = new SqlCommand();com.Connection = conn;com.CommandText="Select * From Tabela;";

SqlDataReader Info = com.ExecuteReader();

SqlCommand com = new SqlCommand();com.Connection = conn;com.CommandText="Select * From Tabela;";

SqlDataReader Info = com.ExecuteReader();

Page 92: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

92

Objecto DataReader

SqlDataReader / OleDbDataReader

Percurso forward-only em modo read-only Propriedades e métodos mais usais

FieldCount IsClosed Close GetString GetInt32

SqlDataReader Info = com.ExecuteReader();DataGrid1.DataSource=Info;

SqlDataReader Info = com.ExecuteReader();DataGrid1.DataSource=Info;

Page 93: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

93

Acesso a Bases de Dados

Page 94: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

94

DEMO 08: ADO .NET Objectos Connection, Command e DataReader

Page 95: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

Perguntas & Respostas

Page 96: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

96

Mais Informação...

MSDN Library http://msdn.microsoft.com/library

.net framework center http://msdn.microsoft.com/netframework/

C# http://msdn.microsoft.com/vcsharp/

ASP.net http://www.asp.net

Laboratório .net do ISEP/IPP http://www.dei.isep.ipp.pt/labdotnet/

Page 97: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

97

Tutoriais

http://www.gotdotnet.com/

http://www.w3schools.com/aspnet/

http://www.asp-php.net/tutorial/asp.net/

http://www.dei.isep.ipp.pt/ades/

Page 98: Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e

Desenvolvimento ASP.net