Introduction: .NET 8 represents a landmark release in Microsoft’s development platform evolution, bringing Native AOT to mainstream scenarios, unifying Blazor’s rendering models, and introducing C# 12’s powerful new features. Released in November 2023, this Long-Term Support version delivers significant performance improvements, reduced memory footprint, and enhanced developer productivity. After migrating several enterprise applications to .NET […]
Read more →Category: .NET
All .NET Related Stuffs goes here.
.NET 6 Linq Improvements: MaxBy and MinBy
A small but frequent annoyance in LINQ was finding the object with the max value. Previously, we had doing `OrderByDescending(x => x.Val).First()`, which is O(N log N). .NET 6 adds `MaxBy` and `MinBy`. This is O(N) and much more readable. Other additions include `Chunk()` for splitting lists into batches.
Read more →Blazor in .NET 6: Dynamic Components
.NET 6 Blazor introduces “, allowing you to render a component whose type is selected at runtime. No more massive switch statements in render trees. Usage Use Cases Plugin systems where component types are registered dynamically. Dashboard builders with user-selectable widgets. Key Takeaways Combine with `System.Reflection` to load components by name. Parameters must be passed […]
Read more →C# 10: Validating Arguments with CallerArgumentExpression
Writing guard clauses like `ArgumentNullException.ThrowIfNull(value)` is great, but error messages often lack context. CallerArgumentExpression captures the expression text at compile time. Example Key Takeaways Zero runtime overhead—it’s a compile-time feature. Use in custom assertion libraries or fluent validation.
Read more →C# 10: Constant Interpolated Strings
Prior to C# 10, you couldn’t use string interpolation (`$”…”`) in `const` declarations. Now you can, as long as all parts are also constants. Example Use Case Useful for defining attribute strings cleanly. Key Takeaways Components must be `const`; no runtime expressions allowed. Good for reducing magic strings.
Read more →Testing .NET 6 Applications: Integration Testing with WebApplicationFactory
Unit tests are not enough. Integration tests verify your app works end-to-end, including middleware, dependency injection, and database logic. `WebApplicationFactory` spins up an in-memory test host. Setup Customizing Services Replace the real database with an in-memory one. Key Takeaways Use **Testcontainers** (covered earlier) for real SQL testing. Check HTTP status codes, response bodies, and headers.
Read more →