Introdução ao ASP.NET Miguel Isidoro Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET 1
ASP Razões do Sucesso Modelo de programação simples Acesso a objectos COM (ADO, etc) VBScript aproveitamento de conhecimentos de VB Suporta várias linguagens de scripting (VBScript, Javascript,,...) ASP Limitações Código é interpretado, não é compilado Mistura HTML e código de servidor Lock de DLLs Instalação Complexa Registo de DLLs Falta de mecanismo de depuração ( debug debug ) 2
ASP Desafios Código Legível Postback Complexo Reutilização de Código Desempenho Mecanismo de depuração ( debug debug ) Instalação Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET 3
ASP.NET Modelo de Execução ASP.NET Arquitectura 1º Pedido.ASPX Compilada.ASPX 4
ASP.NET Arquitectura Pedidos Seguintes.ASPX Compilada.ASPX ASP.NET Arquitectura Página Modificada.ASPX Compilada.ASPX 5
ASP.NET Funcionalidades e Vantagens Páginas ASPX e ASP em simultâneo Páginas compiladas Melhor Desempenho Suporte para múltiplas linguagens Server Controls Web Services Caching Sessões Cookie-Less ASP.NET Funcionalidades e Vantagens Segurança Melhorada Windows Authentication Forms Authentication Passport Authentication Fácil Instalação e Configuração User Controls Fim do Lock de DLLs Fim do Registo de DLLs 6
Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET Server Controls Controlos com comportamento embutido Modelo de programação Server Side Propriedades Métodos Eventos Compatibilidade automática entre browsers Menos código e menor complexidade 7
Server Controls Server Controls divididos em dois grandes conjuntos: HTML Controls Web Controls Server Controls HTML Controls Aspecto de um controlo HTML Adição do atributo runat= server <input id= MyCmd type= button runat= server onserverclick= SubmitFrm > <input id= txtnome type= text runat= server > ID identificador do controlo Runat permite o processamento no servidor Onserverclick identifica evento no servidor 8
Server Controls Web Controls Incluem controlos HTML mais comuns Controlos de funções avançadas <asp:button id= MyCmd Runat= server OnClick= SubmitFrm /> <asp:textbox id= MyCmd Runat= server /> ID identificador do controlo Runat permite o processamento no servidor OnClick identifica evento no servidor Server Controls Web Controls Web Controls divididos em quatro grandes conjuntos: Intrinsic Controls controlos HTML mais comuns Rich Controls - controlos HTML de contéudo rico Ex: Calendar Validation Controls controlos para validação de forms List Controls controlos bounded bounded, permitem visualização de dados de um data source com templates HTML Ex: DataGrid e Repeater 9
Server Controls HTML Controls vs Web Controls* Web Controls têm propriedades, métodos e eventos comuns Web Controls apenas contêm eventos de servidor HTML Controls contêm eventos de servidor e de cliente * Intrinsic Web Controls Server Controls Forms <form id= form1 runat= server > <asp:button id= MyCmd Runat= server OnClick= SubmitFrm /> <asp:textbox id= txtnome txtnome Runat= server /> </form> <script language="c#" runat= server > void SubmitFrm(Object sender, EventArgs e) { Response.Write ( Hello + txtnome.text); } </script> 10
Server Controls Forms - PostBack O objecto é automaticamente preenchido no servidor com os dados do cliente O O Form contém um controlo escondido ( VIEWSTATE) que guarda estado dos controlos Alterações nos valores dos controlos guardadas entre pedidos ao servidor Server Controls Validação Conjunto de controlos para validação de dados de um form Validação sem código Campo Obrigatório Dentro de um intervalo Igualdade entre dois campos (password( password) Expressões regulares (email( email) 11
Server Controls Demo HTML Controls Web Controls Form PostBack Validação Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET 12
Separação de Código e Apresentação Separação das camadas de apresentação e lógica aplicacional Pode ser efectuada de três formas: Code-Behind Pages User Controls Componentes Separação de Código e Apresentação Vantagens Separação de tarefas facilitada Cada elemento de uma equipa trabalha na sua parte sem interferir no trabalho dos outros Aumento de eficiência Utilização de editor preferido Utilização de poderosas ferramentas HTML para desenvolver interface 13
Separação de Código e Apresentação Code-Behind Pages Criação de dois ficheiros distintos WebForm Code-Behind Page O WebForm contém a camada de apresentação (.aspx aspx) A Code-Behind page contém a lógica aplicacional (.aspx.vb aspx.vb, aspx.cs,,...) Separação de Código e Apresentação Code-Behind Pages - Apresentação Contém o conjunto de elementos HTML que compõem a interface da aplicação Identificada pela directiva @Page no início da página <% @Page language= vb Inherits= Demo Src= Demo.vb %> 14
Separação de Código e Apresentação Code-Behind Pages Lógica Aplicacional Contém procedimentos e funções que dão corpo às funcionalidades da aplicação Public Class Demo Inherits System.Web.Ui.Page Public Function Page_Load(Sender as Object, e as EventArgs) código a ser executado quando página é lida End Function End Class Separação de Código e Apresentação User Controls Página ASP.NET incorporada como um Server Control Particionamento da interface Reutilização de partes comuns da interface da aplicação Não são pré-compilados, apenas compilados no primeiro acesso à página 15
Separação de Código e Apresentação User Controls - Vantagens Providenciam separação de identificação dos controlos da página Reutilizáveis na mesma página sem confiltos de identificação Possibilidade de desenvolvimento em linguagem diferente da utilizada na página Separação de Código e Apresentação User Controls Criação Utilizam a extensão.ascx. Identificados pela directiva @Control <% Control language= C# %> Não contém elementos <HTML>, <BODY> e <FORM> Possuem código para processamento de eventos 16
Separação de Código e Apresentação User Controls Utilização Utilizado como um server control <%Page Language= vb vb > <% @Register TagPrefix= Demo TagName= Header Src= = Header.ascx %> <FORM runat="server"> <Demo:Header id= Header1 Runat= server /> Nome: <INPUT id= Nome type="text" runat="server"/> </FORM> Separação de Código e Apresentação Componentes Criação de aplicações com várias camadas ( multi multi-tiered ) Encapsulamento de lógica de acesso a dados Maior nível de abstracção para programadores Estruturação do código Reutilização 17
Separação de Código e Apresentação Componentes - ASP e DLLs Locks a DLLs DLLs residentes na memória do servidor Web quando lida a página Shutdown do servidor Web sempre que existe alteração ao componente Necessidade de registo de DLLs Impossibilidade da existência de mais do que um componente com o mesmo nome Separação de Código e Apresentação Componentes DLLs com.net Não existe necessidade de registo São colocadas na directoria./bin Não existe lock de DLLs Shadow Copy Possibilidade de várias DLLs com o mesmo nome em aplicações diferentes Área de acção do componente limitada à aplicação Actualização facilitada 18
Separação de Código e Apresentação Demo Code-Behind Pages User Controls Componentes Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET 19
Acesso a Dados ASP Privilegia o acesso a base de dados Modelo de acesso a dados com ligação permanente à base de dados (ADO) Perda de desempenho das aplicações com aumento de tráfego Grande ocupação da largura de banda da rede e recursos do servidor Acesso a Dados ASP.NET Permite acesso a múltiplas fontes de dados (BD, XML,...) Modelo de acesso a dados desligado da fonte de dados (ADO.NET) Não existe perda de desempenho das aplicações com aumento de tráfego Menor ocupação da largura de banda da rede e recursos do servidor 20
Acesso a Dados Modelo de Objectos ADO.NET Acesso a Dados ADO.NET DataSet Authors Connection DataAdapter Select from authors Database Authors 21
Acesso a Dados ADO.NET DataSet Authors Publishers Connection DataAdapter Select from publishers Database Publishers Acesso a Dados ADO.NET DataSet Authors Publishers DataGrid Repeater DataList DataView 22
Acesso a Dados ADO vs ADO.NET Característica Nº Tabelas Relacionamentos Navegação Dados Ligação Fonte Dados Transmissão Dados Recordset 1 Baseados em Joins Registo a registo Ligado / Desligado COM Marshalling Dataset Múltiplas Inclui Relacionamentos Via Relacionamentos Desligado XML Acesso a Dados Demo ADO.NET DataGrid Repeater XML 23
Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET Web Services Web Hoje Pedido Página Página Devolvida Desenhada para navegação! 24
Web Services Web Hoje Comunicação Aplicações?? Comunicação entre servidores é o problema! Web Services O que são? Permitem a comunicação entre aplicações na Web Independentes da plataforma Independentes da linguagem Independentes de modelos de objectos Utilizam normas Internet HTTP SOAP XML 25
Web Services Modelo de Execução Web Services Criação Utilizam a extensão.asmx. Identificados pela directiva @WebService Definição de classe e métodos declarados como <WebMethods< WebMethods> <% WebService Language= C# Class= Soma2Num %> using System.Web.Services; Public Class Soma2Num <WebMethod()> int Soma(int Num1, int Num2) { return Num1 + Num2; } End Class 26
Web Services Invocação directa Browser Soma.asmx HTTP XML Página HTML Teste.ASMX Web Services Invocação com proxy HTTP HTTP SOAP Proxy DLL DLL SOAP.ASMX 27
Web Services UDDI* Permite a pesquisa de Web Services Registo distribuído em XML Contém lista de empresas e descrição dos Web Services disponibilizados * UDDI Universal Description, Discovery and Integration Web Services Demo Criação de um Web Service Teste de um Web Service Criação de um proxy no cliente Utilizar Web Service em aplicação Web 28
Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET Aplicações Web ASP.NET Instalação Instalação simplificada Componentes na directoria./bin DLLs sem registo Criação da aplicação no servidor Web Desinstalação Apenas apagar ficheiros da aplicação Remover aplicação do servidor Web 29
Aplicações Web ASP.NET Web.Config Ficheiro de configuração da aplicação Utiliza o formato XML Algumas Configurações Segurança Autenticação Autorização Debugging Tracing Extensível Aplicações Web ASP.NET Partilha de Informação Variáveis de sessão Maior número de eventos Sessões Cookie-Less SessionID é codificado no URL Cache Tempo de vida igual ao da aplicação Web.Config Variáveis ao nível da aplicação 30
Aplicações Web ASP.NET Requisitos Instalar a Framework.NET Para facililitar o desenvolvimento, instalar o Visual Studio.NET Aplicações Web ASP.NET Mais Recursos http://msdn.microsoft.com www.microsoft.com/net www.asp.net www.gotdotnet.com 31
Introdução ao ASP.NET Fim da apresentação Questões? 32