Courses Offered In

10265: Developing Data Access Solutions with Microsoft Visual Studio 2010

Click "ENROLL" to register for this course
 LocationStart DateEnd DateStart Time (EST)End Time (EST)Delivery 
270156 6/4/20126/8/201210:00AM5:00PMILTEnroll
248736 7/23/20127/27/201210:00AM5:00PMILTEnroll

ILT = Live, instructor-led training in classroom
VLT = Live, instructor-led training delivered virtually

Print Course Outline

About This Course
This section provides you with a brief description of the course, audience, suggested prerequisites, and course objectives.

Course Description
This course teaches you how to design and develop data access in your applications. The course discusses how to choose which data access technology is appropriate for your business and application needs and then teaches you how to use the key technologies, including the ADO.NET Entity Framework, Language-Integrated Query (LINQ), Windows® Communication Foundation (WCF) Data Services, Microsoft® Sync Framework, and ADO.NET.

Audience
This course is intended for professional .NET software developers who use Microsoft Visual Studio® in a team-based, medium-sized to large development environment. Audience members are expected to have experience of implementing data access and data binding within their Web or Windows Client applications and are interested in learning to optimize data access within their applications by using the Entity Framework, LINQ, and ADO.NET. Audience members should be experienced users of Visual Studio 2008 Service Pack 1 (SP1) or newer releases of the Visual Studio product. They should also have some experience of using Visual Studio 2010 for either Windows Client or Web application development.

Student Prerequisites
This course requires that you meet the following prerequisites:
An understanding of the problem-solving techniques that apply to software development, including modern software development models, the software development life cycle, the concepts of event-driven and object-oriented programming, creating use-case diagrams, designing and building a user
interface, and developing a structured application.

A basic understanding of Web, macro, and Windows scripting techniques and some hands-on experience of writing scripts.
A general understanding of the purpose, functions, and features of the common language runtime (CLR), the Microsoft .NET Framework class libraries, the common type system, component interoperation, cross-language interoperation, application domains, and runtime hosts that the .NET
Framework supports.

Experience of using Visual Studio 2008 to use variables, operators, and branching and looping statements; create and use classes, methods, and events; identify syntax and logic errors; and access data from a data source.

Experience in object-oriented design and development including creating and accessing classes and class properties; creating and accessing methods and overloaded methods; implementing inheritance, base classes, and abstract classes; declaring, raising, and handling events; responding to and throwing exceptions; implementing interfaces and polymorphism; implementing shared and static members; implementing generics; and creating components and class libraries.

Experience in n-tier application design and development, including managing a software development process; controlling input at the user interface level in Windows Client and Web applications; debugging, tracing, and profiling .NET applications; monitoring and logging .NET applications; implementing basic testing best practices; performing basic data access tasks by using LINQ; implementing basic security best practices in .NET applications; implementing basic service calls; using .NET configuration files; and deploying .NET Framework applications by using ClickOnce and the Microsoft Installer.

Data access experience in Windows Client application development, including connecting to a data source, implementing data binding, and implementing data validation at the user interface layer.

Data access experience in Web application development, including connecting to a data source, implementing dynamic data, and implementing data validation at the user interface layer.

Course Objectives
After completing this course, students will be able to:

Evaluate business cases and select an appropriate combination of data access technologies and tools for each case.

Use the tools that the Entity Framework provides to map the conceptual model that the business logic of an application uses to the logical data model that the database provides.

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 through an EDM by using LINQ to Entities, Entity SQL, and the classes in the EntityClient namespace.

Describe the optimistic concurrency model in the Entity Framework and manage transactions in Entity Framework applications.

Describe the 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 plain-old CLR object (POCO) business classes in a data access layer that is built by using the Entity Framework.

Address the architectural issues that can arise when you build 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 has limited availability in client applications.

Design, develop, and consume a simple data service.

Use WCF Data Services to update and delete data and handle multi-user concerns.

Develop high-performance, scalable ADO.NET applications that can query and update data.

Use LINQ to SQL to develop against a logical model that abstracts the low-level details of querying ADO.NET tables and result sets.

Course Outline
This section provides an outline of the course:

Module 1, “Architecture and Data Access Technologies,” describes the commonly used data access technologies and scenarios in which developers are likely to use them.

Module 2, “Building Entity Data Models,” introduces the concepts of data modeling, and in particular, EDMs. It explains how developers can use EDMs to decouple the conceptual data structure in their applications from the logical data structure in the data store.

Module 3, “Querying Entity Data,” explains how to use LINQ to Entities, Entity SQL, the EntityClient provider for the Entity Framework, and stored procedures to retrieve data from an entity model, and describes when each approach should be used.

Module 4, “Creating, Updating, and Deleting Entity Data,” introduces the ways that the Entity Framework enables data modifications. It also describes how the Entity Framework implements change tracking.

Module 5, “Handling Multi-User Scenarios by Using Object Services,” introduces the concurrency model that the Entity Framework uses to address the issues that are 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.

Module 6, “Building Optimized Solutions by Using Object Services,” describes best practices for designing and building a scalable, optimized data access layer by using Object Services. The module introduces several techniques for optimizing the performance of queries that execute against the conceptual model. It also describes strategies for running data modification operations asynchronously.

Module 7, “Customizing Entities and Building Custom Entity Classes,” describes how to customize and extend entities with your own business logic.

Module 8, “Using POCO Classes with the Entity Framework,” introduces the ways to define custom entity classes in Entity Framework applications. By default, Visual Studio generates a set of entity classes from the EDM. This module describes how to use an existing set of POCO business classes in the application and how to extend the generated entity classes to add custom business functionality to the entity objects.

Module 9, “Building an N-Tier Solution by Using the Entity Framework,” introduces the architectural issues that are associated with building an n-tier solution, and discusses how to address these issues by using the Entity Framework. An n-tier architecture is the most common approach to building enterprise class business applications because it facilitates building applications that are scalable, secure, maintainable, and interoperable. This module will discuss how a client application can retrieve data in an n-tier application.

Module 10, “Handling Updates in an N-Tier Solution by Using the Entity Framework,” describes how to handle data modifications in an n-tier solution. The module describes the different strategies for handling modifications to 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.

Module 11, “Building Occasionally Connected Solutions,” describes how to access offline or occasionally connected data in client applications. It describes how to cache data in local XML files by using LINQ to XML and how to implement an occasionally connected application by using Sync Framework.

Module 12, “Querying Data by Using WCF Data Services,” introduces the purpose and features of a WCF Data Service and describes how to create and consume a WCF Data Service. It also discusses how to grant and restrict access to resources that a WCF Data Service exposes.

Module 13, “Updating Data by Using WCF Data Services,” 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.
Module 14, “Using ADO.NET,” introduces ADO.NET and explains how you can use it to develop scalable, high-performance, data-driven applications.

Module 15, “Using LINQ to SQL,” 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.