A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento ASP.net

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento ASP.net"— Transcrição da apresentação:

0 Desenvolvimento ASP.net
.Net Apprentice Desenvolvimento ASP.net (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

1 Desenvolvimento ASP.net
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

2 Framework .net .Net Apprentice
(C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

3 Visão .net .Net Apprentice
(C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

4 .Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

5 Common Language Runtime - CLR
.Net Apprentice 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. (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

6 CLR - Serviços Fase de Desenvolvimento Fase de Instalação
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

7 Base Class Library (.NET Framework) Support
.Net Apprentice CLR - Arquitectura Faz a integração com a .NET Framework class library. Base Class Library (.NET Framework) Support Sequencia a distribuição dos componentes Tratamento de erros Procedimentos de segurança baseados na identificação do utilizador e na localização do código Thread Support COM Marshaler Fornece classes e interfaces para utilização de threads Type Checker Exception Manager Converte código MSIL para código nativo optimizado Security Engine Debug Engine Impede conversões inadequadas e gere o acesso às variáveis MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Permite fazer debug da aplicação Gestão de memória Class Loader Controla a execução do código Gere a metadata e o carregamento das classes necessárias. (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

8 CLR - Características Sistema Comum de Tipos
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

9 Compilação e Execução Runtime Engine Compiler Class Loader
.Net Apprentice Compilação e Execução EXE/DLL (MSIL and metadata) Source Code Compiler Class Libraries (MSIL and metadata) Class Loader JIT Compiler with optional verification Trusted, pre-JITed code only Call to an uncompiled method Managed Native Code Execution Security Checks Runtime Engine (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

10 Assembly Contêm código e metadata para o CLR
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

11 .Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

12 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(); }

13 DEMO 01 Ficheiro Demo1.vb vbc /t:exe /out:Demo1VB.exe Demo1.vb
ildasm Demo1VB.exe Imports System namespace Ades public class Demo public Shared Sub Main() Console.WriteLine("Ola Mundo") Console.ReadLine() end Sub end class end namespace

14 Algoritmo “Garbage Collection”
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

15 Garbage Collection .Net Apprentice
(C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

16 Conceitos de C# .Net Apprentice
(C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

17 Introdução ao C# Linguagem baseada no C/C++ Tudo são objectos
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

18 Tipos de dados object string sbyte, short, int, long
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

19 Classes e namespaces Organização do código dentro de classes
.Net Apprentice Classes e namespaces Organização do código dentro de classes Classes organizadas dentro de namespaces namespace Demo { public class MyClass { ... } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

20 Métodos Sintaxe semelhante ao C/C++ Podem ser públicos ou privados
.Net Apprentice 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) } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

21 Passagem de parâmetros
.Net Apprentice 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) (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

22 Herança Apenas existe herança simples public class MyClassBase { ...
.Net Apprentice Herança Apenas existe herança simples public class MyClassBase { ... public void Func() { ... } } public class MyClassDeriv : MyClassBase { public new void Func() { base.Func(); ... } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

23 .Net Apprentice 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(); } } ... (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

24 Operadores Atribuição Relacionais Lógicos Aritméticos =
.Net Apprentice Operadores Atribuição = Relacionais < <= > >= == != Lógicos && || ! Aritméticos * / % += -= *= /= (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

25 Criação de objectos // definição da classe
.Net Apprentice 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(); (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

26 Construtores Seguem as regras do C/C++ Mesmo nome da classe
.Net Apprentice 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) { ... } } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

27 Ciclos // repetição n vezes // repetição condicional
.Net Apprentice Ciclos // repetição n vezes for (int x = 0; i < vec.Length; i++) Console.WriteLine(vec[i]); // repetição condicional int i = 0; while (i < vec.Length) { i++; } // enumeração (colecções) foreach (String x in vec) Console.WriteLine(x); (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

28 Estruturas Condicionais
.Net Apprentice Estruturas Condicionais // teste de decisão if (i < vec.Length) Console.WriteLine(vec[i]); else Console.WriteLine(“Erro!!!”); // teste múltiplo switch (x) { case 1: ...; break; case 2: ...; goto case 3; case 3: ...; break; default: ...; break; } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

29 .Net Apprentice ASP.net (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

30 O que é o ASP.net? Sucessor da tecnologia Active Server Pages
.Net Apprentice 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” (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

31 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

32 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

33 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

34 Aplicação ASP.net ASP.NET Web Server Output Cache Web Services Clients
.Net Apprentice Aplicação ASP.net ASP.NET Web Server Clients Web Forms Web. config Page1. aspx Code-behind pages Output Cache Internet Page2. aspx machine. config global. asax Web Services Database Components XML Data (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

35 Modelo de Execução ASP.net
.Net Apprentice Modelo de Execução ASP.net (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

36 .Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

37 Templates de Projectos
.Net Apprentice Templates de Projectos A lista dos templates de projectos baseia-se no perfil do utilizador e na escolha do tipo de projecto (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

38 IDE VS.net Editor/Browser Object Browser Toolbox Solution Explorer
.Net Apprentice IDE VS.net Editor/Browser Object Browser Toolbox Solution Explorer Properties Server Explorer Task List Dynamic Help (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

39 Processo de Desenvolvimento
.Net Apprentice Processo de Desenvolvimento Fase de análise e especificação Criar um projecto Produzir a interface e escrever código Fase de testes Compilar Visual Studio .NET Disponibilizar (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

40 Ficheiros da aplicação Web
.Net Apprentice 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) (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

41 Estrutura de Ficheiros da Aplicação Web
.Net Apprentice Estrutura de Ficheiros da Aplicação Web Inetpub My Documents Visual Studio Projects wwwroot Solution ProjectA Solution.sln ProjectA.csproj WebForm1.aspx Development Files WebForm1.aspx.cs (Code-behind page) Assembly Files Bin Build ProjectA.dll (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

42 DEMO 02: Visual Studio .NET
.Net Apprentice DEMO 02: Visual Studio .NET Apresentação do IDE VS.NET Criar um Projecto de Aplicação Web em C# (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

43 O que são Web Forms? Ficheiros com extensão aspx
.Net Apprentice O que são Web Forms? Ficheiros com extensão aspx Constituídos essencialmente por: Atributo Page Atributo Body Atributo Form Page language="c#“ Codebehind="WebForm1.aspx.cs” Inherits=“nomeAplicacao.WebForm1”%> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

44 Web Forms – Modelo de Objectos
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

45 Web Forms – Atributo FORM
.Net Apprentice 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 ( HTML Server Controls Controlos HTML básicos (DIV, IMG, HR ,...) (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

46 Server Controls <asp:Button id=“Button1” runat=“server”
.Net Apprentice Server Controls <asp:Button id=“Button1” runat=“server” Text=“Submit”/> 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

47 HTML server controls Baseados nos elementos HTML Runat=“server”
.Net Apprentice HTML server controls Baseados nos elementos HTML Runat=“server” Existem no namespace System.Web.UI.HtmlControls <input type="text" id="txtName" runat="server" /> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

48 Web server controls Existem no namespace System.Web.UI.WebControls
.Net Apprentice 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> <input name="TextBox1" type="text" value="Text_to_Display" Id="TextBox1"/> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

49 Escolher o Controlo Adequado
.Net Apprentice Escolher o Controlo Adequado Optar por HTML Server Controls se: Optar por Web Server Controls se: Preferir trabalhar com a estrutura de objectos HTML Preferir trabalhar com um modelo de programação orientado a objectos Pretender fornecer rapidamente funcionalidades ASP.NET a páginas HTML já existentes Pretender desenvolver páginas que serão visualizadas por diversos tipos de browsers O controlo irá interagir com scripts no cliente e no servidor Necessitar de funcionalidades especificas tais como um “calendar” A largura de banda for limitada A largura de banda disponível não constituir um problema (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

50 DEMO 03: Server Controls Criar um Web Form
.Net Apprentice DEMO 03: Server Controls Criar um Web Form Utilizar Server Controls (Label, Button e calendar) (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

51 Como programar em ASP .NET
.Net Apprentice 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) (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

52 Programação Inline Definição dos controlos e código no mesmo ficheiro
.Net Apprentice 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> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

53 Programação Code-Behind
.Net Apprentice Programação Code-Behind Código e HTML em ficheiros separados Programadores e Web Designers podem trabalhar de forma independente Um só ficheiro Ficheiros separados código <tags> código <tags> Form1.aspx.cs Form1.aspx Form1.aspx (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

54 Como funcionam as página com Code-Behind?
.Net Apprentice Como funcionam as página com Code-Behind? Ficheiros separados para interface e para o código A ligação dos ficheiros é feita pela 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() { … } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

55 O que são Event Procedures?
.Net Apprentice O que são Event Procedures? Acções em resposta à interacção do utilizador com os controlos numa página (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

56 Scripts no cliente .HTM Pages Só utilizados com controlos HTML
.Net Apprentice 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"> .HTM Pages Internet (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

57 Scripts no servidor .ASPX Pages
.Net Apprentice 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"> .ASPX Pages Internet (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

58 Tratamento de eventos no Cliente e no Servidor
.Net Apprentice Tratamento de eventos no Cliente e no Servidor (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

59 .Net Apprentice DEMO 04: Eventos Criar procedimentos que permitam responder a eventos capturados pelos controlos da web form (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

60 Tratamento do evento Postback - uso de Page.IsPostBack
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

61 Como se processa o Postback?
.Net Apprentice Como se processa o Postback? (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

62 DEMO 05: Page_Load Definir procedimento Page_load
.Net Apprentice DEMO 05: Page_Load Definir procedimento Page_load Utilizar a propriedade Page.IsPostBack (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

63 Análise da “Maquina de Calcular”

64 O que é validação da informação inserida pelo utilizador?
.Net Apprentice 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. (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

65 Validação no Cliente e no Servidor
.Net Apprentice Validação no Cliente e no Servidor User Enters Data ASP.NET cria processos de validação no cliente e no servidor Validação no Cliente Dependente do browser Resposta imediata Reduz número de pedidos ao servidor Validação no servidor Repete todas as validações efectuadas no cliente Permite utilizar recursos externos (p.e. bases de dados) Error Message Valid? No Client Yes Server Valid? No Yes Web Application Processed (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

66 Controlos de Validação
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

67 Controlos de Validação Como utilizar?
.Net Apprentice Controlos de Validação Como utilizar? Colocar o controlo na web form Seleccionar o controlo que se pretende validar Configurar as propriedades de validação 1 2 3 <asp:TextBox id="txtName" runat="server" /> <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> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

68 Controlos de validação Combinação
.Net Apprentice Controlos de validação Combinação Pode haver vários controlos de validação afectos a um mesmo objecto Somente o RequiredFieldValidator verifica se a informação está preenchida (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

69 Controlos de Validação
.Net Apprentice Controlos de Validação RequiredFieldValidator InitialValue CompareValidator ValueToCompare or ControlToCompare Type Operator RangeValidator MinimumValue MaximumValue (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

70 Controlos de Validação
.Net Apprentice Controlos de Validação RegularExpressionValidator Permite confrontar valores com expressões regulares O VS .NET já inclui algumas expressões regulares (p.e: s) <asp:RegularExpressionValidator … ControlToValidate=“ "… ValidationExpression= >*</asp:RegularExpressionValidator > (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

71 Controlos de Validação
.Net Apprentice Controlos de Validação CustomValidator Permite validar no cliente, no servidor, ou em ambos ClientValidationFunction OnServerValidate <asp:RequiredFieldValidator id="txtNameValidator" runat="server" ControlToValidate="txtOddNum" ClientValidationFunction="ClientValidateName" OnServerValidate="ServerValidateName" ErrorMessage="You must enter an odd number" display="dynamic" Text="*"> </asp:RequiredFieldValidator> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

72 Controlos de Validação
.Net Apprentice 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"/> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

73 Propriedade Page.IsValid
.Net Apprentice 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 } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

74 DEMO 06: Validações Usar controlos de validação
.Net Apprentice DEMO 06: Validações Usar controlos de validação Utilizar a propriedade Page.IsValid (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

75 .Net Apprentice 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 Contem o código para tratar os seus próprios eventos Control Language=“c#" %> (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

76 Porquê utilizar User Controls?
.Net Apprentice Porquê utilizar User Controls? Reutilização de componentes de interface e de código Aplicação A Aplicação B Control1.ascx Page3.aspx Page1.aspx Page2.aspx (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

77 Criação de um User Control
.Net Apprentice Criação de um User Control Dois 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); (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

78 DEMO 07: User Control Criação de User Controls
.Net Apprentice DEMO 07: User Control Criação de User Controls Utilização de User Controls (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

79 Gestão do estado Sem gestão de estado Com gestão de estado Login.aspx
.Net Apprentice Gestão do estado Sem gestão de estado Com gestão de estado Login.aspx Login.aspx Please enter your logon information: Please enter your logon information: First Name First Name John John Last Name Last Name Chen Chen Web Server Submit Submit Web Server Greetings.aspx Greetings.aspx Hello Hello John Chen I forget who you are!! (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

80 Tipos de Gestão de Estado
.Net Apprentice Tipos de Gestão de Estado No Servidor No 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

81 Gestão de Estado no Servidor
.Net Apprentice 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 Web Cliente Variáveis de Sessão e de Aplicação SessionID (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

82 Gestão de Estado no Cliente
.Net Apprentice 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 Servidor Cliente Cookies (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

83 Global.asax Só um ficheiro Global.asax por aplicação Web
.Net Apprentice Global.asax Só um ficheiro Global.asax por aplicação Web Colocado na raiz da directoria virtual Utilizado para tratar os eventos dos objectos Application e Session (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

84 Global.asax Eventos tratados Application_Start Session_Start
.Net Apprentice Global.asax Eventos tratados Application_Start Executado imediatamente antes da aplicação ser criada. Session_Start Executado imediatamente antes da sessão ser criada Application_BeginRequest Executado por cada pedido ao servidor Application_EndRequest Executado no final de cada pedido ao servidor Application_AuthenticateRequest Executado antes da autenticação de um utilizador Application_Error Executado por cada erro não previsto na aplicação Session_End Executado imediatamente antes do final da instância da sessão Application_End Executado imediatamente antes do final da instância da aplicação (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

85 Métodos de Autenticação do ASP.NET
.Net Apprentice 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 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

86 Métodos de Autenticação
.Net Apprentice Métodos de Autenticação (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

87 Comparação entre os Métodos de Autenticação
.Net Apprentice Comparação entre os Métodos de Autenticação Método Vantagens Desvantagens 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 Serviço pago (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

88 Acesso a Bases de Dados ADO .NET
Namespace System.Data Modos de aceder à informação OLE DB – namespace System.Data.OleDb SQL - namespace System.Data.SqlClient Objectos OLE DB OLE DB Informação Aplicativo .Net Objectos OLE DB TDS Informação SQL Server

89 Objecto Connection SqlConnection / OleDbConnection
.Net Apprentice Objecto Connection SqlConnection / OleDbConnection Parâmetros da string de conexão Connection timeout Data source Initial catalog Integrated security string strConn = "data source=localhost; " + "initial catalog=northwind; " + "integrated security=true"; SqlConnection conn = new SqlConnection(strConn); Password Persist security info Provider User ID (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

90 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();

91 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;

92 Acesso a Bases de Dados

93 DEMO 08: ADO .NET Objectos Connection, Command e DataReader
.Net Apprentice DEMO 08: ADO .NET Objectos Connection, Command e DataReader (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

94 Perguntas & Respostas .Net Apprentice
(C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

95 Mais Informação... MSDN Library .net framework center C# ASP.net
.Net Apprentice Mais Informação... MSDN Library .net framework center C# ASP.net Laboratório .net do ISEP/IPP (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

96 Tutoriais http://www.gotdotnet.com/ http://www.w3schools.com/aspnet/
.Net Apprentice Tutoriais (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

97 Desenvolvimento ASP.net
.Net Apprentice Desenvolvimento ASP.net (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP


Carregar ppt "Desenvolvimento ASP.net"

Apresentações semelhantes


Anúncios Google