Slideshare.net (beta)

 

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 0 (more)

Desenvolvimento em .Net - Acesso a Dados

From vitor.silva, 1 month ago

359 views  |  0 comments  |  0 favorites  |  7 downloads  |  1 embed (Stats)
 

Tags

tutorial .net

 
 

Groups / Events

 

 
Embed
options

More Info

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License
This slideshow is Public
Total Views: 359
on Slideshare: 351
from embeds: 8

Slideshow transcript

Slide 1: Desenvolvimento em .Net Acesso a Dados

Slide 2: Objectivos ● perceber objectivos do ADO.NET ● conhecer arquitectura do ADO.net ● saber o que são Datasets ● saber o que são Datatables ● saber o que são typed datasets ● saber criar datasets e datatables dinamicamente

Slide 3: Objectivos ● conhecer operações básicas com datasets e tabelas ● perceber conceito de serialização de dados ● identificar objectos relativos a ligações fisicas à base de dados ● conhecer interfaces que têm que ser implementados por dataproviders

Slide 4: Objectivos ● perceber como tirar vantagem de “programação de dados” usando interfaces ● saber utilizar connection, command, datareader, dataadapter ● perceber como é conseguida a integração entre progress e .net ● saber como é feita a integração progress .net no MultiITV

Slide 5: ADO.NET ● Infraestrutura para acesso a dados ● Independente da base de dados ● “Disconnected architecture” ● Convertivel para xml

Slide 6: ADO.NET

Slide 7: Dataset ● base de dados em memória ● tabelas + relações – >1 tabela ● desligado da base de dados – depois de carregado ● desconhece completamente a base dados – tanto pode reter dados vindos de SQL Server, Progress, XML, ...

Slide 8: Dataset e DataTable Mental Note: schema vs dados

Slide 9: Dados sem acesso a dados ● Criar definição de dataset ● Criar definição de datatable ● Criar definição de datarow ● Criar definição de datacolumn ● Inserir dados ● Criar Projecto 0305

Slide 10: Operações básicas com datasets e tabelas ● dataset.ReadXml ● dataset.WriteXml ● datatable.Select

Slide 11: Exercicio ● Usando o projecto 0305 criar o seguinte interface e testar o código apresentado

Slide 12: Serializar ● “Magia” que transforma um objecto em texto – exemplo Xml referente a Dataset – mas pode ser aplicado a todo o tipo de objectos ● Também existe o inverso – deserializar ● Interessante para enviarmos objectos entre sistemas ou processos...

Slide 13: Typed Dataset ● Typed => que tem indicação do tipo de dados ● Ao acedermos a uma coluna de uma linha numa tabela de um dataset – Ds.Tables(0).Rows(0).Item(0) – não fazemos ideia do que está lá dentro (string, numero, data, ...) ● Typed Dataset resolve essa questão e ainda: – Ds.Tables(0).Rows(0).NomeColumn – fornece uma sintaxe mais amigavel

Slide 14: Typed Dataset ● Se tivermos a definição da tabela/dataset em XSD ● podemos usar o utilitário xsd.exe – typed dataset não é mais do que um dataset com mais propriedades ● herança....

Slide 15: Exercicio ● No último projecto... ● Project / Add New Item / XML Schema – mudar nome para tabela.xsd

Slide 16: Exercicio ● compilar projecto ● acrescentar form com seguinte código

Slide 17: Ligação a dados

Slide 18: Data Providers ● Implementam a ligação fisica à base de dados ● objectos principais – connection => ligação fisica à base de dados – command => comando para ser executado na base de dados – datareader => resultado do comando num formato forwardonly, readonly – dataadapter => resultado do comando em formato dataset

Slide 19: Data Providers ● Disponiveis com a framework – MS SQL Server => System.Data.SqlClient – ODBC => System.Data.OdbcClient – OLEDB => System.Data.OleDbClient

Slide 20: Interfaces ● Connection => IDbConnection ● Command => IDbCommand ● DataReader => IDbDataReader ● DataAdapter => IDbDataAdapter

Slide 21: Command ● Execute – devolve só o número de linhas afectadas com o comando. – ideal para inserts / updates / deletes ● ExecuteScalar – devolve somente o valor da primeira coluna da primeira linha – ideal para calculos. exemplo: comando que calcula um saldo

Slide 22: Conjuntos de Dados ● Command – ExecuteReader ● devolve um datareader – forward only, read only – DataAdapter ● Fill – cria um dataset

Slide 23: Exercicio ● Criar projecto 0306 ● testar DataReader

Slide 24: Exercicio ● testar DataAdapter

Slide 25: Parametros ● Um comando pode ter parametros – cada parametro tem um tipo, direcção e valor ● Acrescentar esta opção no projecto 0306

Slide 26: Integração Progress / ADO.Net ● ADO Datasets => Progress DataSets ● ADO DataTables => Progress Table / Temp- Tables ● Progress 9.1D e superior inclui – ProxyGenerator ● gera uma DLL que permite o acesso via Application Server a programas Progress ● esses Programas podem (entre outras coisas) devolver – ADO.Net DataTables, ADO.Net DataSets, ADO.Net Typed DataSets

Slide 27: Integração Progress / ADO.Net ● Vantagens – 0 ligações ODBC – Triggers OK ● Implica que o programa esteja bem estruturado – Dados de Entrada e Dados de saída perfeitamente definidos ● Bonus – qualquer programa Progress fica (quase) logo disponivel nas 2 plataformas ● e com esforço minimo fica disponivel via webservices

Slide 28: Integração Progress / ADO.Net ● Mais uma razão para nos programas Progress: – separar acesso a dados, visualização dos mesmos – não escrever directamente nas tabelas. – nunca usar variaveis globais, reduzir em 99% a utilização de variaveis com um ambito maior do que o procedimento onde são defindas

Slide 29: Integração Progress / ADO.Net ● E ainda: – como parte do MultiITV ● 1 DLL muito interessante=> ProxySistemaBase.dll ● 3 Programas Progress

Slide 30: ProxySistemaBase.dll ● sb221.p – Executa uma sql para a tabela e condição definidas, devolvendo os campos especificados.

Slide 31: ProxySistemaBase.dll ● sb250-01.p – Executa um programa progress e devolve uma tabela. ● inspirado no Command.ExecuteReader / DataAdapter.Fill ● sb250-02.p – Executa um programa progress e devolve um valor. ● inspirado no Command.ExecuteScalar

Slide 32: Exercicio ● Acrescentar no projecto 0306 referencias para: – ProxySistemaBase.dll – Progress.Messages – Progress.o4glrt – Progress.ssl

Slide 33: Exercicio

Slide 34: Objectivos ● perceber objectivos do ADO.NET ● conhecer arquitectura do ADO.net ● saber o que são Datasets ● saber o que são Datatables ● saber o que são typed datasets ● saber criar datasets e datatables dinamicamente

Slide 35: Objectivos ● conhecer operações básicas com datasets e tabelas ● perceber conceito de serialização de dados ● identificar objectos relativos a ligações fisicas à base de dados ● conhecer interfaces que têm que ser implementados por dataproviders