Programming in C# with Microsoft Visual Studio 2010

Course Code: 10266

Course Description

The course focuses on C# program structure, language syntax, and implementation details with .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.

Course Outcomes

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

Course Modules

This module explains how to perform basic file I/O operations in a C# application.

This module explains how to control the visibility and lifetime of members in a type.

This module explains the syntax of basic C# programming constructs.

This module explains how to catch exceptions and handle them. Students will also learn how to throw exceptions.

This module explains how to manage the lifetime of objects and control the use of resources.

This 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

Lab : Decoupling Methods and Handling Events Raising and Handling Events Using Lambda Expressions to Specify Code

After completing this module, students will be able to: Describe the purpose of delegates, and explain how to use a delegate to decouple an operation from the implementing method. Explain the purpose of lambda expressions, and describe how to use a lambda expression to define an anonymous method. Explain the purpose of events, and describe how to use events to report that something significant has happened in a type that other parts of the application need to be aware of.

This 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

Lab : Building and Enumerating Custom Collection Classes Implementing the IList TItem Interface Implementing an Enumerator by Writing Code Implementing an Enumerator by Using an Iterator

After completing this module, students will be able to: Implement a custom collection class. Define an enumerator for a custom collection class.

This 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# application.

This module explains how to create and use new types (enumerations, classes, and structures).

This module explains the .NET Framework, and using C# and Visual Studio 2010 for building .NET Framework applications.

This module explains how to create and call methods.

This module explains how to use inheritance to create new reference types.

This module explains how to create properties and indexers to encapsulate data, and how to define operators for this data.

This module introduces collections, and describes how to use Generics to implement type-safe collection classes, structures, interfaces, and methods.

This module explains how to query in-memory data by using LINQ.

Prerequisites

Before attending this course, students must have at least 12 months experience working with an Object Oriented language such as C++ or Java, and knowledge of the Visual Studio IDE.

Next Steps

Developing Windows Applications with Microsoft Visual Studio 2010 (10262)

Course Labs

Building a Simple Editor Making the Editor XML Aware

Hiding Data Members Using Static Members to Share Data Implementing an Extension Method

Calculating Square Roots with Improved Accuracy Converting Integer Numeric Data to Binary Multiplying Matrices

Making a Method Fail-Safe Detecting an Exceptional Condition Checking for Numeric Overflow

Implementing the IDisposable Interface Managing Resources Used By an Object

Defining Properties in an Interface Implementing Properties in a Class Using Properties Exposed By a Class Implementing an Indexer to Access Bits in a Control Register Using an Indexer Exposed by a Class Defining the Matrix and MatrixNotCompatible Types Implementing Operators for the Matrix Type Testing the Operators for the Matrix Type

Optimizing a Method by Caching Data Defining a Generic Interface Implementing a Generic Interface Implementing a Test Harness for the BinaryTree Project Implementing a Generic Method

Using the LINQ Query Operators Building Dynamic LINQ Queries

Using Enumerations to Specify Domains Using a Struct to Model a Simple Type Using a Class to Model a More Complex Type Using a Nullable Struct

Building a Simple Console Application Building a WPF Application Verifying the Application Generating Documentation for an Application

Calculating the Greatest Common Divisor of Two Integers by Using Euclid's Algorithm Calculating the GCD of Three, Four, or Five Integers Comparing the Efficiency of Two Algorithms Displaying Results Graphically Solving Simultaneous Equations (optional)

Defining an Interface Implementing an Interface Creating an Abstract Class

Defining Properties in an Interface Implementing Properties in a Class Using Properties Exposed By a Class Implementing an Indexer to Access Bits in a Control Register Using an Indexer Exposed by a Class Defining the Matrix and MatrixNotCompatible Types Implementing Operators for the Matrix Type Testing the Operators for the Matrix Type

Defining Properties in an Interface Implementing Properties in a Class Using Properties Exposed By a Class Implementing an Indexer to Access Bits in a Control Register Using an Indexer Exposed by a Class Defining the Matrix and MatrixNotCompatible Types Implementing Operators for the Matrix Type Testing the Operators for the Matrix Type

Optimizing a Method by Caching Data Defining a Generic Interface Implementing a Generic Interface Implementing a Test Harness for the BinaryTree Project Implementing a Generic Method

Integrating Code Written by Using a Dynamic Language into a C# Application Using a COM Component from Visual C# Application

Questions about this course?