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

In this C# training course, students already familiar with C# programming will learn advanced C# techniques.

This advanced C# course is taught using C# 8.

Prerequisites:

Students should have experience with C# and working knowledge of the skills covered in Core Skills: Level 1. 

Specifically, you should know:

  • How C# works and its place in the world of programming languages
  • Its relationship with the Common Language Infrastructure and .NET Framework
  • C# data types and operators
  • How to write selection statements and loops
  • Generic programming and working with collections
  • Tools for processing data with C#
  • and error handling.
Course Outline

Advanced Topics

  • Delegates and events
  • Delegates
  • Events
  • Anonymous types
  • Tuples
  • The Tuple class
  • Value tuples
  • Pattern matching
  • The is expression
  • The switch expression
  • Regular expressions
  • Overview
  • Matching input text
  • Finding substrings
  • Replacing parts of a text
  • Extension methods
Resource Management

  • Garbage collection
  • Finalizers
  • The IDisposable interface
  • The using statement
  • Platform invoke
  • Unsafe code
Lambdas, LINQ, and Functional Programming

  • Functional programming
  • Functions as first-class citizens
  • Lambda expressions
  • LINQ
  • Standard query operators
  • Query syntax
  • More functional programming concepts
  • Partial function application
  • Currying
  • Closures
  • Monoids
  • Monads
  • Summary
  • Test what you learned
Reflection and Dynamic Programming

  • Understanding reflection
  • Dynamically loading assemblies
  • Understanding late binding
  • Using the dynamic type
  • Attributes
  • System attributes
  • User-defined attributes
  • How to use attributes?
  • Attribute targets
  • Assembly attributes
  • Attributes in reflection
Multithreading and Asynchronous Programming

  • What is a thread?
  • Creating threads in .NET
  • Using the ThreadPool class
  • Understanding synchronization primitives
  • The task paradigm
  • Synchronous implementations of asynchronous methods
  • Occasionally asynchronous methods
  • Breaking the task chain – blocking the thread
  • Manually creating a task
  • Long-running tasks
  • Breaking the task chain – fire and forget
  • Task and exceptions
  • Canceling a task
  • Monitoring the progress of a task
  • Parallelizing tasks
  • Signaling tasks with the TaskCompletionSource object
  • Synchronization context
C# in Action with .NET Core 3

  • Using the .NET command-line interface (CLI)
  • Developing on Linux distributions
  • Preparing the development box
  • Writing cross-platform aware code
  • What .NET Standard is and how can it help the application design
  • Creating a .NET Standard library
  • Consuming NuGet packages
  • Adding packages to a project
  • Migrating from .NET Framework to .NET Core
  • Analyzing your architecture
  • Preparing the migration process
  • Migrating the libraries
  • Migrating the tests
  • Migrating the desktop projects
  • Migrating ASP.NET project
  • Summing up the migration steps
  • Publishing an application
  • Publishing as an FDD
  • Publishing as an SCD
  • Understanding other publishing options
Unit Testing

  • What is unit testing?
  • What are Microsoft tools for unit testing?
  • Creating a C# unit testing project
  • Writing unit tests
  • Analyzing code coverage
  • The anatomy of a test
  • Writing data-driven unit tests
  • Data from attributes
  • Dynamic data
  • Data from external sources

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.