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

Learn to write clean, high-quality C# code and design APIs following best practices to enhance usability and developer experience.

  • Overview
  • Curriculum
  • Instructor
  • Review

Brief Summary

This course teaches you how to create clean, reliable C# code and design user-friendly APIs. You’ll dive into principles of good design, naming conventions, encapsulation, and handling exceptions, all while avoiding the common pitfalls that many programmers face.

Key Points

  • Learn to write clean, high-quality code in C#.
  • Understand API development best practices.
  • Master encapsulation and exception handling.
  • Get rid of common code smells.
  • Gain insights into naming conventions and design principles.

Learning Outcomes

  • Write clean and readable code in C#.
  • Design and implement APIs that other developers will love.
  • Effectively handle exceptions in your code.
  • Encapsulate types to protect against incorrect usage.
  • Identify and solve common coding problems and smells.

About This Course

Learn how to write clean code in C#. Design and implement API based on the best practices developed by .NET community.

            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.

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 richest on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. It's challenging  to use all those features in a right way.

        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 aimed at all the C# developers, from beginners to seniors. Topics which are covered in the course are relevant for all kinds of C# developers since all developers design and implement APIs. The topics complexity is very different. There are plenty of very simple topics, and at the same time, there are topics which require from you a solid C# background. There are plenty of code examples throughout this course, so 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. There are many experienced programmers who 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 topic of types encapsulating you will face the great problem of exceptions handling. Yep, it's a hard nut to crack. We will start from 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 look at how to fight with null values. As you may know, Tony Hoar said that the invention of a null value was his billion-dollar mistake.

To sum up, the course covers the following topics:

  • API development principles

  • 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.

Teaching Approach

No fluff, no ranting, no beating the air. I esteem your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners I offer my help on Skype absolutely free, if requested. Don't forget that this course has English subtitles, so if you don't understand my accent, feel free to turn them on.

Take this course and you will be satisfied.

------------------------------------------------------------

Keywords related to the course:

  • C# Clean Code

  • C# Best Practices

  • API in C#

  • Building API in C#

  • Clean Code in C# tutorial

  • Refactoring

  • Design and implement a type or an API taking care of it's users.

  • Encapsulate types so the other programmers would not hate you.

  • Code in a good style making the code clearer in its intent.

Course Curriculum

Instructor

Profile photo of Engineer Spock
Engineer Spock

I'm thankful enough for that I love what I do.I began my career as a postgraduate student participating in Microsoft ImagineCup contest. I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for nearly 7 years, primarily based on .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified...

Review
4.9 course rating
4K ratings
ui-avatar of Luis Antonio Marcano Marin
Luis A. M. M.
4.0
8 months ago

Good Job!

  • Helpful
  • Not helpful
ui-avatar of Allan Moya Madrigal
Allan M. M.
4.0
8 months ago

I would like to see this content applied in a real project, or should be good add more examples, but learned too many things that I didn't know

  • Helpful
  • Not helpful
ui-avatar of Nitin Mahale
Nitin M.
4.0
9 months ago

Excellent explanation about coding standards.

  • Helpful
  • Not helpful
ui-avatar of Madhura Kanekar
Madhura K.
5.0
11 months ago

Very informative.

  • Helpful
  • Not helpful
ui-avatar of Jose Luis Vazquez Cortes
Jose L. V. C.
4.5
11 months ago

todo bien, gracias

  • Helpful
  • Not helpful
ui-avatar of Sachin Agalave
Sachin A.
4.0
1 year ago

Good Session

  • Helpful
  • Not helpful
ui-avatar of Hendrik Potgieter
Hendrik P.
3.0
1 year ago

It was boring, tbh

  • Helpful
  • Not helpful
ui-avatar of Alejandro Amador
Alejandro A.
5.0
1 year ago

good

  • Helpful
  • Not helpful
ui-avatar of Sai Chandana Badri
Sai C. B.
5.0
1 year ago

good

  • Helpful
  • Not helpful
ui-avatar of Tushar Jain
Tushar J.
4.0
1 year ago

Crisp and Clear explanation of common coding practices

  • Helpful
  • Not helpful
Leave A Reply

Your email address will not be published. Required fields are marked *

Ratings

Courses You May Like

Lorem ipsum dolor sit amet elit
Show More Courses