10265 Developing Data Access Solutions with Microsoft Visual
Studio 2010
About this Course
In this course, experienced developers who know the basics of
data access (CRUD) in Windows client and Web application
environments will learn to optimize their designs and develop
better performing data access code by using the ADO.NET Entity
Framework, LINQ, WCF Data Services, the Sync Framework, and
ADO.NET.
WE CAN CUSTOMIZE THIS COURSE FOR YOU, LEARN MORE.
Audience Profile
This course is intended for professional .NET software
developers who use Microsoft Visual Studio in a team-based,
medium-sized to large development environment. They will have
experience implementing data access and data binding within their
Web and/or Windows client applications and are interested in
learning to optimize data access code in their applications by
using the Entity Framework, LINQ, and ADO.NET. Members of the
audience are experienced users of Microsoft Visual Studio 2008 SP1
or newer releases of the Visual Studio product. The audience has
some experience using Visual Studio 2010 for either Windows client
or Web application development.
Typically, this audience has the following
knowledge/experience:
- Experience developing n-tier applications that access various
data sources
- Experience implementing data binding within their
applications
- Some experience using LINQ and ADO.NET
- A conceptual understanding of the Entity Framework
At Course Completion
After completing this course, students will be able to:
- Evaluate a variety of business cases, and then select an
appropriate combination of data access technologies and tools most
appropriate to each case. Describe the roles of Entity
Framework, WCF Data Services, and ADO.NET for building and
maintaining applications. Use LINQ on top of these technologies to
improve productivity and the quality of their applications.
- Use the tools provided with the Entity Framework to map the
conceptual model used by the business logic of an application to
the logical data model provided by a database.
- Query an Entity Data Model (EDM) by using common methods such
as LINQ to Entities, Entity SQL, and the classes in the
EntityClient namespace.
- Perform data modification tasks on data in an EDM.
- Explain the function of the Object Services model implemented
by the Entity Framework and the support provided by the Object
Services API for addressing the issues faced by enterprise
applications that have to handle multiple concurrent users
simultaneously accessing the same data .
- Describe best practices for designing and building a scalable,
optimized data access layer by using Object Services.
- Customize and extend entities with their own business logic and
use advanced mappings to shape the data model to their business and
application requirements.
- Reuse existing business classes in a data access layer built by
using the Entity Framework.
- Address the architectural issues that can arise when building
an n-tier enterprise application by using the Entity
Framework.
- Build extensible solutions that can update data in an n-tier
enterprise application by using the Entity Framework.
- Access offline data or data that that has limited availability
in client applications.
- Design, develop, and consume a simple WCF Data Service.
- Use WCF Data Services to update and delete data and to handle
multi-user concerns.
- Develop high performance, scalable ADO.NET applications that
can query and update data.
- Explain how LINQ to SQL enables development against a logical
model which abstracts the low-level details of querying ADO.NET
tables and result sets.
Course Outline
Module 1: Architecture and Data Access
Technologies
This module describes the commonly used data access technologies
and scenarios in which you are likely to use them.
Lessons
- Data Access Technologies
- Data Access Scenarios
Lab : Analyzing Data Access Scenarios
Module 2: Building Entity Data Models
This module introduces the concepts of data modeling, and in
particular, Entity Data Models (EDMs). It explains how you can use
EDMs to decouple the conceptual data structure in your applications
from the logical data structure in the data store.
Lessons
- Introduction to Entity Data Models
- Modifying the Entity Data Model
- Customizing the Entity Data Model
Lab : Using Entity Data Models
Module 3: Querying Entity Data
This module explains how to query an entity data model by using
common methods such as LINQ to Entities, Entity SQL, and the
classes in the EntityClient namespace.
Lessons
- Retrieving Data by Using LINQ to Entities
- Retrieving Data by Using Entity SQL
- Retrieving Data by Using EntityClient Provider
- Retrieving Data by Using Stored Procedures
- Unit Testing Your Data Access Code
Lab : Querying Entity Data
Module 4: Creating, Updating, and Deleting Entity
Data
This module introduces you to the ways that the Entity Framework
enables you to modify the data in your database. You apply changes
to the entities managed by the ObjectContext class. The
ObjectContext class is responsible for tracking all changes to
entities and then persisting these changes to the database on
request.
Lessons
- Understanding Change Tracking in the Entity Framework
- Modifying Data in an Entity Data Model
Lab : Creating, Updating, and Deleting Entity
Data
Module 5: Handling Multi-User Scenarios by Using Object
Services
This module introduces the concurrency model that the Entity
Framework uses to address the issues faced by applications that
must support multiple users who access the same data
simultaneously. It also describes how the Entity Framework can make
use of transactions to ensure data integrity.
Lessons
- Handling Concurrency in the Entity Framework
- Transactional Support in the Entity Framework
Lab : Handling Multi-User Scenarios by Using Object
Services
Module 6: Building Optimized Solutions by Using Object
Services
This module explains best practices for designing and building a
scalable, optimized data access layer by using Object Services. The
module introduces several techniques that can be used to optimize
the performance of queries that execute against the conceptual
model.
Lessons
- The Stages of Query Execution
- Change Tracking and Object Materialization
- Using Compiled Queries
- Using Design-Time Generated Entity Framework Views
- Monitoring Performance
- Performing Asynchronous Data Modifications
Lab : Building Optimized Solutions by Using Object
Services
Module 7: Customizing Entities and Building Custom
Entity Classes
This module describes how to customize and extend entities with
your own business logic.
Lessons
- Overriding Generated Classes
- Using Templates to Customize Entities
- Creating and Using Custom Entity Classes
Lab : Customizing Entities and Building Custom Entity
Classes
Module 8: Using POCO Classes with the Entity
Framework
This module introduces the ways in which you can define custom
entity classes in your Entity Framework application. By default,
Microsoft Visual Studio generates a set of entity classes for you
from the Entity Data Model (EDM). Instead of these generated
classes, you may want to use an existing set of "plain old" CLR
objects (POCO) business classes in your application You can also
extend the generated entity classes to add custom business
functionality to your entity objects.
Lessons
- Requirements for POCO Classes
- POCO Classes and Lazy Loading
- POCO Classes and Change Tracking
- Extending Entity Types
Lab : Using POCO Classes with the Entity
Framework
Module 9: Building an N-Tier Solution by Using the
Entity Framework
This module explains how to address the architectural issues
that can arise when building an N-Tier enterprise application by
using the Entity Framework.
Lessons
- Designing an N-Tier Solution
- Defining Operations and Implementing Data Transport
Structures
- Protecting Data and Operations
Lab : Building an N-Tier Solution by Using the Entity
Framework
Module 10: Handling Updates in an N-Tier Solution by
Using the Entity Framework
This module describes how you can handle data modifications in
an n-tier solution. The module describes the different strategies
for handling modifications that you should use for the different
alternative formats for transporting data between tiers: data
transfer objects (DTOs), self-tracking entities (STEs), and simple
entities (SEs). The module also describes how to manage the
exceptions that can occur during the data modification process.
Lessons
- Tracking Entities and Persisting Changes
- Managing Exceptions in an N-Tier Solution
Lab : Handling Updates in an N-Tier Solution by Using
the Entity Framework
Module 11: Building Occasionally Connected
Solutions
This module describes how to access offline or occasionally
connected data in client applications.
Lessons
- Offline Data Caching by Using XML
- Using the Sync Framework
Lab : Building Occasionally Connected
Solutions
Module 12: Querying Data by Using WCF Data
Services
Windows Communication Foundation (WCF) Data Services enable you
to create highly flexible data services that can be used to provide
access to data across the Internet or a corporate network. You can
access these services by using REST-style URIs, and they can be
easily consumed by a wide variety of applications. As WCF Data
Services are build on top of standard Internet protocols such as
HTTP and the Atom Publishing Protocol, they are an ideal choice for
delivering data to AJAX applications and Rich Interactive
Applications built using technologies such as Microsoft
Silverlight.
Lessons
- Introduction to WCF Data Services
- Creating a WCF Data Service
- Consuming a WCF Data Service
- Protecting Data and Operations in a WCF Data Service
Lab : Creating and Using WCF Data Services
Module 13: Updating Data by Using WCF Data
Services
This module describes how to use WCF Data Services to create,
update, and delete data. WCF Data Services use standard internet
protocols such as HTTP and the Atom Publishing Protocol to enable
update access to data across the Internet or a corporate
network.
Lessons
- Creating, Updating, and Deleting Data in a WCF Data
Service
- Preventing Unauthorized Updates and Improving Performance
- Using WCF Data Services with Nonrelational Data
Lab : Updating Data by Using WCF Data
Services
Module 14: Using ADO.NET
ADO.NET is a highly flexible framework for building applications
that require access to data held in a data source. This module
introduces ADO.NET and explains how you can use it to develop
scalable, high-performance, data-driven applications.
Lessons
- Retrieving and Modifying Data by Using ADO.NET Commands
- Retrieving and Modifying Data by Using DataSets
- Managing Transactions and Concurrency in Multiuser
Scenarios
Lab : Using ADO.NET
Module 15: Using LINQ to SQL
ADO.NET provides a mechanism that enables you to build
applications that can query and maintain data that is held in a
variety of sources in a database-agnostic manner. However, building
applications by using ADO.NET requires that you are familiar with
the Structured Query Language (SQL) language and features of the
database management system that you are connecting to.
Language-Integrated Query (LINQ) to SQL provides a higher-level
abstraction for managing data that is held in a Microsoft SQL
Server database, and is an ideal stepping stone for migrating
ADO.NET applications toward the ADO.NET Entity Framework. This
module introduces LINQ to SQL and explains how you can use it to
abstract the low-level details of ADO.NET queries by developing
against a logical data model.
Lessons
- Implementing a Logical Data Model by Using LINQ to SQL
- Managing Performance and Handling Concurrency
Lab : Using LINQ to SQL