Learn it from developers who built it.
Tutorials, how-tos and deep dives on AI, .NET, C#, cloud and developer tools, written by the community.
Explore the nuances between IEnumerable and IQueryable in C#. Understand how these interfaces differ in data retrieval and manipulation, with a focus on performance implications and suitable use cases.

JSON Web Tokens (JWT) are a popular method for securely transmitting information between parties as a JSON object. This article explores the fundamentals of JWT, including its structure, encoding, and common use cases in authentication and authorization.

Polymorphism in C# involves method overloading (multiple methods with the same name but different parameters), method overriding (subclass provides specific implementation of a method in the parent class), and method hiding (subclass hides a method from the parent class).

This article delves into the intricacies of left and right shift operators in C#. You'll learn how these bitwise operators work, their syntax, and practical applications.

Error handling is a crucial aspect of software development, ensuring that applications can gracefully handle unexpected situations and maintain robust functionality. In C#, error handling is typically managed using exceptions.

This content delves into two fundamental concepts of Object-Oriented Programming (OOP): object inheritance and object composition. It explores how inheritance enables class hierarchies and polymorphism, allowing for code reusability and extension.

Explore the Unit of Work pattern in C#, essential for modern application development. Discover how it facilitates efficient database operations, manages transactions with Entity Framework, and enhances the scalability and maintainability of your data access layer.

Using C# 12 and gRPC in .NET 8, Ziggy Rafiq guides you through setting up your environment, defining services, and developing client and server applications with gRPC.

Explore the advanced features of C# with a focus on Discriminated Unions and .NET Channels. Learn how Discriminated Unions enhance type safety and pattern matching, and how .NET Channels facilitate concurrent and asynchronous programming.

This article delves into the differences between interfaces and abstract classes in object-oriented programming. It explores their roles in languages like Java and C#, highlighting key concepts such as inheritance, polymorphism, and abstraction.

Unlock the power of C# Generics with our comprehensive guide. Master best practices, explore advanced scenarios, and elevate your coding skills with this in-depth C# Generics tutorial. Learn to write efficient, flexible, and type-safe code for a wide range of scenarios, ensuring optimal performance.

This article explores the differences between sealed and abstract classes, providing real-time case studies to illustrate their use in software development. Learn how sealed classes restrict inheritance, while abstract classes serve as blueprints for other classes.

TaskCompletionSource<T> in .NET allows manual creation and control of tasks, enabling custom async patterns and adapting non-task-based APIs. With methods like SetResult, SetException, and SetCanceled, it facilitates complex asynchronous operations, event handling, and integration, enhancing code flexibility and readability.

Understanding dependency lifetimes in .NET is crucial for effective dependency injection. Singleton instances persist throughout the application's lifespan, scoped instances are tied to specific requests, and transient instances are short-lived.

Unlock the methods to efficiently retrieve entity record IDs in Dynamics 365 Customer Engagement (D365 CE) CRM plugins. This guide explores step-by-step processes, best practices, and tips for developers to enhance their CRM customizations.

Error handling is a critical aspect of software development. It ensures that your applications can gracefully handle unexpected situations, maintain stability, and provide meaningful feedback to users. In C#, the .NET framework offers robust mechanisms for error handling.

Learn how these design patterns improve flexibility, scalability, and maintainability in software development by exploring the Abstract Factory Pattern and Interface Pattern in C# with Ziggy Rafiq. Become proficient in object-oriented design by taking advantage of practical examples and implementing them step-by-step.

This guide covers API integration in C#, detailing serialization, encryption, HTTP requests, and error handling. Learn how to set up an API integration method, handle responses, and follow best practices for security, error handling, and asynchronous operations to build robust and secure applications.

This article explores the history and implementation of authentication methods in C#, including Basic, Digest, Cookie, Session, Token (JWT), and API keys, highlighting their security features and practical applications.

Object locking in C# ensures controlled access to shared resources in multithreaded environments, preventing race conditions and maintaining data integrity. By using the lock statement, you can synchronize threads, ensuring thread safety and avoiding deadlocks.

This article delves into the syntax and usage of records, comparing them with classes, and demonstrates how records can simplify code while improving performance and maintainability in .NET applications.

Learn how to use discards (_) in C# tuple and object deconstruction to ignore unneeded values and write clearer code.

Design patterns are recurring solutions to common problems in software design. They provide a template for solving issues in a particular context. The advantages of using different design patterns include improved code reusability, maintainability, and scalability.

Explore the versatility of lambda expressions in C#, powerful tools for creating inline functions without the need for traditional method declarations. Discover their syntax, applications in LINQ queries, and how they enhance code readability and flexibility in modern C# programming.

Structs in C# provide a lightweight alternative to classes, ideal for representing small, immutable data structures. Unlike classes, structs are value types stored on the stack, enhancing performance by reducing memory overhead and avoiding garbage collection.

Learn how to efficiently handle null values in C# using the null-coalescing operator. This guide covers the syntax, practical applications, and advanced techniques to enhance your programming skills.

In C#, developers choose between Regex and string methods for manipulating strings. String methods are faster and more readable for simple tasks, while Regex excels in handling complex patterns and advanced text processing.

The CQRS (Command Query Responsibility Segregation) pattern separates the operations for reading and writing data in software architecture. It enhances scalability by segregating commands (writes) and queries (reads), promoting cleaner and more maintainable code.

This guide demonstrates how to control an Arduino board using a relay switch through a Windows application written in C#. By integrating Arduino with C# via serial communication, you can manage electrical devices efficiently.

This article introduces concurrency and parallelism in C#, covering key concepts, benefits, and practical examples. Learn how to use async/await for asynchronous programming and the Parallel class for parallel computing, enhancing application performance and responsiveness.
Everything on C#, not only its articles: the C# page →
DevSocialUpcoming · 3rd editionAI Agents ConferenceNov 23–27, 2026Live onlineMembers only16days leftRegisterMembers onlyWrite an article and earn +1,000 SHARP when it is approved.
Write an article