Visual Studio

Programming with Managed Extensions for Microsoft Visual C++ .NET
(Microsoft Training Course: 2558) - 3 days - £1700 exc VAT

> Target Audience
The goal of this course is to teach existing C++ developers how to write applications for the Microsoft .NET Framework by using Managed Extensions for C++. It is intended for corporate developers, solution providers, IT Web developers, and IT database developers who are responsible for building knowledge management solutions that provide data analysis, reporting, presentation, and workflow.
> Course outline
  1. Managed C++ Applications and the .NET Framework
  2. Defining __gc Classes
  3. __gc Pointers and References
  4. Value Types
  5. Managed Inheritance
  6. Arrays, Collections, and Reflection
  7. Properties, Managed Operators, and Managed Exceptions
  8. Unmanaged Code
  9. COM Interoperability

Module 1: Managed C++ Applications and the .NET Framework
  • Using C++ in the .NET Framework
  • The .NET Framework and Managed Execution Environment
  • Programming with Managed Extensions for C++
  • Using .NET Framework Developer Tools
  • Creating native and Managed C++ applications.
  • Writing code to use managed types in a C++ application.
  • Creating, building, and testing C++ projects for the .NET Framework.
Module 2: Defining __gc Classes
  • Defining Classes in Managed C++
  • Defining Members in a __gc Class
  • Controlling Class Layout
  • Defining __gc classes, and creating and destroying objects of these classes.
  • Defining data members, member functions, constructors, and destructors in a __gc class.
  • Controlling the layout of classes and unions.
Module 3: __gc Pointers and References
  • Pointers and References to __gc and __nogc Objects
  • Pinning and Unpinning Pointers
  • Delegates and Events
  • Defining and using pointers and references to __gc and __nogc objects.
  • Pinning a pointer to a fixed location, to prevent an object from being relocated by the runtime system.
  • Defining delegates to represent member functions in a class
  • Using delegates to specify callback functions for events
Module 4: Value Types
  • Creating and Using Value Types
  • Boxing and Unboxing Value Types
  • Value Enums
  • Defining and using a value type.
  • Performing boxing and unboxing operations on a value type, so that it can be used where a managed object is required.
  • Defining and using value enums
Module 5: Managed Inheritance
  • Defining Base Classes and Derived Classes
  • Interfaces
  • Using Inheritance with Other .NET Framework Languages
  • Defining base classes and derived classes that use the Managed Extensions for C++.
  • Defining and implementing interfaces.
  • Defining Managed C++ base classes and derived classes that integrate with classes written in Microsoft Visual Basic .NET and Microsoft Visual C#.
Module 6: Arrays, Collections, and Reflection
  • Defining and Using _gc Arrays
  • Using .NET Framework Collection Classes
  • Using Reflection
  • Creating, initializing, using, and destroying __gc arrays.
  • Using the .NET Framework collection class library to organize objects.
  • Using reflection to identify the type, data members, and member functions of an object at run time.
Module 7: Properties, Managed Operators, and Managed Exceptions
  • Defining and Using Properties
  • Defining and Using Managed Operator Functions
  • Exception Handling
  • Defining properties in a __gc class.
  • Defining named operator functions in a __gc class.
  • Using exception handling techniques to deal with error conditions in a Managed C++ application.
Module 8: Unmanaged Code
  • Invoking Native APIs in Managed Code
  • Wrapping a __nogc Class in a __gc Class
  • Invoking native APIs directly in managed code, using a direct function call or using P/Invoke.
  • Defining a __gc C++ class to wrap an unmanaged C++ class, to expose the unmanaged class to the .NET Framework.
Module 9: COM Interoperability
  • Importing a COM Type Library into an Interop Assembly
  • Using Imported COM Objects
  • Exporting an Assembly into a COM Type Library
  • Converting the type definitions in a COM type library into a .NET Framework interop assembly.
  • Creating and using instances of imported COM objects within a Managed C++ application.
  • Using the Type Library Exporter tool to convert managed types into a COM type library.
> Pre-Requisites
Before attending this course, students must have the following prerequisites:
  • Programming experience with C++, using object-oriented programming techniques.
  • Familiarity with C++ template libraries.
> Purpose
After completing this course, students will be able to create Managed C++ applications that execute in the .NET Framework; define __gc (garbage collected) classes in C++; use __gc pointers and references; define and use value types; use inheritance with __gc classes; use __gc arrays, .NET Framework collections, and reflection; use properties, named operator functions, and exceptions in managed code; migrate unmanaged C++ code to Managed C++; use COM interoperability with managed code.