.NET Annotated | May 2021
Did you know? C# has a
goto statement. It’s true. But before you run out there to try this in your code, this is a great time to paraphrase the words of the honorable scientist Ian Malcolm in Jurassic Park: “Your developers were so preoccupied with whether or not they could, they didn’t stop to think if they should”. Definitely stop and think if you “should” before using
- Announcing Open Source C# standardization
- .NET Framework 4.5.2, 4.6, 4.6.1 will reach End of Support on April 26, 2022
- Announcing .NET 6 Preview 3
- Announcing .NET Multi-platform App UI Preview 3
The On .NET Show is hosted by various developer advocates at Microsoft. The show features lots of great material on new and upcoming .NET technologies. Here are a few recent, excellent episodes to watch. Below is a sampling of some super-knowledgeable guests and their topics:
- Maddy Leger takes you on A Journey to .NET MAUI.
- Jasmine Greenaway reviews C# Language Highlights: Using Static Directive.
- Jayme Singleton discusss C# Language Highlights: Init only setters.
- Merrie McGraw demonstrates Accessibility and Perf improvements to WinForms.
- Matthias Koch from JetBrains discusses Build Automation with NUKE.
Who doesn’t love books?! Check out Learn WinUI 3.0 by Alvin Ashcraft. The Windows UI Library (WinUI) is a native UX framework for building Windows desktop and UWP applications with .NET. Learn WinUI 3.0 is a comprehensive introduction to WinUI and Windows apps for anyone who is new to WinUI, Universal Windows Platform (UWP), and XAML applications. And Alvin is giving away some books as prizes, so don’t miss your chance to win a copy of Learn WinUI 3.0!
Tutorials and articles
.NET tutorials & content
- Read and Write Excel Spreadsheets With C# – Our own Khalid Abuhakmeh has written this Excel-ent post about a rather common request – to read and write to a spreadsheet. Someone in the office always wants to save data in Excel format.
- Convert XLS and XLSX to PDF with .NET Core (C#, VB, and Java) – Once you’ve written that app to export data to Excel, you can count on your non-programmer coworkers to ask you to convert it to PDF. Every. Time. So check out this timely post by Gabriel Smith after you’ve read Khalid’s post.
- Let’s Build an AWS Lambda in C#! – Finally! A series so many have been waiting for. Lewis Westbury created a 6-Part series demonstrating how to build an AWS Lambda in C#, from start to finish. There’s so many technologies out there outside of Microsoft that folks need to integrate with, and not enough articles explaining how to do it. Thanks Lewis!
- Introducing GraphQLinq – Strongly Typed GraphQL Queries with LINQ to GraphQL. – More and more .NET folks are venturing into GraphQL, and most .NET devs are familiar with LINQ. So this tutorial from Giorgi Dalakishvili is helpful in many aspects as you approach GraphQL.
- Accessing Dapr secrets building block using Dapr .NET SDK – Laurent Kempé (featured in April’s .NET Annotated) has been working with and writing extensively about Dapr. So it’s no secret that at some point Laurent would write about how to manage secrets securely when working with Dapr.
- .NET 6 Has a Linux-Shaped Hole – Matthew MacDonald lays out the gaps that Microsoft needs to fill regarding cross-platform development, particularly on Linux.
- Relational Databases Aren’t Dinosaurs, They’re Sharks – This is an excellent post by Justin Etheredge reminding us that we shouldn’t toss our relational database for the shiny, new graph or document database. Often, an RDBMS is exactly what we need.
- Meet the .NET Upgrade Assistant, Your .NET 5 Moving Company – Like it or not, at some point we all have to upgrade. Well, maybe not always but it’s difficult to avoid when companies want to appear up to date. For those upgrading, Dave Brock wrote this article for you.
- C# 9 top-level programs and target-typed expressions – This is a fantastic series by Tom Deseyn on all the fantastic features of C# 9 and .NET 6. He’s got everything from pattern matching and records to async streams and nullable references. A must read.
- .NET 6 LINQ Improvements – Jonathan Allen reviews the many improvements in .NET 6 LINQ.
- Using Blazor WebAssembly, SignalR and C# 9 to create Full-stack Real time Applications – Once you’ve read Golda’s post (see earlier in this newsletter), then head over to Daniel Jimenez Garcia’s blog to get a taste of how those same technologies are done, but now with Blazor (including WebAssembly, SignalR, and C# for real-time apps).
- Introduction to Blazor Form Handling & Input Validation – Nearly every developer works with forms and validation at some point, so read through this comprehensive post by Claudio Bernasconi covering forms and validation in Blazor.
- Nullable Reference types in C# – Best practices – Learn a few great practices about nullable reference types by Damir Arh.
- Rendering dynamic content in Blazor Wasm using DynamicComponent – Kristoffer Strube takes Blazor developer even deeper into the subject by showing how to render dynamic content – something you don’t see in the basic tutorials. So check it out.
- .NET Core Integration Tests using a Sql Server Database in Docker – We know we need to do them, but integration tests can seem daunting to many developers. Paul DeVito breaks it down and shows that you can build quality integration tests using Docker for higher quality software.
- Why is the ASP.NET Core FromBody not working or returning null? – Great question! But frustrating if you’re experiencing this without any help to fix it. David Grace solves the problem and shared the solution with us all. Thanks!
- .NET quiz – check your level of knowledge about .NET memory management – This is super fun! Konrad Kokosa built a quiz where you can check your own memory about .NET memory. Try the quiz and let us know how you did in the comments! We’d love to hear how everyone does on the test.
Related programming tutorials
- DAIMTO Developer Tips – Check out Linda Lawton’s YouTube channel for the latest in programming Google APIs, particularly the ones where she uses .NET to access them. There’s a lot of great content in here.
- Why Learn Kotlin? – Ksenia Shneyveys wrote a nice post about the virtues of Kotlin. I encourage .NET developers to learn other languages at least at an intermediate level, and those languages should be the ones outside of .NET. Doing this builds your skills as a .NET developer as you learn practices and language constructs that are helpful for .NET.
- Design Mistakes You’re Making with Your Mobile Forms (and How to Fix Them) – Designing excellent UXs and UIs is important, as it directly affects users and usability. A good or bad UX can lead to the success or failure of a product. Good news for us, Suzanne Scacca is here guide you in the right direction when building or modifying ever-important UXs.
- How to monitor your web application availability – Iryne Somera demonstrates a straightforward way to do a chore we have to do but don’t like to: monitoring apps. Hopefully, this post makes that easier.
- How we ship code faster and safer with feature flags – This is a great resource. If you’re not using feature flags, check out what they are and how this technique can get your code out to customers faster. Post by Alberto Gimeno.
- The Right Way to Adopt New Technology – Is there a right way? Karl Hughes makes the argument that there is, and proceeds to let us know what it is. What do you think? Let us know in the comments.
- Create a Windows 10 development virtual machine – For those of you who aren’t already out to sea on a Docker container ship – Thomas Maurer reminds us that VMs are useful and how to create them.
Thanks for this tweet, Danny. This can’t be said enough. Without empathy, there is no way engineers can truly connect with the people who use their products. When you can’t feel the same way as your users, you can’t make great software that works well for those same human users.
There is one particular trait that I think of when I think of a good developer. It is the same trait that makes s person better.— Danny Thompson (@DThompsonDev) April 22, 2021
Empathy towards the problems people face, situations and challenges. That empathy will help you create solutions that will help many people!
Interesting and cool stuff
- Writing a better Tech Resume / CV – Have you ever looked for a job? Do you think you will again or know someone who will? Then read and share this excellent and necessary article by Rebecca Franks on writing a better tech resume.
- Tips For Leaders On Running Successful One-On-One Meetings – Few managers are ever trained to be a manager. Sure, a rare handful may take a course in leadership or similar. So they all need a little help. But so do the underlings! After all, 1:1 means there are 2 (two) people in the meeting! That’s why Kat Boogaard’s blog post on successful 1:1’s is something everyone should read.
- How to measure the energy consumption of your apps – For those who are environmentally conscious or just want to save on their power bills. Sara Bergman shows how to measure the energy consumption of your apps.
And onto fun tweets…
We’ve all been there, Jen. We feel you. Yeah, we feel you.
Choosing a variable name pic.twitter.com/NsP6faCLJC— Jen Gentleman 🌺 (@JenMsft) April 10, 2021
I suggested this to the Rider team leads. We’ll see how it goes in the first episode of Rider | Season 1 (S01E00).
Maybe software releases would feel more epic if we ditched the semver major / minor thing and went for seasons and episodes…— Jon Galloway (@jongalloway) April 23, 2021
“Fans are hyped for the new drop of #DotNet S06E03! Catch our liveblog for spoilers, explainers, a look at the mysterious new B3n character, and more!”
And finally, the latest from JetBrains
Here’s a chance to catch up on JetBrains news that you might have missed:
.NET Days Online
It’s that time of year again! Time for .NET Days Online – two days of action-packed, exciting tech talks by industry experts on May 11 & 12. Talks are recorded but you don’t want to miss out! Register today!
In the meantime, check out our .NET Tools Guide! Learning resources for ReSharper, Rider, and more!
- Webinar – OSS Power-Ups: Silk.NET
- Webinar – OSS Power-Ups: Snoop
- .NET 5 Dependency Injection – Webinar recording
- ReSharper and Visual Studio 2022 64-bit
- Sherlock Holmes and the case of a crashing devenv.exe
- ReSharper and Rider 2021.2 will require .NET Framework 4.7.2 or newer installed on Windows
- Rider for Unreal Engine 2021.1.1 Update: Mac Build, Support for uproject, EzArgs Plugin, and C++ Enhancements
- dotTrace and dotMemory bring new home screen!
- New .NET Guide Tutorials – From Visual Studio to Rider, ReSharper Essentials, Docker, and more!
- Case Study – How Innoveo builds a no-code solution with Rider
- ReSharper & Rider Improvements For Avalonia
- ReSharper 2021.1: Updates in Code Analysis, Support for ASP.NET Route Templates, and Rename for Tuple Components
- Rider 2021.1: Updates to Docker and C# Support, Scaffolding in ASP.NET, and More!
Sharing is caring! So share your content with other readers. Don’t keep it to yourself! Send a Tweet or email with tips or content for publication in future newsletters! Share with a comment here, email firstname.lastname@example.org, or drop a message via Twitter.
Subscribe to Blog updates
Thanks, we've got you!
Recordings from JetBrains .NET Day Online ’23 are available
On September 26, we hosted a free virtual event – .NET Day Online ’23. This was the fifth annual edition of the conference, and we were absolutely amazed at how lively the conversation was! We’d like to extend a huge thank you to the wonderful speakers who joined us to share their passion for the wo…
A Second Set of Bug Fixes: ReSharper 2023.2.2 and Rider 2023.2.2 Are Here!
ReSharper and Rider have just received their second set of bug-fix updates for the 2023.2 release! Let’s take a look at the most important issues that have been resolved in this update. ReSharper For the full list of resolved issues, please refer to our issue tracker. …
ReSharper 2023.3 Early Access Program Begins!
Hello everyone, The Early Access Program for ReSharper 2023.3 has started! Before you download the first EAP build, let’s take a look at what is in store for you. Working with aliases With this first EAP build, we are introducing support for C# 12’s ability for alias directives to refer…
Rider Kicks Off the Early Access Program for the 2023.3 Release!
The Early Access Program for Rider 2023.3 has just begun with the release of the Rider 2023.3 EAP 1 build. There are several ways to get your hands on it: Download and install them from our website. Use the Toolbox App. Install this snap package from the SnapCraft store if you’re using a c…