Difference between ADO and ADO.net ?

Answers were Sorted based on User's Feedback



Difference between ADO and ADO.net ?..

Answer / deepak kumar bansa;

You can understand the features of ADO.NET by comparing them
to particular features of ActiveX Data Objects (ADO).
In-memory Representations of Data

In ADO, the in-memory representation of data is the
recordset. In ADO.NET, it is the dataset. There are
important differences between them.
Number of Tables

A recordset looks like a single table. If a recordset is to
contain data from multiple database tables, it must use a
JOIN query, which assembles the data from the various
database tables into a single result table.

In contrast, a dataset is a collection of one or more
tables. The tables within a dataset are called data tables;
specifically, they are DataTable objects. If a dataset
contains data from multiple database tables, it will
typically contain multiple DataTable objects. That is, each
DataTable object typically corresponds to a single database
table or view. In this way, a dataset can mimic the
structure of the underlying database.

A dataset usually also contains relationships. A
relationship within a dataset is analogous to a foreign-key
relationship in a database —that is, it associates rows of
the tables with each other. For example, if a dataset
contains a table about investors and another table about
each investor's stock purchases, it could also contain a
relationship connecting each row of the investor table with
the corresponding rows of the purchase table.

Because the dataset can hold multiple, separate tables and
maintain information about relationships between them, it
can hold much richer data structures than a recordset,
including self-relating tables and tables with many-to-many
relationships.
Data Navigation and Cursors

In ADO you scan sequentially through the rows of the
recordset using the ADO MoveNext method. In ADO.NET, rows
are represented as collections, so you can loop through a
table as you would through any collection, or access
particular rows via ordinal or primary key index.
DataRelation objects maintain information about master and
detail records and provide a method that allows you to get
records related to the one you are working with. For
example, starting from the row of the Investor table for
"Nate Sun," you can navigate to the set of rows of the
Purchase table describing his purchases.

A cursor is a database element that controls record
navigation, the ability to update data, and the visibility
of changes made to the database by other users. ADO.NET does
not have an inherent cursor object, but instead includes
data classes that provide the functionality of a traditional
cursor. For example, the functionality of a forward-only,
read-only cursor is available in the ADO.NET DataReader
object. For more information about cursor functionality, see
Data Access Technologies.
Minimized Open Connections

In ADO.NET you open connections only long enough to perform
a database operation, such as a Select or Update. You can
read rows into a dataset and then work with them without
staying connected to the data source. In ADO the recordset
can provide disconnected access, but ADO is designed
primarily for connected access.

There is one significant difference between disconnected
processing in ADO and ADO.NET. In ADO you communicate with
the database by making calls to an OLE DB provider. In
ADO.NET you communicate with the database through a data
adapter (an OleDbDataAdapter, SqlDataAdapter,
OdbcDataAdapter, or OracleDataAdapter object), which makes
calls to an OLE DB provider or the APIs provided by the
underlying data source. The important difference is that in
ADO.NET the data adapter allows you to control how the
changes to the dataset are transmitted to the database — by
optimizing for performance, performing data validation
checks, or adding any other extra processing.

Note Data adapters, data connections, data commands,
and data readers are the components that make up a .NET
Framework data provider. Microsoft and third-party providers
can make available other .NET Framework data providers that
can be integrated into Visual Studio. For information on the
different .NET Data providers, see .NET Data Providers.

Sharing Data Between Applications

Transmitting an ADO.NET dataset between applications is much
easier than transmitting an ADO disconnected recordset. To
transmit an ADO disconnected recordset from one component to
another, you use COM marshalling. To transmit data in
ADO.NET, you use a dataset, which can transmit an XML stream.

The transmission of XML files offers the following
advantages over COM marshalling:
Richer data types

COM marshalling provides a limited set of data types — those
defined by the COM standard. Because the transmission of
datasets in ADO.NET is based on an XML format, there is no
restriction on data types. Thus, the components sharing the
dataset can use whatever rich set of data types they would
ordinarily use.
Performance

Transmitting a large ADO recordset or a large ADO.NET
dataset can consume network resources; as the amount of data
grows, the stress placed on the network also rises. Both ADO
and ADO.NET let you minimize which data is transmitted. But
ADO.NET offers another performance advantage, in that
ADO.NET does not require data-type conversions. ADO, which
requires COM marshalling to transmit records sets among
components, does require that ADO data types be converted to
COM data types.
Penetrating Firewalls

A firewall can interfere with two components trying to
transmit disconnected ADO recordsets. Remember, firewalls
are typically configured to allow HTML text to pass, but to
prevent system-level requests (such as COM marshalling) from
passing.

Because components exchange ADO.NET datasets using XML,
firewalls can allow datasets to pass.

Is This Answer Correct ?    1 Yes 1 No

Post New Answer

More ADO.NET Interview Questions

Which architecture does Datasets follow?

0 Answers  


How do we invoke queries from the application ?

2 Answers   ICICI, Microsoft,


What is concurrency? How will you avoid concurrency when dealing with dataset? (One user deleted one row after that another user through his dataset was trying to update same row. What will happen? How will you avoid the problem?)

0 Answers  


What are the rules to implement connection pooling?

0 Answers  


What are the key events of sqlconnection class?

0 Answers  






What are the different namespaces used in the project to connect the database? What data providers available in .net to connect to database?

0 Answers  


Explain the ADO . Net Architecture ( .Net Data Provider) ?

2 Answers  


Does entity framework use ado.net?

0 Answers  


Difference between DataReader and DataAdapter / DataSet and DataAdapter?

3 Answers   TCS,


How to check if the Dataset has records ?

0 Answers   NA,


ADO and ADO.NET differences ?

2 Answers   Microsoft,


What are all the commands used with Data Adapter?

0 Answers  


Categories