651.288.7000 info@intertech.com


Live Onsite & Live Online


Jun 24/2021


Open To Your Scheduling Needs
All Day

Advanced C#

Course ID:INT1204

Duration: 3 Days
Contact Intertech To Schedule



Intertech’s Advanced C# course is a follow up class to our 5-day Complete C# offering. It is targeted for experienced C# programmers who wish to deepen their understanding of the C# language and learn additional features of the .NET framework.

This course examines a number of “framework neutral” topics which can be applied to a wide variety of .NET programming projects including ASP.NET web applications, WPF/Windows Forms desktop applications and the construction of custom libraries.

The class begins by examining a number of advanced features of the C# programming language. Next, attendees learn about a variety of ways to work with threads (via System.Threading / System.Threading.Tasks).  The course also covers the role of reflection, custom attributes, and the Dynamic Language Runtime (DLR).  The course also offers an examination of manipulating XML data with the .NET platform using the types of System.Xml.

The C# and VB programming languages support a number of language features specifically used to enable Language Integrated Query (LINQ). This course details each of these language constructs (including extension methods and lambda expressions). Once the foundation has been laid, attendees will learn to build query expressions using LINQ query operators and the underlying LINQ object model. The remainder of the class will examine how to apply these query expressions to object containers, relational databases, and XML documents.

Learning Objectives

  • Gain a deeper understanding of the C# programming language
  • Learn the role of reflection, dynamic loading and custom attributes
  • Learn to use the DLR to simplify COM interop and reflection logic
  • Know the role of processes, application domains and threads
  • Learn to manipulate XML data
  • Learn to create LINQ query expressions
  • Program with LINQ to Objects
  • Program with LINQ to XML
  • Program with LINQ to Entities


This class is intended for experienced C# / .NET programmers.


  • Students should be comfortable building and debugging C# code
  • Students should be comfortable building object oriented solutions using C#
  • Students should be comfortable building and configuring .NET assemblies
  • Students should be comfortable consulting the .NET Framework documentation


Learn More

Course Outline

Advanced C# Language Features

  • Learn how to build custom indexer methods
  • Overload operators on custom types
  • Create custom implicit and explicit conversion routines
  • Create and use extension methods
  • Know the role of anonymous types
  • Understand the internal composition of an anonymous type
  • Work with anonymous methods
  • Work with the C# lambda operator (=>)
  • Understand the role of pointers and the “unsafe context”


Reflection and Attribute Based Programming

  • Know the role of reflection
  • Work with the System.Reflection namespace
  • Dynamically load assemblies at runtime
  • Invoke methods on objets using late binding
  • Know the role of attributes
  • Build, constrain and apply custom attributes
  • Reflect over attributes
  • Build an extensible application using reflection, dynamic loading and attributes


The Dynamic Language Runtime (DLR)

  • Know the scope of the C# dynamic keyword
  • Understand the services of the DLR
  • Use the DLR to simplify reflection code
  • Use the DLR to simplify COM interop code


Topics in Multithreaded Programming

  • Understand the role of processes and application domains
  • Programmatically manipulate processes and application domains
  • Work with the System.Threading namespace
  • Know the role of thread synchronization
  • Create thread safe code using synchronization
  • Work with the Task Parallel Library (TPL)


Topics in XML Data Manipulation

  • Review the role of a well-formed and valid XML document
  • Examine the core XML services of the .NET platform
  • Examine the types of the System.Xml namespace
  • Load and traverse an XML document in memory
  • Work with XML readers and XML writers
  • Configure C# classes for XML serialization

An Introduction to LINQ

  • Understand the motivation behind LINQ
  • Visual Studio LINQ support
  • Debugging LINQ query expressions
  • Work with query operators and query expressions
  • Program with LINQ to Objects
  • Understand deferred and immediate execution
  • Know the role of the System.Linq.Enumerable type
  • Know the role of the System.Func delegate type
  • Understanding the query operators / delegates / lambda relationship


  • Understand the role of LINQ to XML
  • Work with the LINQ to XML object model
  • Examine the System.Xml.Linq namespace
  • Use LINQ to XML to create, query and save XML documents
  • Insert and remove XML data using LINQ to XML
  • Examine VB’s XML literal syntax
  • Work with VB XML axis properties
  • Understand the LINQ to XML / XML literal relationship

LINQ to Entities

  • Define LINQ to Entities
  • Understand the EF programming Model
  • Generate entities using Visual Studio
  • Know the role of object services
  • Know the role of the entity client
  • Examine the format of *.edmx files
  • Apply LINQ queries to relational databases

Back to Top

Tags: , ,