Learn C# from Scratch: A Complete Course for Absolute Beginners

Ready to start your coding journey? If you’ve never programmed before, this C# course is tailor-made for you. Over about six weeks, with 2-3 sessions per week (1-2 hours each), you’ll transform from a total beginner to someone who can write simple, functional programs in C#. C# is a powerful, beginner-friendly language used in games, apps, and more. With plenty of examples and step-by-step guidance, this course will make coding fun and approachable. Let’s dive in! ...

April 12, 2025 · 12 min · 2441 words · Kamran Sadin

Introduction to C#

C# (pronounced “C sharp”) is a programming language developed by Microsoft as part of its .NET platform. It is powerful, versatile, and relatively easy to learn. The language draws inspiration from C and C++ while simplifying many of their complexities. Key Features of C# General-Purpose: C# is not limited to a specific domain; it can be used to build a wide range of applications, including: Desktop software Web applications (ASP.NET Core, Blazor) Mobile apps (Xamarin, MAUI) Games (Unity Engine) Cloud services and microservices Type-Safe: ...

March 10, 2025 · 2 min · 416 words · Kamran Sadin

Single Responsibility Principle

In the realm of software development, adhering to well-established design principles is paramount for creating maintainable, flexible, and scalable codebases. One such foundational principle is the Single Responsibility Principle (SRP). SRP is one of the SOLID principles, initially introduced by Robert C. Martin, emphasizing a fundamental concept that profoundly influences software design. Introduction Single Responsibility Principle Open/Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle What is the Single Responsibility Principle? At its core, SRP advocates that a class should have a single reason to change, meaning it should only have one responsibility. Essentially, a class should encapsulate one aspect of the functionality within the software. By adhering to this principle, the design becomes more modular, maintainable, and easier to extend. ...

October 18, 2023 · 4 min · 650 words · Kamran Sadin

Abstract and Interface in C#

Definition An abstract class in C# is a class marked with the abstract keyword that may contain abstract and non-abstract members (methods, properties, events, etc.). An abstract class provides a common structure and behavior for derived classes and allows for partial implementation by providing some method implementations while requiring derived classes to implement others. An abstract class is like an uncompleted class that can be developed in the future and it is like an interface with a wide vision. An abstract class can have abstract methods like interfaces that should be implemented in the derived class, furthermore, you can have non-abstract methods that do not have to be implemented in a derived class, and abstract methods can be abstract in subclasses if a subclass is defined as abstract. An abstract class can not be instantiated. A derived class can implement or override an abstract class. Also, an abstract class can have constructors and this is a major difference between an abstract class and an interface. Let me summarize, the abstract class is more powerful than the interface in that you have the ability to decide if you want to let the user decide to use the original methods in the abstract class or override them or even you can have abstract methods that the user can decide how to implement them. ...

October 6, 2023 · 5 min · 975 words · Kamran Sadin

Mastering SOLID Principles in C#, Building Robust and Maintainable Applications

In the realm of software development, crafting code that stands the test of time and remains flexible in the face of evolving requirements is an art. Enter the SOLID principles, a set of guiding lights that illuminate the path toward building robust and maintainable applications. Let’s delve into these principles, accompanied by C# examples, and explore how they transform real-world projects. Introduction Single Responsibility Principle Open/Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle Understanding Principles in Software Design In software design, a principle is a fundamental and foundational guideline that guides developers in creating software that is maintainable, scalable, and robust. Principles act as a set of recommended practices and rules that help in making design decisions throughout the software development lifecycle. They are based on experience, industry best practices, and lessons learned over time. These principles provide a higher-level understanding of how to structure code, organize components, and manage dependencies. ...

October 4, 2023 · 4 min · 805 words · Kamran Sadin