MDFT Academy/Write Clean C# Code

  • €95

Write Clean C# Code

In this training you will learn how to design and build robust high-quality C# applications. The training is based on a series of lectures I prepared for Komatsu to teach their dev teams to write great code. The training covers class inheritance, interface design, delegates and lambda's, exception handling, unit testing, mocking, dependency injection, design patterns, and more!

Here's What You'll Get

63

Lessons

63

Videos

This course will teach you how to design and build robust high-quality C# applications using best practices, software design patterns and modern coding techniques.

The training is based on a series of lectures I prepared for Mineware in Brisbane (Mineware is a division of Komatsu) to teach their software development teams how to write great code.

You will learn fundamental C# development topics like class inheritance, interface design, how to use delegates, events and lambda expressions, robust exception handling, unit testing, mocking, dependency injection, threads, tasks, and design patterns.

The training covers the following topics:

C# Classes

Class Properties

Class Inheritance

Interface Inheritance

Virtual Methods

Abstract Methods

Sealed Classes

Inheritance Best Practices

The Class Factory Pattern

Exception Handling

Exception Bad Practices

Delegates

Multicast Delegates

Generic Delegates

Events

Invoking and Handling Events

Lambda Expressions

Lambda Capture

The Observer Pattern

The Push and Pull Models

Unit Testing

Writing Unit Tests

Mocking

Mocking Libraries

Dependency Injection

The Worker Service Library

Service Object Lifetimes

Threads

Race Conditions

Thread Locking

Deadlocks and Livelocks

Thread Synchronization

Tasks

Parent and Child Tasks

Task Continuations

Cancellation Tokens

Lesson Preview

Check out this training lesson preview in which I will show you how to write a C# application that uses the task parallel library to convert a sentence to pig latin.

The video covers the task parallel library, parent and child tasks, and task continuations.

Featured C# Topics

Here are four C# coding topics from the training. You can apply these techniques to your own C# projects to create a robust and high-quality code architecture.

Classes and Interfaces

Learn how to properly build class and interface inheritance hierarchies

Delegates, Events and Lambdas

Decouple your application code with C# delegates, event handlers and lambda expressions

Dependency Injection

Create flexible service containers with the dependency injection design pattern

Threads and Tasks

Write multithreaded asynchronous code with threads and the task parallel library

What You'll Need

If you want to try out my coding tips for yourself, you'll need a computer (running Windows, MacOS, or Linux), Microsoft Visual Studio Code, and the NET Core SDK.

Buy This Course

Choose the plan that works best for you. Buy this course and dive into C# language features, or unlock unlimited access to every course on the site.

Want the best learning experience?
Members get access to the full course library, all labs and community pages, receive priority support and sneak previews of future course releases.

Prices shown exclude VAT. EU businesses can defer VAT during checkout with a valid VAT ID number.

Buy This Course

Buy this course and get lifetime access to all lectures and knowledge quizzes

✔️ This course
✔️ Included quizzes only
✔️ Included labs only
🚫 No priority support
🚫 No community access
🚫 No future courses

€95 one time

Get A Membership

Get access to all courses, lectures, labs, quizzes, and future releases

✔️ All courses
✔️ All quizzes
✔️ All labs
✔️ Priority support
✔️ Community pages
✔️ Access to future courses

€35 p/mo or €350 p/yr

Team Training

In-company or online team training with guided labs and live support

🪙 Onsite or online
🪙 Conducted live
🪙 For teams of 5-12
🪙 3-day training
🪙 Guided labs
🪙 Can be customized

€1250 p/day

Contents

Classes, Interfaces And Inheritance

Introducing C# Classes
Preview
C# Class Fundamentals
Preview
C# Class Properties
C# Interfaces
C# Class Inheritance
Virtual And Abstract Methods
Sealed Classes
Multiple Class Inheritance
C# Interface Inheritance
C# Inheritance Best Practices
Demo: C# Inheritance

The Factory Pattern

Introducing The Factory Pattern
Preview
The Factory Pattern Classes
Preview
Demo: A Factory Pattern Example
Factory Pattern Summary

Exception Handling

Introducing C# Exception Handling
Preview
The Throw, Catch And Finally Statements
Preview
C# Exception Handling Strategies
C# Exception Bad Practices
C# Exception Best Practices

Delegates, Events And Lambdas

Introducing C# Delegates
Multicast Delegates
Generic Delegates
Introducing C# Events
Invoking And Handling Events
Introducing C# Lambda Expressions
Lambda Expression Rules
Lambda Capture

The Observer Pattern

Introducing The Observer Pattern
The Push And Pull Models
The Observer Pattern Classes
Demo: An Observer Pattern Example
Observer Pattern Summary

Unit Testing

Introducing Unit Testing In C#
Unit-Testing Class Methods
Writing Unit Tests
Unit Test Assertions
Unit Test Best Practices
Demo: Unit Test Walkthrough
Demo: Unit Test Demonstration

Mocking

Introducing Mocking In C#
C# Mocking Libraries
Mocking Options
Mocking Summary
Demo: Mocking In C#

Dependency Injection

Introducing Dependency Injection
The C# Worker Service Library
Worker Service Lifetimes
Dependency Injection Summary
Demo: Dependency Injection In C#

Threads

Introducing C# Threads
Race Conditions
Thread Locking
Deadlocks And Livelocks
Demo: The Dining Philosophers
Thread Synchronization
Demo: Exchanging Data Between Threads

Tasks

Introducing C# Tasks
Working With C# Tasks
Parent And Child Tasks
Task Continuations
Demo: Generate Pig Latin
Cancelling Tasks

What My Students Are Saying

Awesome content. Very clear and solid explanations.

Eric Roberto

Lots of concrete examples, clear explanations, and additional information.

Normal Davie

Still Got Questions?

I hope I've given you a clear overview of the contents of this training course. But if anything is still unclear and you have some unanswered questions, then please check out this FAQ section

What is an online training?

In an online training you can study the training lectures and work on the homework assignments in your own time and at your own pace. You can spend as many or as little hours per week as you want on the training.

What's included?

You will receive prerecorded online video lectures, text lectures, multiple-choice quizzes and homework exercises.

How am I supported?

You are supported through email, and you can also book a 30-minute video support call with me if you want. I will help you with the training lectures and homework projects and get you ready for your certification exams.

Who should attend?

An online training is ideal for tech professionals who want to set their own learning pace and prefer to work independently with a bit of guidance and support throughout the training.

Where is the training hosted?

I host all my training content on Podia, a well-known e-learning platform based in the United States.

How long do I have access?

You have unlimited access to the online training content and your login account will never expire.

Can you train my entire team?

Yes! I often host classroom trainings where I teach tech subjects to an entire business team. Contact me and we'll get it organised.

Would You Like To Know More?

Sign up for the newsletter and get notified when I publish new posts and articles online.
Let's stay in touch!

You're signing up to receive emails from MDFT Academy