Learn how to use CancellationToken in .NET 9.0 to gracefully stop async tasks, prevent resource waste, and improve application stability. Includes code example!
Simplify .NET debugging with [DebuggerDisplay]! Customize object display in Visual Studio for clearer data insights. Boost productivity & understand complex models faster. Works from .NET 2.0 to 9.0.
Explore Parallel.ForEachAsync vs Task.WhenAll in .NET for parallel task execution. Understand performance implications and choose the right approach for your workload.
Unlock the secrets of SQL's IN vs. EXISTS! Learn when to use each for optimal performance. Master query optimization and avoid common pitfalls. #SQL #Database
Explore .NET 9 Minimal API filters for streamlined validation, authorization, and logging. Simplify your code and enhance maintainability with practical examples.
Central Package Management lets you keep all NuGet package versions in one central file for your solution. Instead of writing the version number in every project file, you set it once in a file called Directory.Packages.props, and all projects use that version.
Message brokers help apps work independently and handle tasks in the background. They’re a key part of event-driven systems. RabbitMQ is one of the most widely used message brokers.
.NET 8 simplifies polymorphic JSON serialization and deserialization with built-in support using JsonPolymorphic and JsonDerivedType, removing the need for workarounds or third-party libraries.
GitHub Copilot Edit Mode helps developers quickly modify, improve, or fix code with AI-powered suggestions directly in the editor, streamlining coding, debugging, and refactoring tasks efficiently.
Learn how to run SQL Server 2022 in a Docker container for local development. This guide covers pulling the Docker image, running the container, and connecting via SSMS or Azure Data Studio—ideal for testing, automation, and clean setup.
In modern .NET applications, effective configuration management is essential for ensuring flexibility and a clear separation of concerns. In this blog, we’ll explore how to utilize the IOptions<T> pattern efficiently with records.
Caching is essential for optimizing application performance by lowering data retrieval latency and reducing the number of database or API calls. This blog delves into Hybrid Caching in .NET 9.0, covering its benefits, implementation, and best practices.
Entity Framework (EF) Core is a powerful tool for managing databases in .NET applications. However, using DbContext directly in repositories or services can create strong dependencies and make unit testing harder. In this blog post, we'll discuss how to implement IDbContext in .NET 9.0, enabling database interactions while keeping the code flexible and easy to test.
Angular's interceptors are a powerful way to manage and manipulate HTTP requests and responses globally. While most interceptors are class-based, you can achieve similar functionality using function-based interceptors for cleaner, reusable logic.
Scoped locks in C# 13 simplify thread synchronization by using Lock.EnterScope() within a using block, automatically releasing the lock when the block ends. This reduces the risk of deadlocks and manual errors in multithreaded programs.
The params keyword in C# allows methods to accept a variable number of arguments, simplifying code for handling lists or arrays. Enhanced in C# 13, it now supports collections like List, Span, and IEnumerable.
This guide covers the basics of SSE, setting up a server-client connection, creating event-driven applications for continuous data updates, and enhancing user experience with live notifications.
Integrating JSON with SQL Server stored procedures allows efficient handling of complex data formats. You can pass JSON data directly to procedures using functions like JSON_VALUE, JSON_QUERY, and OPENJSON. This approach simplifies processing nested structures and arrays, enhancing flexibility in data management.
Efficient string handling is crucial for performance-sensitive .NET applications. This blog explores using Span<T> for memory-efficient string manipulation compared to traditional Substring. Span<T> avoids unnecessary memory allocations and offers high performance, making it ideal for large datasets and high-performance scenarios.
FrozenDictionary in .NET 8.0 offers a fast, immutable collection ideal for read-only scenarios. Located in the System.Collections.Frozen namespace, it provides thread-safe, memory-efficient access to data with fixed contents that can't be modified.
The Strategy pattern is a behavioral design pattern that allows you to define a family of algorithms, encapsulate each one, and make them interchangeable. This pattern is particularly useful in scenarios where you need to switch between different algorithms at runtime. In this blog, we'll explore how to implement the Strategy pattern in .NET 8.0 using Minimal API with dependency injection.
The Saga pattern is a design pattern used to manage and coordinate distributed transactions in microservices architectures. Unlike traditional monolithic transactions that ensure ACID (Atomicity, Consistency, Isolation, Durability) properties through a single database transaction, distributed transactions span multiple services, making it difficult to maintain ACID properties. The Saga pattern addresses this by breaking down a transaction into a series of smaller, independent steps (or sub-transactions) that are executed in a predefined sequence.
In modern web development, building resilient APIs is crucial for ensuring reliability and performance. This blog will guide you through implementing resilience in a .NET 8 Web API using Microsoft.Extensions.Http.Resilience library.
IExceptionHandler is an interface introduced in .NET 8 for handling exceptions globally. ASP.NET Core applications use this interface internally for their built-in exception handling. This method is better than other approaches we've seen.
.NET 8 introduces new DataAnnotations to help you validate data easily. You can check if string lengths fall within set limits, ensure numbers are within a certain range, specify which values are allowed or not, and validate Base64 strings. This article explains how to use these new features.
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