Programming in C# with Microsoft® Visual Studio® 2010 (10266A)

The course focuses on C# program structure, language syntax, and implementation detailswith .NET Framework 4.0. This course describes the new enhancements in the C# 4.0 language by using Visual Studio 2010.In this course, lower-intermediate level programmers gain the knowledge and skills they need to develop C# applications for the Microsoft .NET Framework 4.0. The course highlights the structure of C# 4.0 programs, language syntax, and implementation details. This course is not mapped to any exam.

Audience ProfileThis course is intended for experienced developers who already have programming experience in C, C++, Visual Basic, or Java and understand the concepts of object-oriented programming.This course is not designed for new programmers; it is targeted at professional developers with at least 12 months experience of programming in an object-oriented environment.

PrerequisitesBefore attending this course, students must have:

At least 12 months experience working with an Object Oriented language

Have C++ or Java knowledge:

Creating Classes

Inheritance and Abstraction

Polymorphism

Interfaces

Exceptions

Knowledge of the Visual Studio IDE.

ObjectivesAfter completing this course, students will be able to:

Explain the purpose of the .NET Framework, and understand how to use C# and Visual Studio 2010 to build .NET Framework applications.

Understand the syntax of basic C# programming constructs.

Create and call methods in a C# application.

Catch, handle and throw exceptions.

Perform basic file IO operations in a C# application.

Create and use new types (enumerations, classes, and structures), and understand the differences between reference types and value types.

Control the visibility and lifetime of members in a type.

Use inheritance to create new reference types.

Manage the lifetime of objects and control the use of resources.

Define properties and indexers to encapsulate data, and define operators for this data.

Decouple an operation from the method that implements an operation, and use these decoupled operations to handle asynchronous events.

Use collections to aggregate data, and use Generics to implement type-safe collection classes, structures, interfaces, and methods.

Implement custom collection classes that support enumeration.

Query in-memory data by using LINQ.

Integrate code written by using a dynamic language such as Ruby and Python, or technologies such as COM, into a C# application

Module 6: Creating New TypesThis module explains how to create and use new types (enumerations, classes, and structures)Lessons

Creating and Using Enumerations

Creating and Using Classes

Creating and Using Structs

Comparing References to Values

Module 7: Encapsulating Data and MethodsThis module explains how to control the visibility and lifetime of members in a type.Lessons

Controlling Visibility of Type Members

Sharing Methods and Data

Module 8: Inheriting From Classes and Implementing InterfacesThis module explains how to use inheritance to create new reference typesLessons

Using Inheritance to Define New Reference Types

Defining and Implementing Interfaces

Defining Abstract Classes

Module 9: Managing the Lifetime of Objects and Controlling ResourcesThis module explains how to manage the lifetime of objects and control the use of resources. Lessons

Introduction to Garbage Collection

Managing Resources

Module 10: Encapsulating Data and Defining Overloaded OperatorsThis module explains how to create properties and indexers to encapsulate data, and how to define operators for this data. Lessons

Creating and Using Properties

Creating and Using Indexers

Overloading Operators

Module 11: Decoupling Methods and Handling EventsThis module explains how to decouple an operation from the method that implements an operation, and how to use these decoupled methods to handle asynchronous events.Lessons

Declaring and Using Delegates

Using Lambda Expressions

Handling Events

Module 12: Using Collections and Building Generic TypesThis module introduces collections, and describes how to use Generics to implement type-safe collection classes, structures, interfaces, and methods.Lessons

Using Collections

Creating and Using Generic Types

Defining Generic Interfaces and Understanding Variance

Using Generic Methods and Delegates

Module 13: Building and Enumerating Custom Collection ClassesThis module explains how to implement custom collection classes that support enumeration. Lessons

Implementing a Custom Collection Class

Adding an Enumerator to a Custom Collection Class

Module 14: Using LINQ to Query DataThis module explains how to query in-memory data by using LINQ.Lessons

Using the LINQ Extension Methods and Query Operators

Building Dynamic LINQ Queries and Expressions

Module 15: Integrating Visual C# Code with Dynamic Languages and COM ComponentsThis module explains how to integrate code written by using a dynamic language such as Ruby and Python, and technologies such as COM, into a C# applicationLessons