The .NET Stacks #46: 📒 What's new with your favorite IDE

This week, we talk about IDE updates, the .NET Upgrade Assistant, and more.

Dave Brock
Dave Brock

Happy Monday! Here’s what we’re talking about this week:

  • One big thing: Catching up on your IDEs
  • The little thing: More on the Upgrade Assistant, k8s in Microsoft Learn, bUnit news
  • Last week in the .NET world

One big thing: Catching up on your IDEs

There’s been a lot of news lately on the IDE front. Whether you’re using Visual Studio or JetBrains Rider, there have been some big releases that are worth reviewing. (I’m focusing on IDEs here—I realize you can do .NET in VS Code, but that’s more of an editor, even if it can sometimes feel like an IDE with the right extensions.)

As for VS, last Wednesday, Microsoft released Visual Studio 2019 v16.10 Preview 2. From the .NET perspective (C++ is not part of the .NET family, so I don’t mention those), it includes many IntelliSense updates. You’ll now see completions for casts, indexers, and operators, the ability to automatically insert method call arguments when writing method calls, a UI for working with EditorConfig files, and a new way to visualize inheritance.

The release also contains new features for working with containers: you can run services defined from your Docker Compose files, and there’s also a new containers tooling window. You’ll also see some nice improvements with the Test Explorer. You can finally view console logs there, navigate to links from log files, and automatically create log files.

Finally, Visual Studio has pushed out updates to the Git experience. With v16.10, Visual Studio’s status bar now features an enhanced branch picker, a repository picker, and a sync button. You can also select a commit to open an embedded view of its details and the file changes in the Git Repository window without having to navigate to other windows (an excellent way to compare commits). You can learn about the Git changes in a devoted blog post. With the admission I haven’t checked it out in a while, I’ve found the Git experience not to be very feature-rich. I might have to check it out again.

What about Rider? Earlier this month, JetBrains wrote about the Rider 2021.1 release. If you work in ASP.NET MVC, Web APIs, or Razor Pages, Rider now features scaffolding for Areas, Controllers, Razor Pages, Views, and Identity. It also generates boilerplate code for EF CRUD operations. Rider now supports ASP.NET Core route templates with inspections to check HTTP syntax errors and quick-fixes to fix route parameter issues.

They’ve also made some improvements to support the latest C# features: there’s increased support for patterns and records, and Rider has a new set of inspections and quick-fixes with records themselves. If you’re into tuples, Rider now allows you to use them with its refactoring tooling. They’ve even started looking at C# 10 and have taught Rider to work with the new “Constant interpolation strings” feature.

You can check out the What’s New in Rider page for all the details on their latest release.

The little things: More on the Upgrade Assistant, k8s in Microsoft Learn, bUnit news

Last week, I talked about hot reload in .NET 6. A few of you were kind enough to let me know that you were having issues seeing the GIFs. If you were having problems, I apologize (you can look at the web version of the newsletter and see them in action). I was looking into hot reload for a piece for the Telerik developer blog that was published last week. Check it out to see how you can enable it, how it works, how it handles errors and its limitations.

While I’m already doing some shameless plugs, I also wrote a piece about the .NET Upgrade Assistant. We’ve mentioned it in passing, but it’s a global command-line tool that guides you through migrating your .NET Framework apps to .NET 5. It doesn’t do everything for you, as many APIs like System.Web isn’t available in .NET Core—but it goes a long way in doing the painful bits. It comes with an (optional) accessibility model, which allows you to customize upgrade steps without modifying the tool itself. For example, you can explicitly map NuGet packages to their replacements, add custom template files and add custom upgrade steps. To do this, you include an ExtensionManifest.json file.

When I migrated an MVC app, I thought about using it to delete the App_Start folder and its contents automatically. It isn’t supported (but is now tracked!) as right now, you can only find files. In cases like these, though, I would hope this would be done automatically. But if you’re migrating a bunch of projects and know how you want to port over some code, you can customize it yourself. It should save you quite a bit of time.

Kubernetes has now made its way to Microsoft Learn. Microsoft shipped a new module that walks you through application and package management using Helm. You can provision Kubernetes resources from the in-browser Azure Cloud Shell.

Did you think I’d write about Kubernetes and not leave you with a funny joke?

Congrats to Egil Hansen. bUnit, his popular Blazor testing library, is out of preview and has officially hit v1.0. You can check out the release notes for the latest release.

The API proposal for C# 10 interpolated strings is now officially approved. Check it out on GitHub.

🌎 Last week in the .NET world

🔥 The Top 4

📢 Announcements

📅 Community and events

🌎 Web development

🥅 The .NET platform

📔 Languages

🔧 Tools

📱 Xamarin

🏗 Design, testing, and best practices

🎤 Podcasts

🎥 Videos

.NET Stacks