|
|
|

|
| |
Take Learning to a
Whole New Level
ADO.NET 2.0 Essentials
Interactive Instructor Based
Video Training Courses
One of this training
instructor's readers
had this to say
about Sahil's book
on ADO.NET 2.0:
"This is another
book (Pro ADO.NET
2.0/Apress) that
gets my “Run!”
recommendation – as
in “run, don't walk,
to your closest book
store” and buy
yourself a copy." -
Thomas Wagner (wagnerblog.com)
|
|

|
|
|
|
|
Sahil Malik has been working
as a consultant in Microsoft
technology for about 9 years
now. He has worked for many
top notch clients across the
globe including many fortune
100 companies and government
organisations within the
United States. Malik started
programming in a DOS world,
moved to Win32 API, Borland
C++, MFC, VC++/ATL, VB 6,
and eventually to .NET in
both VB.NET and C# worlds.
He is currently helping
architect a highly visible
public website using ASP.NET
2.0/SQL Server 2005, and
also leads the office of
emerging technologies at a
prominent government office.
Malik frequently speaks at
local user groups and
conferences. He also
co-wrote Pro ADO.NET with VB
.NET 1.1 . For his community
involvement and
contribution, he has also
been awarded the Microsoft
MVP award. |
| |
|
|
|
| |
1.1 Pre requisites for this
course
1.2 What is ADO.NET
1.3 Building your first
application – Drag and Drop
Winforms
- Adding a datasource
to your winforms
application
- ConnectionStrings
section in Web.Config
- Brief introduction
to a Strongly Typed
Dataset
- Introduction to
DataGridView or Details
View for Winforms
- Introduction to
TableAdapters
- Introduction to
BindingSource
- Introduction to
BindingNavigator
1.4 Building your first
application – Drag And Drop
ASP.NET
- Authentication,
security and connection
strings in web based
applications
- A slightly more
hands on approach
- Introduction to
SqlDataSource
- Specifying your own
queries to a
SqlDataSource
- Tying together a
SqlDataSource with a
ConnectionString in the
config file
- The ASP.NET GridView
Control
- Tying an ASP.NET
GridView to a
SQLDataSource
- Enabling
Paging/Sorting on
GridView
- Why Drag & Drop is
not all you need to
know?
1.5 The connection object
- The SqlConnection
Object
- Connecting to the
database
- The
ConnectionStringBuilder
- Connection Pooling
- Best practice: Open
as late as possible and
close as early as you
can.
1.6 The command object
- The SqlCommand
Object
- The various execute
methods on a SqlCommand
- Fetching Scalar
Values out of the
database
1.7 Data Readers
- The
SqlComamnd.ExecuteReader
method
- Checking for the
existence of rows in a
data reader
- Fetching different
datatypes out of a data
reader
- The right usage and
limitations of a
SqlDataReader.
- CommandBehaviors
when creating
SqlDataReaders
- Configuring the
Internal buffering
behavior of
SqlDataReader using
CommandBehavior.SequentialAccess
- Batched TSQL
commands
- Using Batched TSQL
commands, or stored
procedures to return
multiple tabular results
in a resultset
- Using a
SqlDataReader to browse
over multiple tabular
results.
1.8 Asynchronous Commands
- Limitations of
running Execute commands
on a SqlCommand object
- Basics of ASynch
execution
- The Begin/End design
pattern for running
Asynch operations
- Modifying a
synchronous
SqlDataReader
application to convert
it into an Asynch
application
- Things to be careful
of in an Asynch
application.
1.9 Connected Nature of
Commands and Connections
- The need for
disconnected objects
- Desirable
characteristics for
disconnected objects
- Disconnected data
objects
- Business Objects
- Disconnected data
objects
- Data Transfer
Objects
- DataSet and family
2.1 Introduction to DataSet
and Strongly typed DataSets
- Creating a Strongly
Typed Dataset in Visual
Studio
- Specifying relations
between tables in
Strongly typed datasets
- Examining the auto
generated code.
- Using the strongly
typed dataset - reading
and writing to an XML
file
- Controlling the XML
output using the Nested
Property on DataRelation
- Creating an
application to load,
edit, create, and save a
strongly typed dataset
- Extending the same
application to load,
edit, create, and save a
non-strongly typed
dataset
- Compare the usage of
strongly typed dataset
versus non-strongly
typed dataset
- Discussing other
possibilities with
disconnected objects
2.2 Working with
disconnected data – adding
and editing
- Creating a new row
and adding it to a
DataTable
- Examining the
RowStates for Detached
and Added rows
- Modifying a datarow
contents
- Comparing the Added
vs. Modified Rowstates
- Extracting Changes
from a DataSet
- Setting Expressions
on new data columns &
limitations of
non-strongly typed
datasets
2.3 Working with
disconnected data –
Searching, Sorting
- Finding a specific
row in a DataTable using
the Find Method
- Specifying a primary
key to a DataTable
- The difference
between Removing and
Deleting a row from a
DataTable
- Finding more than
one matching rows using
the Select Method
- Sorting DataTable
data
- Filtering data as
per RowStates
- Comparing the
filtering usage in
strongly typed datasets
- Browsing through
relational data in a
dataset
2.4 Introduction to DataView
objects
- Comparing a dataview
to a database view
- DataTable.Select
versus
DataView.RowFilter
- Sorting using a
DataView
- Limiting the number
of columns in the
resultset
- Comparing holding a
reference to a DataTable,
to creating a new
DataTable
- Doing a select
distinct equivalent on a
DataTable
2.5 Level 2 Recap
3.1 Filling Data – The
DataAdapter
- Various ways of
setting up a DataAdapter
- Demonstrating the
interaction of
SqlConnection and
DataAdapter, and how
DataAdapter gives you
better connection
pooling
- Modifying
disconnected data
- Demonstrating that
the data is indeed
disconnected
3.2 Saving Data –
CommandBuilder
- DataAdapter.Update
- The Update that
inserts, updates and
deletes
- Specifying Insert,
Update and Delete
commands to a
DataAdapter
- Creating the
commands automatically
using a CommandBuilder
object
- Demonstrating the
connection between
RowStates and the exact
command called
- Why are the default
CommandBuilder commands
are woefully terrible
- Restrictions on
using CommandBuilder
- Demonstrate options
for fixing
CommandBuilder commands
Conflict Option
3.3 Saving Data – Your own
commands
- Situations where you
must specify your own
commands
- Specifying Stored
Procedures to
SqlCommands
- Adding Parameters to
a SqlCommand
- Connecting a
DataTable with a Stored
procedure
- The SourceColumn
property of a
SqlParameter
- Concurrency Issues
- Adding new key
values to new rows
3.4 A quick primer on
concurrency
- Concurrency
Management Basics
- Avoiding concurrency
conflicts
- Optimistic vs.
Pessimistic Concurrency
Checks
- Various kinds of
Optimistic concurrency
mechanisms and their
problems
- Concurrency
management in
hierrachical data
3.5 Primary Concurrency
Resolution
- Using a DataGridView
to restrict user input
based on a Strongly
Typed Dataset
- Creating a windows
based, handwritten data
driven application
- Writing your own
commands that fetch back
identity values
- Specifying negative
seed and increment
values on the primary
key to generate fake
keys
- Replacing the fake
keys with database
generated keys during
DataAdapter.update
3.6 Level 3 Recap
- Transaction Basics
- What is a
Transaction?
- Basic
Characteristics of a
Transaction.
4.1 Transactions in Database
and Transactions through
ADO.NET
- Writing two
SqlCommands in a
non-transactional code,
comparing it to TSQL
- The SqlTransaction
data type
- Wrapping those two
commands inside a
transaction using the
SqlTransaction variable.
- Using Try-Catch
blocks to write elegant
transactional code.
- Best practices in
writing Transactional
Code
4.2 Transactions in
disconnected data
- Using SqlTransaction
with DataAdapters
- Fetching the last
refresh of data, after
having saved data using
a DataAdapter
- The need for tying
in all commands on a
dataadapter on a
SqlTransaction
- Various Scenarios in
transactional updates
using DataAdapters
- Using GetChanges and
Merge to gracefully
refresh data out of the
database
- Specifying Schema
information to a DataSet,
so Merge works
intelligently
-
AcceptChangesOnUpdate
- Preserving RowStates
in event of a failed
transaction
-
ContinueUpdateOnError
- Continue with
further rows in event of
a failed command
4.3 System.Transactions
Theory
- Various options for
distributed transactions
- Introduction to
System.Transactions
- Important names
- Resource Managers
and Transaction
Coordinator
- Two phase commit
basics
- Lightweight
Transaction Manager
versus MSDTC
- Enlistment
Mechanisms
- Volatile, Durable
and Promotable
4.4 System.Transactions
Example
- Usage of
TransactionScope
- Rolling back using
System.Transactions
- Demonstrating
promotion to MSDTC
- Isolation level
increment on promotion
of a transaction
4.5 Level 4 Recap
- Comparing SQLCLR
with TSQL
- Right usage of
SQLCLR
- Comparing SQLCLR
with extended stored
procedures
5.1 Writing your first
SQLCLR object – A UDF
- Leveraging Visual
Studio to write SQLCLR
objects
- Enabling SQLCLR
Debugging on a server
- Writing a simple UDF
in SQLCLR
- Debugging SQLCLR
code
5.2 Writing a TVF
- Specifying
FillRowMethodName and
TableDefinition to a UDF
- Returning an
IEnumerable for the
table
- Seperating out a
row's contents into
column details,
implementing the Fill
Row Method
- Implementing the
enumerator
- Pros and Cons of
using inbuilt
enumerators versus
writing your own.
5.3 Interacting with the
underlying database –Context
Connections & Transactions
- An intro to Context
connections
- Restrictions on
Context Connections
- How many context
connections can you
open?
- Using SQLCLR code
inside a transaction
with other TSQL code
- Latching onto the
current transaction
using
System.Transactions
- System.Transactions
integration with SQLCLR
- Best practices for
using SqlTransaction
versus
System.Transactions in
SQLCLR code.
5.4 Course Recap |
|
Note: Course
outlines are subject to change.
Buying Options -
Pricing
ADO.NET 2.0 Essentials on DVD-ROM
- Desktop Learning Library Edition
6 Levels (161 Lessons) Single User
6 Levels (161 Lessons) Lending
License
ADO.NET 2.0 Essentials Online
6 Levels (161 Lessons)
| For more information please contact the
MicroWay sales team: |
|
Head Office
MicroWay Pty Ltd
PO Box 84,
Braeside, Victoria, 3195, Australia
Ph: 1300 553 313
Fax: 1300 132 709
sales@microway.com.au |
 |
Sydney Sales Office
MicroWay Pty Ltd
PO Box 1733,
Crows Nest, NSW 1585, Australia
Tel: 1300 553 313
Fax: 1300 132 709
sales@microway.com.au |
|
 |
|
International: call +61 3 9580 1333, fax +61 3 9580 8995
|
|
|