• Nenhum resultado encontrado

ApresentacaoInteracaoWebBancoDados

N/A
N/A
Protected

Academic year: 2021

Share "ApresentacaoInteracaoWebBancoDados"

Copied!
115
0
0

Texto

(1)

Interação de Aplicativos

Web com Banco de Dados

Versão 0.5

(2)

2

O Professor

Formação

Experiência profissional

(3)

3

A Matéria

ADO.net

Biblioteca de acesso a Dados.

Web Services.

(4)

4

Conteúdo

(5)

5

Interação de Aplicativos Web com Banco de Dados

O que é ADO.NET

Uma evolução do ADO.

Projetado para trabalhar desconectado.

Modelo de programação com suporte a XML,

interoperabilidade.

Conjunto de classes, interfaces e estruturas da

Framework .Net que gerenciam o acesso a dados.

(6)

6

(7)

7

Interação de Aplicativos Web com Banco de Dados

Principais Namespaces

System.Data

System.Data.Common

System.Data.SqlClient

System.Data.OleDb

System.Data.SqlTypes

System.XML

(8)

8

(9)

9

Interação de Aplicativos Web com Banco de Dados

(10)

10

Interação de Aplicativos Web com Banco de

Dados

Data Providers

Conjunto de classes que permite conectar, recuperar e

alterar dados em um Banco de Dados.

Tipos

SQL Server .Net Data Provider.( SQL 7.0 e SQL 2000)

SqlCommandSqlConnectionSqlDataReader

 OLE DB .Net Data Provider (SQL 6.5, DB2, Access)

OleDBCommandOleDBConnectionOleDBDataReader

(11)

11

Interação de Aplicativos Web com Banco de Dados

SqlConnection

Propriedades

ConnectionString ( Pool de conexão)ConnectionTimeout

State

Métodos

Open / CloseCreateCommand

(12)

12

Interação de Aplicativos Web com Banco de Dados

Passos para criar um objeto SqlConnection

1) Criar uma string de conexão.

2) Criar um objeto do tipo SqlConnection.

3) Abrir a conexão.

4) Fechar a conexão.

5) Liberar recursos.

Abra a conexão o mais tarde possível, e libere o recurso o mais rápido possível.

(13)

13

Interação de Aplicativos Web com Banco de Dados

(14)

14

Interação de Aplicativos Web com Banco de Dados

SqlCommand

Propriedades

CommandTextCommandTypeConnection

Métodos

ExecuteNonQueryExecuteScalarExecuteReader

(15)

15

Interação de Aplicativos Web com Banco de Dados

Passos para criar um SqlCommand

1) Criar uma string de conexão.

2) Criar um objeto do tipo SqlConnection.

3) Criar um objeto do tipo SqlCommand.

4) Valorar a propriedade CommandText do SqlCommand

com uma sentença SQL.

5) Valorar a propriedade CommandType.

6) Abrir a conexão.

7) Executar a sentença SQL no banco de dados.

8) Fechar a conexão e liberar recursos.

(16)

16

Interação de Aplicativos Web com Banco de Dados

(17)

17

Interação de Aplicativos Web com Banco de Dados

SqlCommand (ExecuteScalar)

1) Criar uma string de conexão.

2) Criar um objeto do tipo SqlConnection.

3) Criar um objeto do tipo SqlCommand.

4) Valorar a propriedade CommandText do SqlCommand

com uma sentença SQL.

5) Valor a propriedade CommandType.

6) Abrir a conexão.

7) Chamar o método ExecuteScalar()

8) Fechar a conexão.

(18)

18

Interação de Aplicativos Web com Banco de Dados

(19)

19

Interação de Aplicativos Web com Banco de Dados

Objeto SqlDataAdapter

Propriedades

SelectCommandDeleteCommandInsertCommand

Métodos

Fill()Update()

(20)

20

Interação de Aplicativos Web com Banco de Dados

(21)

21

Interação de Aplicativos Web com Banco de Dados

Passos para criar um SqlDataAdapter

1) Criar uma string de conexão.

2) Criar um objeto do tipo SqlConnection.

3) Criar um objeto do tipo SqlDataAdapter, passando o Sql

e Connection no seu constructor.

4) Criar um DataTable.

5) Chamar o método Fill().

7) Liberar recursos.

(22)

22

Interação de Aplicativos Web com Banco de Dados

(23)

23

Interação de Aplicativos Web com Banco de Dados

Objeto SqlDataReader

Permite a coleta de dados de forma conectada com

uma fonte de informações.

É somente leitura e Forward-Only.

Métodos

Close()

 GetString(), GetInt32(), GetXXX()  Read()

(24)

24

Interação de Aplicativos Web com Banco de Dados

Para criar um SqlDataReader

1) Criar uma string de conexão.

2) Criar um objeto do tipo SqlConnection. 3) Criar um objeto do tipo SqlCommand.

4) Valorar a propriedade CommandText do SqlCommand com uma sentença SQL.

5) Valor a propriedade CommandType. 6) Abrir a conexão.

7) Chamar o método ExecuteReader()

8) Percorrer o DataReader lendo a primeira coluna do Sql. 9) Fechar a conexão e liberar recursos.

(25)

25

Interação de Aplicativos Web com Banco de Dados

(26)

26

Interação de Aplicativos Web com Banco de Dados

DataSet

Tables

Recupera um DataTable. Ds.Tables[0] Ds.Tables[“AUTOMOVEL”] 

Clone()

Cria uma cópia contendo todos DataTables,

estrutura(schemas) e os relacionamentos. Os dados não são copiados.

(27)

27

Interação de Aplicativos Web com Banco de Dados

DataSet

Copy

Cria uma cópia contendo todos DataTables,

estrutura(schema), relacionamentos e os dados. DsCopy = DsAuto.Copy()

HasChanges()

Verifica se o Dataset foi modificado

if(myDataSet.HasChanges(DataRowState.Modified)) if(myDataSet.HasChanges())

(28)

28

Interação de Aplicativos Web com Banco de Dados

DataSet

GetChanges()

Recupera somente as modificações no DataSet.

xDataSet = Ds.GetChanges(DataRowState.Added); xDataSet = DsDataSet.GetChanges();

(29)

29

Interação de Aplicativos Web com Banco de Dados

DataSet

WriteXML()

Grava os dados num arquivo XML,e opcionalmente a

estrutura(schema).

Ds.WriteXml("c:\\Schema.xml",XmlWriteMode.WriteSchema)

(30)

30

Interação de Aplicativos Web com Banco de Dados

<Table>

<CustomerID>ALFKI</CustomerID>

<CompanyName>Alfreds Futterkiste</CompanyName>

<ContactName>Maria Anders</ContactName>

<ContactTitle>Sales Representative</ContactTitle>

<Address>Obere Str. 57</Address>

<City>Berlin</City>

<PostalCode>12209</PostalCode>

<Country>Germany</Country>

<Phone>030-0074321</Phone>

<Fax>030-0076545</Fax>

(31)

31

Interação de Aplicativos Web com Banco de Dados

DataSet

WriteXmlSchema()

Grava a estrutura(schema) num arquivo XML.

(32)

32

Interação de Aplicativos Web com Banco de Dados

<xs:element name="CustomerID" type="xs:string" minOccurs="0" />

<xs:element name="CompanyName" type="xs:string" minOccurs="0" /> <xs:element name="ContactName" type="xs:string" minOccurs="0" /> <xs:element name="ContactTitle" type="xs:string" minOccurs="0" /> <xs:element name="Address" type="xs:string" minOccurs="0" /> <xs:element name="City" type="xs:string" minOccurs="0" />

<xs:element name="Region" type="xs:string" minOccurs="0" />

<xs:element name="PostalCode" type="xs:string" minOccurs="0" /> <xs:element name="Country" type="xs:string" minOccurs="0" /> <xs:element name="Phone" type="xs:string" minOccurs="0" /> <xs:element name="Fax" type="xs:string" minOccurs="0" />

(33)

33

Interação de Aplicativos Web com Banco de Dados

DataSet

Merge()

Inclui um DataTable e sua estrutura(schema) dentro

de um Dataset.

DataSet Ds = new DataSet(); DataTable DtAuto = new DataTable(); DataTable DtMontadora = new DataTable();

Ds.Merge(DtAuto); Ds.Merge(DtMontadora);

(34)

34

Interação de Aplicativos Web com Banco de Dados

Objeto SqlParameter

 Quando trabalhamos com banco de dados, frequentemente precisar filtrar os dados baseados em algum critério.

Normalmente isto é feito recuperando uma informação digitada pelo usuário e incluindo o seu conteúdo dentro de uma string Sql.

O ADO.net disponibiliza a classe SqlParameter para criar parâmetros nas consultas Sql.

(35)

35

Interação de Aplicativos Web com Banco de Dados

Objeto SqlParameter

 Um péssimo exemplo:

SqlCommand cmd = new SqlCommand(" Select * from clientes where Cidade = ‘ " + txtCidade.text + " ‘ ");

(36)

36

Interação de Aplicativos Web com Banco de Dados

Objeto SqlParameter

Desvantagens sem a utilização do SqlParameter

 A Aplicação irá ficar vulnerável a Sql Injections.

As consultas não irão utilizar o recurso de Cache de Sqls do Banco de Dados.

(37)

37

Interação de Aplicativos Web com Banco de Dados

Objeto SqlParameter

Sql Injections

É um ataque no qual um código SQL é inserido dentro de uma query em

um site, permitindo a recuperação de dados sigilosos ou até mesmo a exclusão de dados.

Os códigos são inseridos diretamente nos controles de entrada do

(38)

38

Interação de Aplicativos Web com Banco de Dados

Sql Injection

Veja o exemplo abaixo:

Select count(*) from usuario where codusu = ‘ " + txtUsuario.text + “ ‘ " + “ and senha = ‘ " + txtsenha.text + “ ‘ "

O usuário digita a expressão abaixo no campo usuário: ‘ or 1 = 1

--Resultado do Sql:

(39)

39

Interação de Aplicativos Web com Banco de Dados

Objeto SqlParameter

Cache de Sqls

Recurso do SGDB que armazena em cache as sentenças SQL já executadas no banco.

Permite a reutilização dos Sqls já compilados.

 Sqls enviados sem parâmetros não conseguem utilizar o recurso de cache.

(40)

40

Interação de Aplicativos Web com Banco de Dados

Objeto SqlParameter

(41)

41

Interação de Aplicativos Web com Banco de Dados

Objeto SqlParameter

SqlCommand cmd = new SqlCommand("INSERT INTO MONTADORA VALUES(@CODMONTADORA,@NOME)");

cmd.Parameters.Add("@CODMONTADORA", SqlDbType.Int);

cmd.Parameters[“@CODMONTADORA”].Value = codigo;

cmd.Parameters.Add("@NOME", SqlDbType.VarChar);

(42)

42

Interação de Aplicativos Web com Banco de Dados

SqlParameter X Concatenação

SqlCommand cmd = new SqlCommand("INSERT INTO MONTADORA VALUES(@CODMONTADORA,@NOME)");

SqlCommand cmd = new SqlCommand("INSERT INTO

MONTADORA VALUES(" + codigo.ToString() + "," + "'" + nome + "')");

(43)

43

Interação de Aplicativos Web com Banco de Dados

SqlParameter X Concatenação

Sql gerado utilizando Parâmetros:

INSERT INTO

MONTADORA

VALUES(

@CODMONTADORA,@NOME

)

Sql gerado utilizando a Concatenação:

(44)

44

Tratamento de Exceções

Possíveis Exceções:

 Erro ao executar uma sentença SQL num banco.

 Erro na Leitura ou gravação de um arquivo.

 Erro num cálculo.

(45)

45

Tratamento de Exceções

1 SqlConnection objConexao = new SqlConnection("");

2 SqlCommand cmd = new SqlCommand("

INSERT INTO

MONTADORA VALUES(@NOME)

");

3 cmd.Parameters.AddWithValue("

@NOME

", nome);

4 objConexao.Open();

5 cmd.ExecuteNonQuery();

6 objConexao.Close();

(46)

46

Tratamento de Exceções – Try - Catch

SqlConnection objConexao; Try

{

objConexao = new SqlConnection("");

SqlCommand cmd = new SqlCommand("INSERT INTO MONTADORA VALUES(@NOME)");

cmd.Parameters.AddWithValue("@NOME", nome); objConexao.Open(); cmd.ExecuteNonQuery(); Finally { if (objConexao != null) objConexao.Close() }

(47)

47

Tratamento de Exceções – Try - Catch

try {

// Código sujeito a exceções }

catch( SqlException e ) {

// Tratamento para exceção tipo 1 }

finally {

// Trecho que deve sempre ser executado, havendo ou não exceção

(48)

48

Tratamento de Exceções – Try - Catch

Try {

SqlCommand cmd = new SqlCommand("INSERT INTO MONTADORA VALUES(@NOME)");

objConexao.Open();

cmd.ExecuteNonQuery(); Catch (SqlException ex)

{ GeraLog(ex.Message); } Finally { if (objConexao != null) objConexao.Close() }

(49)

49

Gerenciamento de Exceções

Níveis de tratamento de erros

 Página - OnError()

 Aplicação - Application_Error()

 Web.Config

(50)

50

Gerenciamento de Exceções

Armazenamento do Log de Erros

Windows Event Log

(51)

51

Gerenciamento de Exceções

Windows Event Log

(52)

52

(53)

53

Gerenciamento de Exceções

Arquivo texto

(54)

54

Controle de Transações

SqlTransaction

 BeginTransaction()

 Commit()

 Rollback()

(55)

55

(56)

56

(57)

57

Web Services - Evolução

Evolução

 Objetos compartilhados entre módulos diferentes dentro de uma mesma aplicação.( C++).

Modelo COM onde era possível compartilhar objetos entre aplicações diferentes na mesma máquina.

Modelo DCOM onde era possível compartilhar objetos entre aplicações diferentes em máquinas diferentes, porém na mesma rede local.

(58)

58

Web Services – COM Objeto Local

Sistema Financeiro Sistema RH

Sistema Contas Pagar Sistema Compras

(59)

59

Web Services – DCOM Distribuído

Clientes

Servidor

(60)

60

Web Services – Os problemas

Problemas da época

 Disponibilização de uma regra de negócios utilizando os padrões adotados pela Internet.

 Integração entre aplicações entre empresas com tecnologias diferentes. Uma solução para cada tipo de tecnologia era impraticável.

 Evolução dos negócios na Internet.(integração, acompanhamento)

(61)

61

Web Services – Tecnologias do Passado

Tecnologias do passado

 CORBA  EDI

 EJB ( Enterprise JavaBens)

Desvantagens

 Utilizavam tecnologias proprietárias e várias linguagens, dificultando o desenvolvimento.

 Problemas na integração ( Qual é a linguagem? De qual fabricante? Qual é a versão?)

 Trabalhavam no formato binário, exigindo a abertura de várias portas.

(62)

62

Web Services – Conceito

Conceito

 Utilizam padrões abertos e já existentes( SOAP, HTTP) baseados em XML, possibilitando a integração entre aplicações que estejam em diferentes empresas e com infra-estrutura diferentes.

 É a evolução nos padrões de desenvolvimento de aplicações distribuídas, permitindo que aplicações compartilhem informações e dados umas com as outras.

 São serviços distribuídos que processam mensagens codificadas em XML e que podem estar acessíveis na rede.

(63)

63

Web Services – Comunicação

Comunicação

.

 A comunicação entre o Web Service e os “Clientes” é através de mensagens XML que são transmitidas utilizando o protocolo HTTP da Internet.

 Utilizam a porta 80, porta de conexão com a Internet, impedindo que sejam bloqueados por Firewalls.

(64)

64

Web Services – Padrões

SOAP

.

 Criado em 1998 pela Microsoft, IBM e entre outras.

 É baseado no padrão XML, podendo ser interpretado por uma variedade de sistemas.

 É um protocolo para troca de informações em ambientes distribuídos, e é responsável pelo "empacotamento" dos dados no formato XML.

(65)

65

Web Services – Padrões

Web Services Description Language (WSDL)

.

 Fornece informações necessárias para se invocar um Web Services. A partir dele, podemos gerar os Proxys dos Web Services.

 É um “contrato” que o Web Service fornece para que os “clientes” possam conhecer os métodos e tipos suportados.

 O WSDL fornece as seguintes informações:  Tipos de dados.

 Os métodos disponíveis.  As URLs de acesso.

(66)

66

Web Services – Padrões

UDDI (Universal Description, Discovery and Integration)

.

 É uma “lista amarela” de pesquisa de Web Services.

 Empresas como SAP, IBM, Microsoft e Novel e entre outras possuem o serviço de busca e registro..

 Permite o registro do Web Service de forma Privada ou Pública.  www.uddi.org e www.uddi.microsoft.com

(67)

67

(68)

68

Web Services – Estudo de Caso

Aluguel de Carros

Solução:

Interligação da aplicação de aluguel de carros com aplicações

das companhias aéreas, permitindo que o consumidor

sincronize o seu roteiro de viagem com a locação de carros.

Arquitetura:

Web Services que fornece os estoques de carros disponíveis e

realização de reservas.

(69)

69

Web Services – Estudo de Caso

Aluguel de Carros

Benefícios para o negócio:

Criação de um novo canal de vendas.

Redução dos custos operacionais.

(70)

70

(71)

71

Web Services – Níveis de Segurança

Níveis de segurança

WSE 3.0 – Possibilita a criação de políticas de segurança.

SoapExtension

(72)

72

Web Services – Acesso

Acesso

Web Services Locais

O Visual Studio disponibiliza uma página de teste.

Web Services Remotos

Através da Ferramenta Web Service Studio.

http:\\NomeServidor\NomeProjeto\NomeWebService.asmx

http:\\localhost\CalculaFrete\Fretes.asmx

(73)

73

Web Services – Conclusão

Você procura no Google (UDDI) por um restaurante.

No restaurante você lê o cardápio (WSDL), para saber o que

pedir.

Em seguida, você faz o pedido ao garçom (SOAP), que leva o

pedido até ao cozinheiro.

O cozinheiro prepara sua comida (classe que implementa o

serviço).

Depois de pronta, o garçom traz de volta sua comida (SOAP de

resposta).

(74)

74

Web Services – WebMethod Attributes

WebMethod Attributes

 Description

(75)

75

Web Services – WebMethod Attributes

WebMethod Attributes

(76)

76

Web Services – WebMethod Attributes

WebMethod Attributes

(77)

77

Web Services – Métodos Assíncronos

Métodos Assíncronos X Síncronos

 Síncrono

Significa quem chamou o método deve esperar o retorno

para que seja possível executar outros comandos.

 Assíncrono

Não é necessário esperar o retorno de método chamado

para executar outras operações e outros métodos.

(78)

78

Web Services – Métodos Assíncronos

Métodos Assíncronos X Síncronos

 Assíncrono

Os métodos começam com BeginNomeDoMétodo

Exemplos:

BeginCalculaFrete ( )

BeginCalculaTaxa ( )

(79)

79

Web Services – Métodos Assíncronos

Métodos Assíncronos.

O WSDL automaticamente cria 3 métodos para cada tipo de

Operação

 Um método para acesso Síncrono.

NomeMetodoWebService

 Dois métodos para acesso Assíncrono.

BeginNomeMetodoWebService

EndNomeMetodoWebService

(80)

80

Web Services – Métodos Assíncronos

Métodos CallBack.

É uma técnica onde passamos o método de CallBack numa

chamada para um método BeginNomeMetodo (Assíncrono)

Este método CallBack será responsável pela chamada do

método EndNomeMetodo após a finalização do processo.

(81)

81

Web Services – Utilitários

WSDL.EXE

Utilizado para criar um Proxy no cliente através de um arquivo

WSDL

Exemplo:

wsdl /language:CS /out:CalculaTaxasProdutos.cs

Produtos.wsdl

(82)

82

ASP.NET - Navegação

Passando parâmetros entre WebForms.

 Session

 QueryString

 HttpContext

 PreviousPage

(83)

83

ASP.NET - Navegação

Passando parâmetros entre WebForms – Session

Página de origem:

//Inclui o código do automóvel selecionado numa variável de sessão.

Session["

codAuto

"] = 10;

//Redireciona para a página de destino

Response.Redirect("

CadAuto.aspx

");

Página de Destino:

int codAuto;

//Recupera o valor da Sessão

codAuto = Convert.ToInt32(Session["

codAuto

"]);

//Exclui o conteúdo da sessão

(84)

84

ASP.NET - Navegação

Passando parâmetros entre WebForms – QueryString

Página de origem:

Int codAuto = 10;

//Adiciona uma query string na URL.

Response.Redirect("

CadAuto.aspx?codAuto=“

+ CodAuto.ToString();

Página de Destino:

int codAuto;

//Recupera o valor da query string

(85)

85

ASP.NET - Navegação

Passando parâmetros entre WebForms – HttpContext

Página de origem:

//Inclui um valor no contexto

Context.Items[“

CodAuto

"] =10;

Server.Transfer("

CadAuto.aspx

");

Página de Destino:

int codAuto;

//Verifica se existe o CodAuto no contexto

if (Context.Items.Contains(“

CodAuto

"))

{

codAuto = Convert.ToInt32(Context.Items[“

CodAuto

"])

}

(86)

86

ASP.NET - Navegação

QueryString – Desvantagens

 Os valores são expostos na URL.

 O tamanho da QueryString é limitado ( 255

caracteres).

 Só poderá conter valores simples. Objetos / estruturas

não são permitidos.

(87)

87

ASP.NET - Navegação

HttpContext – Vantagens

 É permitido armazenar objetos ( Ex: ArrayList ou um

DataTable).

 É mais seguro, pois as informações não são

expostas.

(88)

88

ASP.NET - Navegação

HttpContext – Desvantagens

 Os valores armazenados no Context são válidos

somente durante a duração de uma requisição.

 As informações no Context são perdidas num

(89)

89

ASP.NET - Navegação

Session

Vantagem

 Os valores armazenados em Sessão são seguros,

pois ficam armazenados na memória do servidor.

Desvantagens

 Pode degradar a performance do servidor caso seja

mal utilizada.

 Os valores armazenados só serão perdidos se a

(90)

90

ASP.NET - Navegação

Navegando entre páginas

Response.Redirect

 O redirecionamento ocorre no cliente.

 É utilizado para redirecionar páginas ASPX e HTML

que estão hospedadas internamente ou

externamente.

 Podemos enviar parâmetros através da QueryString.

(91)

91

ASP.NET - Navegação

Navegando entre páginas

Server.Transfer

 Transfere a execução de uma página para uma outra

página. A execução da página atual é finalizada e o

controle é transferido para a outra página.

 A página ASPX a ser requisitada deverá estar dentro

do mesmo servidor.

 Não permite o envio de parâmetros através de

QueryStrings.

 A transferência ocorre no servidor, mantendo a URL e

o contexto da página original.

(92)

92

ASP.NET - Componentes e Controles

Introdução

 O desenvolvimento de software seria muito mais difícil se a

cada nova aplicação tivéssemos que reescrever todo o código.

 Umas das características do FrameWork.net é a

extensibilidade, que permite a reutilização dos controles

/componentes já existentes.

(93)

93

ASP.NET - Componentes e Controles

Benefícios

 Um componente poderá ser facilmente utilizado em outra

aplicação.

 Componentes podem ser testados somente uma vez.

 Alguns componentes, como os User Controls, podem ajudar

na construção e reutilização de Interfaces.

(94)

94

ASP.NET - Componentes e Controles

O Visual Studio permite trabalhar com os seguintes

tipos de controles:

 HTML Controls

 HTML Server Controls

 Web Server Controls

 Validation Controls

 User Controls

(95)

95

ASP.NET - Componentes e Controles

HTML Controls

São controles com elementos HTML e são tradicionalmente

usados nas páginas ASP e suportados no ASP.NET também.

Não são programaticamente acessíveis no servidor.

 Estão disponíveis na ToolBox do VS na Aba HTML.

(96)

96

ASP.NET - Componentes e Controles

HTML Server Controls

Possui as mesmas funcionalidades do HTML Controls, porém

acessível programaticamente no servidor

.

Qualquer HTML Control pode ser convertido em HTML Server

Control aplicando o atributo

runat=“Server”

no controle

.

<input id=”txtName” type=”text” runat=”server”>

 Estes controles existem para facilitar a migração de páginas

para o modelo do ASP.NET

(97)

97

ASP.NET - Componentes e Controles

Web Server Controls

São controles projetados para trabalhar com o modelo de

programação do ASP.NET.

 Possuem propriedades e métodos mais avançados e

programaticamente acessíveis no servidor.

 Podem ser adicionados na ToolBox do VS.

Exemplos:

GridView

CheckBox

LinkButton

TextBox

(98)

98

ASP.NET - Componentes e Controles

Validation Controls

Fornecem a funcionalidade de validação dos dados de entrada

do usuário.

Exemplos:

 RequiredFieldValidator

 CompareValidator

 RangeValidator

 RegularExpressionValidator

(99)

99

ASP.NET - Componentes e Controles

User Controls

É um container onde podemos incluir outros controles Web

Server Controls e HTML Controls com a finalidade de reutilizar a

interface e a lógica.

 É fácil de ser implementado e tem como objetivo de eliminar os

arquivos de #Include do ASP tradicional.

 Podemos fragmentar a página com vários User Controls, com a

finalidade de colocar no cache somente os controles mais

pesados.

(100)

10

0

ASP.NET - Componentes e Controles

User Controls

Cada controle adicionado na página tem seu processamento

independente, mesmo sendo iguais, cada evento disparado dentro

do seu controle será processado pelo mesmo.

 Os controles herdam da classe System.Web.UI.UserControl.

 User Controls só poderão ser utilizados dentro de uma mesma

aplicação.

 Possuem a extensão ASCX e não podem ser adicionados na

ToolBox.

(101)

10

1

ASP.NET - Componentes e Controles

User Controls

(102)

10

2

ASP.NET - Componentes e Controles

Construindo um Web Custom Control.

Utilizar o projeto do tipo Web Control Library.

Criar uma classe herdando de alguma outra classe do

namespace System.Web.UI.WebControls.

Reescrever os métodos necessários.

Compilar o projeto, e incluir a DLL gerada na ToolBox do VS.

(103)

10

3

(104)

10

4

Interação de Aplicativos Web com Banco de Dados

Orientação a objetos

Herança

Compartilhamento de atributos e operações entre classes.

Encapsulamento

Prática de “esconder informação” e detalhes internos na implementação de uma operação que é acessível a outros objetos.

Polimorfismo

Uma mesma operação que pode ter comportamento diferente em classes diferentes.

(105)

10

5

Interação de Aplicativos Web com Banco de Dados

Classe Empregado

1) Criar uma classe Empregado. 2) Criar duas propriedades.

Nome (string), Sobrenome (string) e salário (double).

3) Criar um novo Constructor para a classe passando três parâmetros (Nome,Sobrenome e Salário).

4) Criar dois métodos virtuais.

(106)

10

6

Interação de Aplicativos Web com Banco de Dados

Classe Diretor

1) Criar uma classe Diretor que herda da classe Empregado. 2) Criar uma propriedade.

 ValorParticipacao (Double).

3) Criar um novo Constructor passando quatro parâmetros (Nome,Sobrenome,salário e o Valor da Participação). 4) Sobrescrever os métodos da classe base.

(107)

10

7

Interação de Aplicativos Web com Banco de Dados

Classe Vendedor

1) Criar uma classe Vendedor que herda da classe Empregado. 2) Criar duas propriedades.

 QuantidadeItemVendidos e ValorItem.

2) Criar um novo Constructor passando cinco parâmetros

(Nome,Sobrenome,salário,quantidade itens e Valor do item). 3) Sobrescrever os métodos da classe base.

(108)

10

8

Interação de Aplicativos Web com Banco de Dados

Utilização das classes

(109)

10

9

Interação de Aplicativos Web com Banco de Dados

Utilização das classes

(110)

11

0

Interação de Aplicativos Web com Banco de Dados

Utilização das classes

(111)

11

1

(112)

11

2

Interação de Aplicativos Web com Banco de Dados

Construindo um biblioteca de Acesso a dados

1) Crie um projeto do tipo Class Library chamado Negocio. 2) Crie uma classe chamada Acesso.

3) Na classe Acesso crie uma propriedade Conexao do tipo SqlConnection.

4) Na classe Acesso crie dois métodos: FecharConexao() e CriarConexao()

(113)

11

3

Interação de Aplicativos Web com Banco de Dados

Construindo um biblioteca de Acesso a dados

1) Crie a classe chamada Montadora herdando da classe Acesso.

2) Crie o método ListarMontadora na classe Montadora. Este método irá retornar um DataTable.

(114)

11

4

Interação de Aplicativos Web com Banco de Dados

Construindo um biblioteca de Acesso a dados

1) Crie a classe chamada Automovel herdando da classe Acesso. 2) Crie o método ListarAutomovel na classe Automovel. Este

método irá retornar um DataTable.

3) Crie o método ConsultarAutomovel na classe Automovel. Este método irá retornar um DataTable.

4) Crie o método ExcluirAutomovel na classe Automovel. Este método terá como parâmetro o código do Automóvel.

5) Crie o método AlterarAutomovel na classe Automovel. Este método terá como parâmetro todos os atributos do Automóvel. 6) Crie o método IncluirAutomovel na classe Automovel. Este

(115)

11

5

Interação de Aplicativos Web com Banco de Dados

Construindo um biblioteca de Acesso a dados

1) Crie a classe chamada Venda herdando da classe Acesso. 2) Crie o método ListarVendas na classe Venda. Este método

irá retornar um DataTable.

3) Crie o método ConsultarVenda na classe Venda. Este método irá retornar um DataTable.

4) Crie o método ExcluirVenda na classe Venda. Este método terá como parâmetro o código da venda.

5) Crie o método AlterarVenda na classe Venda. Este método terá como parâmetro todos os atributos da Venda.

6) Crie o método IncluirVenda na classe Venda. Este método terá como parâmetro todos os atributos da Venda.

Referências

Documentos relacionados

Uma outra coisa, depois que ela aceitar o CDI e você a levar para casa você pode ter que repetidamente fazer CDI até que você esteja na verdade fazendo sexo com ela.. Também,

Lamarck propôs duas hipóteses: uso e desuso e

O método idealista, no entanto, possui o grande mérito de ter alertado para o lado individual e criativo da vida da linguagem, dando ênfase espe- cial aos fatores

02) Com as classes criadas no exercício anterior, crie uma classe SistemaInterno que tenha um método autentica e receba um usuário autenticável (Diretor, Gerente e Cliente)

§ métodos construtores: crie um construtor padrão (sem parâmetro e vazio) e um construtor passando parâmetros para cada atributo da classe;.. § método toString(): monta uma

Crie um método que retorne o valor do ingresso VIP (com o adicional incluído). b) crie uma classe Normal, que herda Ingresso e possui um método que imprime: &#34;Ingresso

„ Crie uma atributo private para uma lista de Automovel na classe de “escrita”;. „ Faça um método private

Serve para que o método ou o atributo seja público dentro do código da própria classe e de qualquer classe que herde daquela onde está o método ou propriedade protected..