API in C#: The Best Practices of Design and Implementation

I’m excited to announce that my new “API in C#: The Best Practices of Design and Implementation” course is now live on Udemy. You can take it with 60% off!

csharp-glasses-627x353

In this course, over 3.5 hours, you’ll learn how to build simple yet powerful APIs, avoiding a great number of troubles.

If you already know C#, you can start to 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.
In particular, you’ll learn:

  • What API development principles you should adhere
  • How to give better names for API members and what naming conventions exist in the .NET platform and suited for C#
  • Common problems encountered by C# developers in the process of designing and implementing APIs: classes vs structures, abstract classes vs interfaces, creational patterns vs constructors, how to implement dispose pattern (are you sure you understand this allegedly simple case?)
  • Common implementation smells such as poor naming, excessively long methods, output parameters and so on.
  • Common Architectural Design Smells such as Primitive Obsession, Hidden Dependencies, Violation of Law of Demeter and other.
  • How to deal with errors. It is surprisingly hard to develop robust software where errors handling is based on exceptions. We will find out why this is so and how to struggle with problems of error handling.
  • How to deal with Nulls. Null Vales have always been a pain the ass. NullReferenceException is a well-known and popular guest in our software. We will look at the possible ways of diminishing the disrupting power of null-values.

This course can be considered a C#.NET Framework Design Guidelines. I wish I could take this course when I started to use C# on the daily basis. I had to jump between many sources and none of those sources gave me the information I needed. I had lots of questions in my head.
Now, with this course, you don’t have to go through all these challenges that I faced.