1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper...

30
1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA

Transcript of 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper...

Page 1: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

1 /28

Introduzione a ADO.NET

Silvano CorianiDeveloper & Platform Evangelism

MCTrainerMCSDeveloperMCADeveloperMCSEInternetMCDBA

Page 2: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

2 /28

Da dove iniziare...

Page 3: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

3 /28

.NET Data Access Overview

Page 4: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

4 /28

.NET Data Access Overview

Page 5: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

5 /28

.NET Data Access Overview

Page 6: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

6 /28

Da ADO 2.x a ADO.NET

ConnectionConnection

AD

OA

DO

.NET

CommandCommand

RecordsetRecordset

XxxConnectionXxxConnection

XxxCommandXxxCommand

DataSetDataSet

XxxTransactionXxxTransaction

XxxDataReaderXxxDataReader

XxxDataAdapterXxxDataAdapter

Page 7: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

7 /28

Architettura applicativa

Page 8: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

8 /28

.NET Data Provider

• connessaCommand

Page 9: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

9 /28

.NET Data Provider

• DataAdapter• DataReader

Page 10: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

10 /28

.NET Application.NET Application

ODBCODBC

OLE DBOLE DB

Other DBMSOther DBMSNon-relationalNon-relational

sourcessources

OLE DB ProviderOLE DB Provider

SQL ServerSQL Server

System.Data.SqlClientSystem.Data.SqlClient System.Data.OleDbSystem.Data.OleDbSystem.Data.OracleSystem.Data.Oracle

OracleOracle

DataSetDataSet

System.Data.OdbcSystem.Data.Odbc

Page 11: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

11 /28

I componenti di ADO.NET

Data SourceData Source

.NET Data Provider.NET Data Provider

ConnectionConnection

CommandCommand

DataAdapterDataAdapter

DataReaderDataReader

.NET Data Storage.NET Data Storage

DataSetDataSet

DataTablesDataTables

XMLDataXMLData

XMLDataSchemaXMLDataSchema

XMLXML

Page 12: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

12 /28

Data

ADO.NET in uno scenario connesso

XxxConnectionXxxConnection

XxxCommandXxxCommand

XxxDataReaderXxxDataReader

Page 13: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

13 /28

DEMO

Page 14: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

14 /28

Architettura Connessa vs. Disconnessa

• DataAdapterDataSet

Page 15: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

15 /28

ADO.NET in uno scenario disconnesso

XxxConnectionXxxConnection

XxxDataAdapterXxxDataAdapter

DataSetDataSet

Data

Page 16: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

16 /28

Architettura Connessa vs. Disconnessa

Page 17: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

17 /28

DEMO

Page 18: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

18 /28

DataSet: Intro

Page 19: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

19 /28

DataSet: Intro

• Basato su un paradigma a “collezioni”– DataRow come collezione di

campi/colonne– DataTable come collezione di

DataRow– DataRelations come collezione di

relazioni tra le DataTables– Constraints

• array based

Page 20: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

20 /28

DataSet: Intro

• schema XSDMarshalByValueObjectISerializable

Page 21: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

21 /28

DataSet Object Model

DataSet

DataTableCollectionDataRelationsCollection

DataRelation DataTable

DataColumnCollectionDataRowCollectionConstraintCollection

DataColumnDataRowConstraint

DataTable DataTable

DataColumn DataRow

Page 22: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

22 /28

Popolare il DataSet

• DataAdapterstruttura via codice

Page 23: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

23 /28

DataAdapter

Page 24: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

24 /28

Architettura del DataAdapter

Data

SqlDataAdapter

SqlConnection

SelectSqlCommand

InsertSqlCommand

UpdateSqlCommand

DeleteSqlCommand

DataSet

SqlCommandBuilder

Page 25: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

25 /28

Architettura del DataAdapter

sp_SELECT

XxxCommandXxxCommand

SelectCommand UpdateCommand InsertCommand DeleteCommand

XxxDataAdapter

XxxCommandXxxCommand XxxCommandXxxCommand XxxCommandXxxCommand

XxxConnectionXxxConnection

sp_UPDATE sp_INSERT sp_DELETE

XxxDataReaderXxxDataReader

Page 26: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

26 /28

Ma dobbiamo scrivere tutto a mano?

Page 27: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

27 /28

DEMO

Page 28: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

28 /28

In sintesi

Page 29: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

29 /28

News

Page 30: 1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer MCSDeveloper MCADeveloper MCSEInternet MCDBA.

30 /28