Mastering C# | Series (Part-1 to Part 12)
Discover All Aspects of C# Programming Language

Hi, I'm Nishant Banjade, a Software Engineer at Ellucian, committed to transforming education through technology. With expertise in developing CRM systems, plugins, workflows, APIs, and customized solutions for Higher Education, I bring a strong focus on innovation and efficiency. Currently, I'm honing my skills in full-stack software development, system design, data structures, algorithms, and Microsoft Dynamics 365.
I am a skilled software developer with expertise in C#/.NET, D365, JavaScript, TypeScript, ReactJS, SQL, and cloud technologies like AWS, along with experience in RabbitMQ, Docker, MUI, Tailwind, JIRA, and Git.
Welcome to This Banger Series of C# Tutorial with Framework level projects
Almost everything you need to know to get started with C# is covered in this series. Whether you are a beginner or brushing up on your skills, this guide will help you grasp key concepts with clarity.
Table of Contents
| Part | Topic | Link | Contents |
| Part 1.1 | Introduction to C# | https://blog.nishantbanjade.com.np/mastering-c-part-11 | Internal workings of C#, MSIL, CLI, JIT Compilation |
| Part 1.2 | Introduction to C# | https://blog.nishantbanjade.com.np/mastering-c-part-12 | Garbage collections |
| Part 2.1 | Fundamentals | https://blog.nishantbanjade.com.np/mastering-c-part-21-fundamentals | Keywords, Data types,Variables |
| Part 2.2 | Fundamentals | https://blog.nishantbanjade.com.np/mastering-c-part-22-fundamentals | Access Modifiers, Operators, Params, Type castings |
| Part 2.3 | Fundamentals | https://blog.nishantbanjade.com.np/mastering-c-part-23-fundamentals | Enumeration, Structs, Nullable, Conditional and Jump statements |
| Part 3.1 | Methods Part-1 | https://blog.nishantbanjade.com.np/mastering-c-part-31-methods | Introduction, Method overloading, Method returning an object |
| Part 3.2 | Methods Part-2 | https://blog.nishantbanjade.com.np/mastering-c-part-32-methods-part-2 | Anonymous , Partial, Extension, Local Methods, Delegates, Predicates, Actions, Func |
| Part 3.3 | Indexers and Properties | https://blog.nishantbanjade.com.np/mastering-c-part-33-indexers-properties | Complete Indexers & Properties concept with examples |
| Part 4 | Generics | https://blog.nishantbanjade.com.np/mastering-c-part-4-generics | Generics, Generics Interfaces, Generic Collections, Covariance and Contravariance, Repository patterns, Generic classes with multiple parameters, Generic Factories |
| Part 5.1 | Collections - Generic namespace | https://blog.nishantbanjade.com.np/mastering-c-part-51-collections-part-1 | HashSet<T>, LinkedList<T>, List<T>, SortedSet<T>, Dictionary<TKey, TValue>, SortedDictionary<TKey, TValue> , Stack<T>, Queue<T> |
| Part 5.2 | Collections- Collection Namespace | https://blog.nishantbanjade.com.np/mastering-c-part-52-collections | Array, ArrayList, HashTable, Hashtable vs DIctionary, BitArray, SortedList, |
| Part 5.3 | Tuples | https://blog.nishantbanjade.com.np/mastering-c-part-53-tuples | Tuples, Tuple<T1, T2, … Tn>, Indexers(position based), Named Properties, Tuple Deconstruction, Equality and comparisons, Limitations |
| Part 6 | Exception Handlings | https://blog.nishantbanjade.com.np/mastering-c-part-6-exception-handling | Try-catch, Specific exceptions, Multiple exceptions, Filtering exceptions, Finally, Custom Exceptions, Throwing exceptions, Exception Hierarchy, Best practices |
| Part-7. 1 | Object Oriented Programming in C# (Part1) | https://blog.nishantbanjade.com.np/mastering-c-part-71-object-oriented-programming | Objects, Classes, Static class, Partial class, Abstract class, Sealed class, Nested Class, Generic class, Anonymous class, Bindings(Early, Late), Constructor, this keyword, constructor overloading, Overloading with chaining |
| Part- 7.2 | Object Oriented Programming in C# (Part2) | https://blog.nishantbanjade.com.np/mastering-c-part-72-object-oriented-programming | Inheritance (Single inheritance, Multilevel, Hierarchical, Multiple inheritance, Overriding with virtual keyword, Base keyword, Abstract |
| Part- 7.3 | Object Oriented Programming in C# (Part3) | https://blog.nishantbanjade.com.np/mastering-c-part-73-object-oriented-programming | Interface, Types of Interface, Abstract vs Interfaces, Dependency Inversions, Marker Interface, Polymorphism, Delegate vs Interface |
| Part-8 | Multi threading programming | ||
| Part-9 | SOLID design principle | https://github.com/nixhantb/design-patterns-csharp | Single Responsibility , Open closed, Liskov Substitution, Interface Segregation, Dependency Inversion |
| Part-10 | Project -1 (Injectron Engine) | https://github.com/nixhantb/InjectTron/tree/main/InjectTron.Core | Entire dependency Injection in pure C# from scratch without a single library (DIContainer, LifetimeManager, ServiceCollection, Service Descriptor) |
| Part-11 | Project -2 (Custom Message Broker system in plain C# like Kafka and RabbitMQ) | https://github.com/nixhantb/QuantumMQ | Load balancer, Topics, IP Hashing, Producers, Subscribers, Broker instances (Yes all from scratch) |
| Part-12 | Project-3 (Build your own search Engine in pure C# without any library) | Coming soon | https://en.wikipedia.org/wiki/Tf%E2%80%93idf |
What next?
Data structures and Algorithms
Design Patterns
Stay tuned, and let’s embark on this exciting journey of mastering C#!