Locale Functions and Clean Code Principles

Programming

Local functions are methods of a type that are nested in another member. They can only be called from their containing member.  Local functions provide a clean way to organize code while potentially improving performance and maintaining better encapsulation.  Local functions should enhance readability and performance without violating Clean Code Principles.  If they make the code harder to understand or maintain, that's a sign they should be refactored into regular methods.

Read more...

C#

API Documentation Changes in .NET 9

Programming

The removal of Swagger from .NET 9 and the introduction of built-in OpenAPI support mark a significant shift in the .NET ecosystem. While this change may require developers to adapt to new tools and workflows, it also presents an opportunity to streamline and improve the API development process. The built-in OpenAPI support in .NET 9 offers a more integrated and efficient solution for generating and managing API documentation, while alternative solutions such as NSwag, ReDoc, Stoplight and Scalar provide developers with a range of options to choose from.

Read more...

.NET object-oriented fluent SQL Builder

Programming

KnightMoves.SqlObjects is a .NET NuGet package that provides an object-oriented fluent SQL builder, allowing developers to construct SQL queries using C# objects instead of string manipulation, closely mirroring T-SQL syntax for a more intuitive experience.

Read more...

Random.Shared in .NET9

Programming

With .NET9 Microsoft introduced Random.Shared for for thread-safe random number generation.

Read more...

Check if a String is a Palindrome with LINQ

Programming

You can use the power of LINQ to solve problems in just a few lines of code instead of "inventing your own algorithms" - which will lead to much cleaner code.  Let's examine for example on how to check for palindromes.

Read more...

Simplifying Dependency Injection

Programming

Dependency Injection (DI) is a cornerstone of modern .NET applications, ensuring loose coupling, testability, and maintainability. However, traditional DI configurations can quickly become verbose and boilerplate-heavy. Developers often find themselves manually registering every service, leading to cluttered Program.cs files and a tedious onboarding experience. Campsis.AutoInject comes to the rescue!

Read more...

Fluent Builder Pattern in C#

Programming

The Fluent Builder pattern is a powerful tool in your C# toolbox. When implemented correctly, it can significantly improve the readability and maintainability of your code.

Read more...

C#

Understanding Memory<T>

Programming

Modern applications often require handling large datasets efficiently without unnecessary data copying. C# introduced Memory<T> as a versatile tool for optimizing memory management. Here we will explore how Memory<T> solves common issues and its advantages over traditional approaches.

Read more...

C#

Aggregating Data with LINQ in .NET9

Programming

.NET9 has introduced two new LINQ methods, CountBy and AggregateBy, making data aggregation easier and more efficient without the need for complex intermediate steps like GroupBy.

Read more...

Inline Lambdas with LINQ in C# 13

Programming

Reduce verbosity by simplifying lambda expressions with inline syntax

Read more...