.NET Annotated Monthly | September 2023
Did you know? The original usage of the term “computer” referred to people (mostly women), not machines. It’s possible that one day the word “programmer” could morph into meaning “AI”, and no longer refers to a person.
- Visual Studio for Mac Retirement Announcement 🚮🎉
- Announcing the New Foundational C# Certification with freeCodeCamp
- Announcing .NET MAUI in .NET 8 Preview 7: Keyboard Accelerators
- Announcing .NET 8 Preview 7
- ASP.NET Core updates in .NET 8 Preview 7
We bring this month’s featured content to you from….the .NET community speakers and the JetBrains advocates.
With that in mind, please join us on September 26. We are holding JetBrains .NET Day Online ’23, a free annual event. We’ve invited 10 amazing community speakers who will cover topics they’re passionate about: C#, F#, Blazor, Avalonia, xUnit, EF Core, microservices, and more. Join us for 11 hours of insights into .NET development, lots of demo-rich sessions, and useful tips for all skill levels.
Watch, ask questions, and interact with our speakers and advocates! 🎉
Programing tutorials and tips
.NET tutorials and tips
- Demystifying the Options Pattern in .NET– Layla Porter shows how to best use configuration options with the Options Pattern.
- Replicating a Storage UI in a .NET MAUI App – Storage apps have a classic UI containing elements such as the list and menu, and more. Leomaris Reyes demonstrates this style of app in her post.
- Installing ASP.NET Core Identity in PostgreSQL – This is the kind of thing that you probably won’t do all the time, so it’s great to have a resource with tips in it like this post by Richard Dudley.
Turn on Nullability checks by default – Some thoughts by Steven Giesel about enabling null checks by default.
- Use explicit Lambdas with LINQ – Bertrand Le Roy has found an interesting behavior in LINQ, making Lambda expressions a better choice over passing params to LINQ methods.
- How to Return HTTP 500 From ASP.NET Core Web API – A nice writeup on what you need to know about HTTP 500 in ASP.NET Core Web API projects by CodeMaze.
- Measuring Unicode String Lengths with C# – Khalid Abuhakmeh
- Form binding in minimal APIs – If there’s a minimal API behind a UI’s form, then it might be one of the new minimal APIs from ASP.NET. Andrew Lock has the details.
- Generating Hierarchical Tables from JSON Data in .NET C# – In Bjoern Meyer’s post he shows how to make hierarchies and format them into tables from JSON data. The tecniques in this post should be helpful to many, and definitely one for the bookmarks.
- The Secret HttpClient Feature You Need To Use in .NET – As Nick Chapsas says, this is “one of the most underrated features of the HttpClient in .NET, called the DelegatingHandler”. See what it’s all about in his video.
- Find The Area Of A Rectangle – A Simple C# Program – Nick Cosentino breaks down this classic geometry formula for us in C#.
- The Art of Randomness in .NET 8: New Methods and Techniques – Here are some interesting and new ways to generate random numbers in C#, including choosing random items from a list-style data structure. Cool stuff! Post by Christopher Johnson.
- Introducing Weasel for Database Development – Jeremy D. Miller introduces the Weasel library for Postgres and SQL. Use Weasel to enhance your data access through ADO.NET.
- Reasoning Task, Async & Await in .NET – Bnaya Eshet wrote a nice overview of how asynchronous calls work and specifically, using async code in .NET.
- Why Do You Have to Return “Task” Whenever You “await” Something in a Method in C#? – Jeremy Clark explains the leaky abstractions underneath C# constructs like Task and await, and why you must use these keywords for async programming.
- BearerToken: The new Authentication handler in .NET 8 – In ASP.NET Core 8, Microsoft added a new authentication handler named BearerToken. In this blog post, Tore Nestenius explains how it works and its purpose.
- Tales from the .NET Migration Trenches – Cataloging and Tales from the .NET Migration Trenches – Intro – Jimmy Bogard has been penning his experiences with .NET migration. Check it out – there’s a lot of valuable information in here.
- Why to Modernize with Blazor? A Winning Strategy for Your Next Application – You may think because Blazor is the newest ASP.NET product that you might not need to modernize it. But Jon Hilton makes a case that we should consider doing just that.
- What’s New in Blazor for .NET 8 – Dan Roth from the ASP.NET team shows off some new features in Blazor for .NET 8. See what’s coming to a runtime near you.
Related programming tutorials and tips:
- Working with SQLite Databases in any JetBrains IDE – Our own JetBrainer advocate Jodie Burchell has published this fantastic video on working with SQLite. It applies to all JetBrains IDEs including Rider.
- Distributed isn’t Microservices, In-Process isn’t a Monolith – Derek Comartin demonstrates the key differences and use case between microservices and monoliths.
- GraphQL-Fusion: An open approach towards distributed GraphQL – Are you doing GraphQL? Here’s GraphQL-Fusion, a different, distributed approach to GraphQL. Post by Michael Staib.
Is Rider good? Oh, it’s better than good, says Maarten.
Interesting and cool stuff
- Bots are better than humans at cracking ‘Are you a robot?’ Captcha tests, study finds – We all knew this would happen, right? Vishwam Sankaran agrees.
- A Deep Dive into SponsorLink: Implications for Open-Source and Privacy (UPDATED) – OSS in the .NET ecosystem has experienced many issues, and the “SponsorLink snafu” is just the latest. Keep up to date with this review by Evangelos Boltsis.
This is a fun tweet 😆, thanks Lou!
And finally, the latest from JetBrains
Here’s a chance to catch up on JetBrains news that you might have missed:
🗺️ Check out our .NET Guide! Videos, tips, and tricks on .NET related topics. ⚒️
- OSS Power-Ups: bUnit – Webinar Recording
- How to Install JetBrains Rider on Steam Deck
- How To Debug Docker and Docker Compose Solutions with JetBrains Rider
Sharing is caring! So share content that you find useful with other readers. Don’t keep it to yourself! Send us an email with your suggestions for publication in future newsletters!
Subscribe to Blog updates
Thanks, we've got you!
Eager, Lazy and Explicit Loading with Entity Framework Core
Entity Framework Core (EF Core) supports a number of ways to load related data. There’s eager loading, lazy loading, and explicit loading. Each of these approaches have their own advantages and drawbacks. In this post, let’s have a quick look at each of these ways to load data for navigational prope…
ReSharper 2023.3 Roadmap
The next Early Access Program (EAP) for ReSharper version 2023.3 is right around the corner, so it’s high time to let you know what we’ll be working on in the coming months. This roadmap is just a preliminary plan and may be adjusted depending on our priorities and resources as well as changes in…
Rider 2023.3 Roadmap
As we gear up for the beginning of the Early Access Program (EAP) for Rider 2023.3, we wanted to take a moment to share our plans for this upcoming release. These plans are subject to change, and some features and improvements may need to be pushed to a future version. Additionally…
OSS Power-Ups: bUnit – Webinar Recording
The recording of our webinar, OSS Power-Ups: bUnit, with Egil Hansen and Steven Giesel, is available. This was the twelfth episode of our OSS Power-Ups series, where we put a spotlight on open-source .NET projects. Subscribe to our community newsletter to receive notifications about future webi…