COURSE

Fast Track to .NET (C#)

Build a solid foundation in the C# programming language and .NET platform.

  • 3 Days
  • Intermediate
  • In-person / Online
  • £ On Request

Your team will learn...

Practice procedural, object oriented and functional C#

Learn all new languages features right up to C# 9

Gain confidence using advanced features such as generics, generators, extensions and more

Understand best practices for clean code and execution efficiency

Overview

If you just need an update to the latest C# features, why not check out our Modern .NET - C# 9 course.

.NET is a superb platform for building applications. Truly multi-platform, .NET and C# is used for building every kind of application - embedded, desktop, mobile and web.

In this course you'll learn everything there is to know about C#, allowing you to start building application for .NET, including .NET 5 with C# 9 features.

This course can be combined with content from our ASP .NET Core course. We're happy to discuss the kinds of applications you're building and tailor the content to your needs.

Outline

Fundamental Concepts of .NET

  • Compiling to Intermediate Language (IL)
  • The Common Language Runtime (CLR)
  • Comparing the CLR and the Java VM
  • The Common Type System (CTS)
  • Assemblies and Application Domains
  • Examining assemblies using ILDASM
  • Locating and loading assemblies
  • Deploying assemblies to the GAC

Creating and Compiling Applications

  • Creating new solutions and projects in Visual Studio
  • Building Console applications
  • Building GUI Applications
  • Building and referencing class libraries
  • Building ASP .NET Core Web Applications

Procedural Coding and Built In Objects

  • Basic types and their CTS mappings
  • Understanding the object class
  • Using Strings, StringBuilders and String Interpolation
  • Converting between basic types
  • Boxing and unboxing basic types
  • Constructs for iteration and selection
  • Writing switch expressions (C# 8)
  • Working with the three types of array
  • Accessing indices and ranges (C# 8)
  • Documenting C# code using XML

Object Oriented Development Part One

  • Class declarations in C#
  • Classes vs structs
  • Understanding partial classes
  • Organizing classes into namespaces
  • Access modifiers and their meaning
  • Static, readonly, constant and volatile modifiers
  • Using statically imported members (C# 6)
  • Adding constructors to classes
  • Using other constructors via this and base
  • Object initialization in detail
  • Using properties - read/write, readonly and init (C# 9)
  • Adding indexer methods and index initialisers
  • Destructor methods and finalization
  • Comparing GC in Java and .NET
  • Declaring methods and parameters
  • Passing parameters by reference and for output
  • Using variable number parameters

Object Oriented Development Part Two

  • Creating Tuples (C# 7)
  • Creating Record Classes (C# 9)
  • Easier immutability using the with keyword (C# 9)
  • Deconstructing objects (C# 7)
  • Declaring derived classes
  • Polymorphism with virtual and override
  • Opting out of polymorphism using new
  • Safe downcasting using is and as
  • Abstract base classes and Interfaces
  • Releasing resources via IDisposable
  • Applying using blocks and declarations (C# 8)
  • Differentiating between Java Inner Classes and C# Nested Classes
  • Throwing and catching exceptions
  • Exception Filters (C# 6)
  • Comparing the exception management philosophies of Java and C#

Event Handling, Delegates and Lambdas

  • Using delegates to hold function addresses
  • Working with anonymous delegates and lambdas
  • Functional programming techniques using lambdas
  • Adding events to your own classes
  • Nesting local functions (C# 7)
  • Expression bodied members (C# 6)
  • Static lambdas and local functions (C# 9)

Generic Programming in C#

  • Introduction to Generic Programming
  • How generics works within the CLR
  • Using the generic collection classes
  • Declaring your own generic types
  • Applying constraints to type parameters
  • Examining generic types via reflection
  • Understanding Covariance and Contravariance

Language Integrated Query (LINQ)

  • The basic syntax of a LINQ query
  • Data sources that support LINQ queries
  • The IEnumerable and IQueryable interfaces
  • Running queries against collections of objects
  • How LINQ is used by the Entity Framework

Advanced Language Features

  • Asynchronous Disposal (C# 8)
  • Pattern Matching (C# 7-9)
  • Understanding nullable reference types (C# 8)
  • Null-conditional, coalescing and assignment operators
  • How to overload operators
  • Using caller and element information
  • Using structs to create local objects
  • Maximising efficiency with Span structures
  • Minimising GC with stack allocations
  • Pointers, refs and unsafe code

Concurrent Development in .NET

  • The standard .NET threading API's
  • Running LINQ queries concurrently via PLINQ
  • The Task Parallel Library
  • The async/await Pattern
  • Consuming Asynchronous Streams (C# 8)

Requirements

None.

COURSE

Fast Track to .NET (C#)

Build a solid foundation in the C# programming language and .NET platform.

  • 3 Days
  • Intermediate
  • In-person / Online
  • £ On Request

Deloitte logo
Atlassian logo
Bose logo
Workday logo
BMW logo
Amex logo
McAfee logo
PWC logo