Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

CourseHorse

C# Programming Level 2: Advanced Programming Techniques (Live Online)

via CourseHorse

Overview

This advanced C# training course is designed for developers who already possess fundamental C# programming competency and seek to develop expertise in sophisticated language features and design patterns. The curriculum uses C# 8 as the primary learning platform, covering advanced programming paradigms, architectural patterns, and modern .NET ecosystem practices.

Required Prerequisites:

Participants should bring established C# programming experience and comprehensive knowledge of foundational topics from Core Skills: Level 1. Essential prerequisite competencies include understanding C#'s role within the programming ecosystem; the relationship between C# and the Common Language Infrastructure, .NET Framework, and .NET Core platforms; C# data types and operators; selection statements and loop constructs; generic types and collection frameworks; LINQ and other data processing tools; and exception handling and error management strategies.

Comprehensive Course Curriculum:

Advanced Language Features

Delegates and events: understanding publisher-subscriber patterns; anonymous types for lightweight data structures; tuples and value tuples for multiple return values; pattern matching, including the is expression and switch expressions; regular expressions for text analysis and manipulation, including pattern matching, substring extraction, and text replacement; extension methods for framework enhancement

Resource Management and Memory

Garbage collection fundamentals; finalizer implementation; the IDisposable interface for deterministic cleanup; using statements and disposal patterns; platform invocation for interoperability; unsafe code and pointer manipulation when required

Functional Programming, Lambdas, and LINQ

Functional programming principles and paradigms; functions as first-class programming objects; lambda expressions and anonymous function syntax; Language Integrated Query for data querying; standard query operators and their applications; query syntax versus method syntax; advanced functional programming concepts including partial function application and function composition; currying patterns; closure mechanisms and scope; monoid and monad patterns from functional theory

Reflection, Metadata, and Dynamic Programming

Reflection capabilities for runtime type inspection and discovery; dynamic assembly loading and late binding; the dynamic type for runtime type checking and method dispatch; attributes, including system-provided attributes; custom attribute creation and implementation; attribute targets and scoping; assembly-level attribute declarations; reflection-based attribute discovery and usage

Multithreading and Asynchronous Programming

Thread fundamentals and concurrent execution; thread creation using .NET threading infrastructure; ThreadPool class for managed thread pooling; synchronization primitives for thread-safe operations; task paradigm and task-based asynchronous programming; creating tasks with synchronous and asynchronous behavior; task chaining and composition; blocking and non-blocking task patterns; manual task creation and long-running task patterns; task exception handling; task cancellation and cooperative cancellation patterns; task progress monitoring; parallelization of independent tasks; TaskCompletionSource for signaling task completion; synchronization context for UI thread coordination

Modern .NET Core Development Practices

.NET command-line interface usage and project management; cross-platform development on Linux environments; development environment configuration; cross-platform aware coding practices; .NET Standard library architecture and benefits; creating and consuming .NET Standard libraries; NuGet package management; package discovery, installation, and dependency resolution; migrating legacy .NET Framework applications to .NET Core; architectural analysis and preparation; library, test, desktop application, and ASP.NET project migration strategies; application publishing including Framework-Dependent Deployment (FDD), Self-Contained Deployment (SCD), and alternative publishing models

Unit Testing and Code Quality Assurance

Unit testing principles and automated testing benefits; Microsoft unit testing tools and frameworks; C# unit test project creation; test writing fundamentals; test anatomy and structure; code coverage analysis and interpretation; data-driven testing using attributes; dynamic test data generation; external data source integration for parameterized tests

Taught by

ONLC Training Centers

Reviews

4.3 rating at CourseHorse based on 8 ratings

Start your review of C# Programming Level 2: Advanced Programming Techniques (Live Online)

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.