Profile avatar
okyrylchuk.dev
Microsoft MVP | .NET Enthusiast Newsletter https://okyrylchuk.dev Help for Ukraine http://ko-fi.com/okyrylchuk or http://paypal.me/okyrylchuk
446 posts 1,183 followers 120 following
Regular Contributor
Active Commenter

.NET 10 Preview 1 is now available! 🤓 Follow me if you want to be updated with new .NET 10 features. If you want more detailed .NET 10 features, consider subscribing to my newsletter! Link in the comments.

.NET 9 introduces CreateUnboundedPrioritized in System.Threading.Channels! Unlike FIFO channels, it dequeues the most prioritized element using Comparer<T>.Default or a custom IComparer<T> first. Do you use channels? For what use cases?

A disrespectful attack on President Zelenskyy by the US President and Vice President. Ukraine must sign the second Budapest Memorandum without any security guarantees this time because Trump promised to finish the war, but doesn't have an idea how Victim blaming. putin is happy

.NET8 introduces the new methods in the Random class. The GetItems method creates an array populated with randomly chosen items from the provided choices. The Shuffle method performs an in-place shuffle of an array or span. Have you used these methods yet?

Definitely my favorite .NET newsletter 👍

🎉 To celebrate the 50th edition of .NET Pulse, I’m sharing a special issue: "How to Become a Microsoft MVP: My Path and Tips for You." Stay tuned this Friday! 🚀 Subscription link in the comments ⬇️

Entity Framework generates single queries using JOINs for related entities. JOINs can create significant performance issues in some scenarios. EF can split a single query into a few to eliminate such performance issues. Learn how to split queries. The link to my post is below

System.Text.Json 9 introduces a new JsonStringEnumMemberName attribute. It allows customizing enum member names.

🔥 20% OFF Until February 🔥 A few weeks ago, I launched the sponsorship of the .NET Pulse newsletter. You can promote your service/product to 2,820+ confirmed subscribers. There is a special offer until February. Book your slots in March. Details are below⬇️

Tired of messy constructors with too many parameters? The Builder Pattern in C# helps construct complex objects step by step, making your code more readable and maintainable. Learn how to implement it in this Friday’s .NET Pulse! Link for subscription in the comments ⬇️

Why Are Delegates Important in C#? Delegates empower your C# code with flexibility, enabling type-safe method references, callbacks, and event-driven programming. They make your code more modular, reusable, and expressive — whether you're working with events, LINQ, or designing extensible APIs.

C# 13 introduces params collections. Previously, it was limited only to array types. You can now use params with any collection type, including Span<T> and ReadOnlySpan<T>. The compiler automatically allocates storage for the arguments when an interface type is used.

.NET Tip💡 Use structured logging in .NET to make your logs more searchable, filterable, and analyzable. Structured logs store data as key-value pairs instead of plain text messages, making it easy to query logs. Avoid string interpolation for logging for performance reasons. 👇

C# Tip 💡 The nameof expression in C# is useful for obtaining the name of variables, properties, methods, and classes as a string at compile time. It helps avoid hardcoded string literals, improving maintainability and refactoring safety

This Friday's issue is about Background Services in .NET! Learn how to run long-running tasks and process jobs in the background efficiently. 🔹 What are background services? 🔹 How to implement them in .NET? 🔹 Common use cases & best practices Make sure you're subscribed so you don’t miss it!

For read-only scenarios, you should use the AsNoTracking behavior in EF Core. You can set it to: 1. Query 2. Context 3. All queries Such queries will be faster because EF doesn't set up information for tracking Use the AsTracking method for queries you want to track in the third case.

Health checks are essential for keeping your applications reliable and resilient. They help you: ✅ Detect failures before they impact users ✅ Enable automated monitoring and alerting ✅ Improve system observability and troubleshooting

.NET 9 introduces the new LINQ method Index. It returns the implicit index of an enumerable. Would you use it?

🚀 Coming This Friday: How to Standardize Code Formatting in .NET with .editorconfig. Are you struggling with inconsistent code styles across your team? This Friday, the .NET Pulse newsletter dives into the .editorconfig file. Don't miss it, and subscribe. The link is below.

C# Tip ✅ Always include the original exception when re-throwing to preserve the stack trace. If you just need to re-throw, use throw; without ex;

Are you tired of switching between Postman and your IDE to test APIs? This Friday in .NET Pulse, we’re exploring .http files, an easy way to send API requests directly from VS Code, Visual Studio, and Rider. Join over 2,710 engineers reading .NET Pulse. Link below ⬇️

Coming this Friday: The latest .NET Pulse newsletter! This week, we’re talking about the Decorator Pattern: 🎨 What it is ⚙️ How to implement it in .NET 📦 Use cases Make your code cleaner and more flexible! 💻 Join over 2,700 subscribers! Subscribe: go.okyrylchuk.dev/vbokBk

.NET 9 introduces a new Base64Url type. The existing Convert.ToBase64String method can produce a string with '/', '+', or '=' characters. They are not safe for URLs because they have special meanings in URLs. The Base64Url helper produces the string without these characters.

In the .NET Pulse newsletter issue this Friday, we’re diving into a must-know topic for .NET developers: Feature Management in ASP NET Core. Learn how to control feature rollouts dynamically — without redeploying your application! Join over 2,680 engineers! Subscribe: go.okyrylchuk.dev/vbokBk

How do you enable simple logging for debugging in Entity Framework? The LogTo method accepts a delegate that accepts a string. The sensitive logging adds data values in the exception messages. The detailed errors add try-catch blocks for each call to the database provider.

Managing dependencies for a single project is easy. It becomes complicated when there are many projects in the solution. Central Package Management can help you to manage all dependencies in one place. How? Find out from my blog post. okyrylchuk.dev/blog/new-pl...