Interação de Aplicativos
Web com Banco de Dados
Versão 0.5
2
O Professor
Formação
Experiência profissional
3
A Matéria
ADO.net
Biblioteca de acesso a Dados.
Web Services.
4
Conteúdo
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
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
9
Interação de Aplicativos Web com Banco de Dados
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)
SqlCommand SqlConnection SqlDataReader
OLE DB .Net Data Provider (SQL 6.5, DB2, Access)
OleDBCommand OleDBConnection OleDBDataReader
11
Interação de Aplicativos Web com Banco de Dados
SqlConnection
Propriedades
ConnectionString ( Pool de conexão) ConnectionTimeout
State
Métodos
Open / Close CreateCommand
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
Interação de Aplicativos Web com Banco de Dados
14
Interação de Aplicativos Web com Banco de Dados
SqlCommand
Propriedades
CommandText CommandType Connection Métodos
ExecuteNonQuery ExecuteScalar ExecuteReader15
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
Interação de Aplicativos Web com Banco de Dados
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
Interação de Aplicativos Web com Banco de Dados
19
Interação de Aplicativos Web com Banco de Dados
Objeto SqlDataAdapter
Propriedades
SelectCommand DeleteCommand InsertCommand Métodos
Fill() Update()20
Interação de Aplicativos Web com Banco de Dados
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
Interação de Aplicativos Web com Banco de Dados
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
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
Interação de Aplicativos Web com Banco de Dados
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
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
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
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
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
Interação de Aplicativos Web com Banco de Dados
DataSet
WriteXmlSchema()
Grava a estrutura(schema) num arquivo XML.
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
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
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
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
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
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
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
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
Interação de Aplicativos Web com Banco de Dados
Objeto SqlParameter
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
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
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
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
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
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
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
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
Gerenciamento de Exceções
Níveis de tratamento de erros
Página - OnError()
Aplicação - Application_Error()
Web.Config
50
Gerenciamento de Exceções
Armazenamento do Log de Erros
Windows Event Log
51
Gerenciamento de Exceções
Windows Event Log
52
53
Gerenciamento de Exceções
Arquivo texto
54
Controle de Transações
SqlTransaction
BeginTransaction()
Commit()
Rollback()
55
56
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
Web Services – COM Objeto Local
Sistema Financeiro Sistema RH
Sistema Contas Pagar Sistema Compras
59
Web Services – DCOM Distribuído
Clientes
Servidor
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
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
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
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
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
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
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
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
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
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
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
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
Web Services – WebMethod Attributes
WebMethod Attributes
Description
75
Web Services – WebMethod Attributes
WebMethod Attributes
76
Web Services – WebMethod Attributes
WebMethod Attributes
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
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
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
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
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
ASP.NET - Navegação
Passando parâmetros entre WebForms.
Session
QueryString
HttpContext
PreviousPage
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
10
1
ASP.NET - Componentes e Controles
User Controls
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.
10
3
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.
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.
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.
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.
10
8
Interação de Aplicativos Web com Banco de Dados
Utilização das classes
10
9
Interação de Aplicativos Web com Banco de Dados
Utilização das classes
11
0
Interação de Aplicativos Web com Banco de Dados
Utilização das classes
11
1
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()
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.
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
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.