desenvolvimento asp.net. 1 framework.net common language runtime assembly garbage collection...
TRANSCRIPT
Desenvolvimento ASP.net
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
Framework .net
4
Visão .net
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
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.
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
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.
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
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
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
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
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(); } }}
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
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
16
Garbage Collection
Conceitos de C#
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
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
20
Classes e namespaces
Organização do código dentro de classes
Classes organizadas dentro de namespaces
namespace Demo {public class MyClass {...}
}
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){ ... }
}
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){ ... }
23
Herança
Apenas existe herança simples
public class MyClassBase {
...
public void Func() { ... }
}
public class MyClassDeriv : MyClassBase {
...
public new void Func() { base.Func(); ... }
}
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(); }
}...
}
25
Operadores
Atribuição =
Relacionais < <= > >= == !=
Lógicos && || !
Aritméticos + - * / % += -= *= /= ++ --
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();
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) { ... }
}
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);
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;
}
ASP.net
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”
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
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
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
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
36
Modelo de Execução ASP.net
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
38
Templates de Projectos
A lista dos templates de projectos baseia-se no perfil do utilizador e na escolha do tipo de projecto
39
IDE VS.netTo
olbo
x
Task List
SolutionExplorer
Dynamic Help
Editor/Browser
Properties
Server Explorer
Object Browser
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
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)
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
43
DEMO 02: Visual Studio .NET Apresentação do IDE VS.NET Criar um Projecto de Aplicação Web em C#
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">
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
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 ,...)
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”/>
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" />
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"/>
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
51
DEMO 03: Server Controls Criar um Web Form Utilizar Server Controls (Label, Button e calendar)
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)
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>
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
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() { … } }
56
O que são Event Procedures?
Acções em resposta à interacção do utilizador com os controlos numa página
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
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
59
Tratamento de eventos no Cliente e no Servidor
60
DEMO 04: Eventos Criar procedimentos que permitam responder a eventos
capturados pelos controlos da web form
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}
62
Como se processa o Postback?
63
DEMO 05: Page_Load Definir procedimento Page_load Utilizar a propriedade Page.IsPostBack
64
Análise da “Maquina de Calcular”
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.
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
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
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
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
70
Controlos de Validação
RequiredFieldValidatorInitialValue
CompareValidatorValueToCompare or ControlToCompareTypeOperator
RangeValidatorMinimumValueMaximumValueType
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 >
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>
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"/>
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
}
}
75
DEMO 06: Validações Usar controlos de validação Utilizar a propriedade Page.IsValid
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#" %>
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
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); }}
79
DEMO 07: User Control Criação de User Controls Utilização de User Controls
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
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
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
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
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
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
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
87
Métodos de Autenticação
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
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
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);
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();
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;
93
Acesso a Bases de Dados
94
DEMO 08: ADO .NET Objectos Connection, Command e DataReader
Perguntas & Respostas
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/
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/
Desenvolvimento ASP.net