About the course
Our instructor-led Advanced C# Programming training course has been designed to expand your ability to solve complex software development challenges with elegant solutions in .NET.
Hands-on practical exercises will give you the opportunity to explore advanced techniques and methods such as Async programming, debugging multi-threaded code, dependency injection, TDD and more.
You'll be guided by an expert .NET instructor who will encourage you to air your own questions and real-world software development problems in order to make sure your training is as relevant as possible.
Online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.
-
- Asynchronous programming techniques
- Managing Tasks
- Parallel Programming
- Debugging Multithreaded Code
- Reflection and Metadata
- Integrating with Unmanaged Code
- CodeDom and Dynamic Code
- Dependency Injection
- Test-Driven Development (TDD) with C#
-
.NET Developers who want to get up to speed quickly with the latest and advanced features of C# using Visual Studio to build high-performance, robust .NET applications.
-
You should have attended our Introduction to .NET Programming with C# training course or have equivalent experience of developing C# .NET Applications (Windows or Web) - and a good understanding of Object Oriented Programming.
-
This advanced C# course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).
Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.
-
Advanced C# course syllabus
The topics below, up until "Database Programming" comprise days 1-4 of our public scheduled Advanced C# training course. Below that are additional topics that can be incorporated in private customised deliveries of the course. Please get in touch if you have any questions about course content, pre-requisite skills, setup or anything else.
Pattern Matching ##
Constant Patterns
Discard Patterns
Variable Patterns
Relational Patterns
Tuple Patterns
Property Patterns
Type Patterns
List Patterns
Regular Expressions ##
How Regex Works
The Regex Class
RegexOptions
Regex Backtracking
Regular Expressions Best Practices
Threading ##
Multithreading - An Overview
The Thread Class
ThreadPool Threads
GUI Applications & Threads
Tasks ##
The Task Parallel Library
Data Parallelization
Task Parallelization
Continuations
Nested Tasks
Task Scheduling
PLINQ
Thread Synchronisation (requires Threading or Tasks) ##
Atomicity – the Interlocked class
The Volatile Class
Auto / Manual ResetEvent
Mutex
Semaphore
SemaphoreSlim
Monitor
[Synchronization]
Concurrent Collections
Async / Await ##
Async methods
Database Programming ####
ADO.NET
Overview of Entity Framework
Entity Framework 6
Entity Framework Core
Further Topics for "mix and match" custom C# training
For custom courses you may choose from any of the topics listed above and / or below. Each topic is given a sharp (#) rating. A full day's training is four sharps (####). Topics may be combined to construct a course of the desired duration. e.g. a four day course may contain topics totalling 16 sharps.
Dynamic Programming #
The dynamic keyword
Using The Dynamic Language Runtime
Unmanaged Code Integration ###
Unmanaged Code
Pinned memory
GC and unmanaged code
PInvoke
Com Interop
Inline Assembler Language
Design Patterns ####
Overview of design patterns
Creational Patterns
Structural Patterns
Behavioural Patterns
Anti-Patterns
Reflection ###
Introduction to reflection
Metadata & assemblies
System.Type
The System.Reflection namespace
Examining types using reflection
Loading assemblies
Reflection.Emit
Custom Attributes (requires Reflection) ###
Attributes Overview
Defining and accessing custom attributes
Code Dom ##
Overview of CodeDom
Compiling code
Using interfaces effectively
Using reflection effectively
Using Reflection Emit
Creating dynamic methods
Working with builder classes
Test Driven Development ##
TDD concepts
Tooling for TDD in .NET
Creating unit tests
Mocking
Coverage
Following a TDD approach to development
-
https://dotnet.microsoft.com/en-us/languages/csharp - the home of C#
Visual Studio 2022 - get Microsoft's flagship enterprise IDE
.NET Developer Community - interact with other .NET developers
Trusted by