Introduction
2
Chapter 3 moves on to delving into Visual Studio .NET and how this graphical user interface makes using
ADO.NET intuitive and easy to handle. The chapter includes a number of examples to demonstrate the
principles learned.
Now that we are a little more comfortable with ADO.NET, we can begin to delve deeper into the specifics of
the technology. Chapter 4 looks at the DataReader: what it is, why you would use it and also how you
would use it in a number of situations. This in-depth look continues in Chapter 5, where we learn about the
DataSet, while Chapter 6 introduces and explores the DataAdapter.
Chapter 7 takes a closer look at the DataSet, which enables us to work with data while disconnected from the
data source; this includes an introduction to how the XML Schema Definition (XSD) language is useful when
manipulating DataSets. This leads us nicely into Chapter 8, where we explore the use of XML with the
DataSet, covering various issues such as data marshalling and data filtering, amongst others.
Chapter 9 continues the look at the DataSet by examining constraints, relations and views, all of which
influence the way that data is presented and manipulated. The chapter introduces the DataView and includes
some examples.
Chapter 10 moves on to look at the topic of transactions, an important item in the business world where either
all the operations must succeed, or all of them must fail. The chapter examines, amongst other things, isolation
levels and their impact, performance, and advanced techniques.
The concept of mapping is explored in Chapter 11: this is where we can give our own names to unintuitive
column headings in order to understand the material better.
Chapter 12 looks at creating our own Data Services component: the benefits, the creation and deployment,
and using it once it exists. The chapter also looks at tips for better performance of data service components.
This leads well into Chapter 13, where we look at ADO.NET and Web Services, in particular exchanging data,
using XML, and security.
Chapter 14 looks again at the issue of XML, this time showing how SQL Server 2000 has native support for
this cross-platform standard of data retrieval. The chapter is example-based, showing all the native XML
options at every step.
Chapter 15 moves off into the more theoretical realm of performance and security. Both are important
considerations if we will be dealing with thousands of data access demands every minute. The chapter covers
many ways to increase performance and tighten security.
Chapter 16 discusses integration and migration, particularly accessing ADO from .NET and how to handle the
migration from ADO to ADO.NET.
Chapter 17 allows us to create our own custom .NET data provider. It goes through the whole process: why
we need our own provider, the architecture and design, and the actual implementation. The chapter also shows
a number of ways that we can utilize our custom provider. The same method is employed by Chapter 18,
which finishes the book by building a case study that uses ADO.NET in the middle layer of a multi-tier system
that tracks packages for a fictional inner city bicycle courier company.