Course Overview:
This course teaches students how to use the language extensions that C++/CLI (as first implemented by Visual C++ .NET, Version 2005) adds to Standard C++. It also introduces important aspects of the CLI/.NET library. A significant lab component is included.

C++/CLI should not be confused with “Managed Extensions to C++”, which C++/CLI completely supersedes.

Goals:
Provided students meet the prerequisites, at the end of the course, they should:

1. Have a working knowledge of the new language elements.
2. Be conversant about the CLI/.NET library overall, and gain experience in using important parts thereof.
3. Understand what it will take to survive and thrive in a C++/CLI environment.
4. Have a basic understanding of the CLI/.NET programming model (which includes inter-operability between languages).

Who This Course Is Appropriate For:
Programmers and technical managers who are seriously interested in, or are about to begin, programming in this new dialect of the C++ language; or who wish to evaluate its suitability for projects and/or programming personnel.

This course is not intended directly for those making the transition from Microsoft's earlier “Managed Extensions to C++” effort; however, it will help that audience.

Prerequisites:
A basic working knowledge of all aspects of C++ is assumed. Unless you are very comfortable with the following topics, you may well have trouble keeping up with the theory and making adequate progress with the lab problems:

- Enumerated types
- Passing arguments by value, address, or reference
- Basic pointer usage
- Classes, including inheritance, member functions and operator overloading
- Dynamic memory allocation via new

Materials:
Each buyer will receive one or both of the following materials, depending on purchase:

Programming in Visual C++ .NET – This textbook was written specifically for teaching C++/CLI. It contains all of the main features added during the standardization of the language. This book serves as a useful reference once the course has been completed.
Source Code – An electronic version of all of the source code shown in the text of this course.

Detailed Topics:
The main topics covered are:

- Assemblies and metadata
- Garbage collection
- ref and value classes
- Properties
- Static constructors
- Function modifiers
- Managed arrays
- Delegates and events
- Interfaces
- Generic types and functions
- I/O
- Object cloning
- Threading
- Serialization
- Sockets
- Attributes