.NET Framework Using C++/CLI Training

We offer private customized training for groups of 3 or more attendees.

Course Description

 
This three-day course is designed to provide a sound introduction to the .NET Framework for programmers who already know the C++/CLI language and the fundamentals of Windows Forms. It is current to .NET 2.0 and Visual Studio 2005. The course focuses on core portions of the .NET Framework that are common across many application areas. The course is practical, with many examples. The goal is to equip you to begin building significant applications using the .NET Framework.
Course Length: 3 Days
Course Tuition: $1190 (US)

Prerequisites

The student should be an experienced application developer or architect with a working knowledge of C++/CLI, including building simple GUIs with Windows Forms.

Course Outline

 

.NET Fundamentals
What is Microsoft .NET?
Open Standards and Interoperability
Windows Development Problems
Common Language Runtime
Attribute-Based Programming
Metadata
Types
NET Framework Class Library
Interface-Based Programming
Everything is an Object
Common Type System
ILDASM
ILDASM in .NET SDK
Language Interoperability
Managed Code
Assemblies
Assembly Deployment
ASP.NET and Web Services
The Role of XML
Performance

Class Libraries
Objects and Components
Limitation of COM Components
Components in .NET
Class Libraries at the Command Line
Monolithic versus Component
Class Libraries Using Visual Studio
References in Visual Studio
Startup Project and Dependencies
Efficient Debugging of References
References at Compile Time and Run Time
Specifying Version Numbers

Assemblies and Deployment
Assemblies
Simple Bank
ILDASM
Assembly Manifest
Assembly Dependency Metadata
Assembly Metadata
Versioning an Assembly
AssemblyVersion Attribute
Strong Names
Digital Signatures
Verification with Digital Signatures
Hash Codes
Digitally Signing an Assembly
Digital Signing Flowchart
Signing the BankLib Assembly
Signed Assembly Metadata
Private Assembly Deployment
Assembly Cache
Deploying a Shared Assembly
Signing Using Visual Studio
.NET Framework Configuration Tool
Versioning Shared Components
How the CLR Locates Assemblies
Resolving an Assembly Reference
Version Policy in a Configuration File
Configuration Tool and Config
Finding the Assembly

Metadata and Reflection
Metadata
Reflection
Compiler Options and Reflection
System::Reflection::Assembly
System::Type
System::Reflection::MethodInfo
Dynamic Invocation
Late Binding

I/O and Serialization
Input and Output in .NET
Directories
Files and Streams
"Read" Command
Code for "Write" Command
Serialization
Attributes

.NET Programming Model
Garbage Collection
Finalize Method
Deterministic Cleanup
Garbage Collection Performance
Generations
Processes
Threads
.NET Threading Model
Race Conditions
Thread Synchronization Programming
Monitor
Synchronization of Collections
Application Isolation
Application Domain
Application Domains and Assemblies
AppDomain
CreateDomain
App Domain Events


 .NET Security
The Internet and .NET Security
Code Access Security
Role-Based Security
.NET Security Concepts
Configuring Security in .NET
Caspol.exe
Policy Levels
Code Groups
Standard Code Groups
Other Assemblies
Programming Code Access Security
Evidence-Based Security
Host and Assembly Evidence
Enumerating Evidence
Imperative CAS Using Evidence
EvidenceCASClient Program
DoSomethingForClient Method
Verifiable Assemblies
Running over the Intranet
Configuring LocalIntranet_Zone
Permissions
IPermission Interface
IPermission Demand Method
IPermission Inheritance Hierarchy
Stack Walking
Assert
Deny
PermitOnly and Revert
Other CAS Methods
ZoneIdentityPermission Class
Declarative CAS

Interoperating with COM and Win32
Interoperating Between Managed/Unmanaged Code
Managed and Unmanaged Code
COM Interop and PInvoke
Calling COM Components from Managed Code
The TlbImp.exe Utility
TlbImp Syntax
Using TlbImp
Register the COM Server
OLE/COM Object Viewer
Run the COM Client
Implement the .NET Client Program
Import a Type Library Using Visual Studio
Platform Invocation Services (Pinvoke)
Marshalling Output Parameters
Translating Types

Database Programming Using ADO.NET
ADO.NET
ADO.NET Architecture
.NET Data Providers
Programming with ADO.NET Interfaces
.NET Namespaces
Connected Data Access
Connecting to an OLE DB Data Provider
Using Commands
Creating a Command Object
ExecuteNonQuery
Using a DataReader
Disconnected Datasets
Data Adapters
Command Builder
Main Program
Creating a Data Adapter and Generating Commands
Filling the Dataset
Displaying the Data Set
Adding a Row to the Data Set
Deleting a Row
Changing a Row
Updating the Database
Data Bound Controls
DataGridView Control
Performing a Query
Creating a DataSet Manually
Manual DataSet Code
Using XML Data
XML Schema and Data
Using XML with a DataSet

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

C++ Programming Uses & Stats

C++ Programming is Used For:
Software Development Search Engines Operating Systems Video Games
Difficulty
Popularity
Year Created
1983
Pros
Popular: 
C/C++ is everywhere. In particular, they power more technologies than we give it credit for.
 
Flexible:
C++ is a multi-paradigm coding language. This means that it supports other styles such as procedural programming as well as Object-Oriented Programming. 
 
Fast: 
Because it is compiled, C++ gains a lot of speed. and is the language of choice for some applications as an example in the finance industry, where small differences in speed in high-frequency trading platforms can make the difference between a profit or a loss.
 
Job Opportunities: 
C++ developers are high in demand. There are over 14,000 C++ open positions on linkedIn alone. 
 
Similarity to Other Languages: 
Many other languages like C, C#, and Java have very similar syntax to C++, making them easy to learn for those that already know C++.
Cons
Difficult to Learn:  
C++ syntax is complex and the standard library is small, making C++ difficult to learn for someone with little programming experience. Although, it's believed to be more difficult to learn C++ than other languages, more accurately it probably takes a bigger investment of your time and effort to learn than some other languages. 
 
Strict Syntax: 
There is not much flexibility to the syntax, so it can be difficult to write code in a readable way.
 
Little Memory Management:
C++ does very little memory management, forcing the programmer to do most of it themselves.
 
Debugging Issues:
C++ can be difficult and complex to debug when it is used for web applications. 
C++ Programming Job Market
Average Salary
104000
Job Count
32816
Top Job Locations

New York City 
Seattle 
San Francisco 

Complimentary Skills to have along with C++ Programming

C/C++ are the grandfather of most other languages. Once you understand C syntax and (OOP) Object Oriented Programming, you're well on your way to greener pastures. 

Since the .NET development ecosystem spans a wide array of capabilities and tools, it is difficult for .NET developers to know which .NET development skills and training to pursue in order to increase their marketability — and earning potential.  For that reason, learning supplemental languages such as Java, JavaScript, Python, C/C++, and others is expected in today’s competitive skill-set driven playing field.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.