.NET Tools
Essential productivity kit for .NET and game developers
.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 goto
.
.NET news
- 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
Featured Content
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
- SignalR with JavaScript in ASP.NET Core MVC – Yes, people still do MVC with SignalR for real-time data processing. Not everyone has moved to Blazor yet, where SignalR is largely unnoticed and under the hood. So Golda from Code Murals shows how to use SignalR and JavaScript in an ASP.NET MVC App.
- 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.
- Type-safety across .Net and TypeScript – Testing JSON serialization and deserialization – This post by Urs Enzler covers type-safety and testing across the board between .NET and TypeScript. Many .NET developers must use JavaScript or TypeScript in their .NET apps, and it’s important to know how types behave in each.
- 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.
- Understanding JavaScript’s Array Reduce – Learning patterns and techniques from languages outside of .NET is a great way to gain insights about .NET languages. So check out this post by Marina Mosti revealing how JavaScript’s
Array.reduce
works. - 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.
- Working With TypeScript: A Practical Guide for Developers – It’s common for .NET developers to simply apply .NET techniques and expect .NET functionality in TypeScript when they start using it. But TypeScript isn’t .NET. It’s a superset of JavaScript. So this guide by Vincenzo Chianese shows great practical ways to avoid those traps.
- 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.
Tweet tips
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.
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!
Releases
Webinars
- Webinar – OSS Power-Ups: Silk.NET
- Webinar – OSS Power-Ups: Snoop
- .NET 5 Dependency Injection – Webinar recording
Blog posts
- 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!
Check out this fantastic offer! CODE Magazine is offering a free subscription to JetBrains customers!
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 rachel.appel@jetbrains.com, or drop a message via Twitter.