Nowadays I’m writing my new programming video course. I chose an interesting topic for the next course: “Designing and Implementing API in C#”.

How to design API? In this course, you’ll learn how to design and implement types in C# so that the other developers won’t hate you when using one of the types developed by you. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.

Improve your knowledge in object-oriented programming in the context of clean coding and building types of high quality.

  • Understand the characteristics of a well designed type
  • Grasp the principles of the convenient API development
  • Write clean code, get rid of unpleasant smells
  • Learn about what exceptions are intended for and how to throw and catch them properly
  • Protect your types from the incorrect usage making them properly encapsulated

And this is far from the full list of topics we will cover in this course.

Foundations of building object-oriented infrastructures

Despite the fact that C# is a very rich on features language, it’s very common to see poorly designed and implemented types in a real world. In fact, C# is one of the most affluent on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. To use all those features in a right way is challenging.

You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn’t suck.

Owning skills of producing a well-designed and well-implemented types is the prerequisite for the other developers to treat you as a real professional.

Content and Overview

This course is primarily aimed at beginner to intermediate developers. There are plenty of code examples throughout this course so that you will learn both theoretical and practical material.

Starting with characteristics and principles of a well-designed type you will go further, learning how to give names for different members, how many parameters a method should take, is it a good idea to take a Boolean as a parameter of a method and much more than that.

Then you will learn what encapsulation really means. How to encapsulate a type? There are some trade-offs we will deal with encapsulating our types. Many experienced programmers don’t know what encapsulation is in essence. Investigating this topic together we will see how to build a consistent and reliable type.

After mastering the subject of types encapsulating you will face the significant problem of exceptions handling. Yep, it’s a hard nut to crack. We will start by discussing a question of why do we use exceptions as a mechanism of errors handling. And why C# team didn’t invent any other mechanisms?

In the end, we will recap what you have learned, and you will try to understand where you have to go further with the intention to master your skills. Here we will have a discussion of different literature for further learning.

If you want to get my courses with maximum possible discounts, then don’t hesitate and join my mailing list.