Three Ways .NET 8 Can Make Your Developers’ Lives Easier

Resolute Software
3 min readNov 8, 2023

Golfers want new golf clubs; bowlers want new bowling balls. Everyone wants new toys. Even developers. But a new set of golf clubs or a new bowling ball might not really make you a better golfer or bowler. Practice does that. But what if your new golf club could prevent slices? If your bowling ball avoided the gutters? Well, when your developers get excited about .NET 8, they’re not just asking for a pretty new set of clubs. There are new features in .NET that can help your developers avoid the coding equivalent of slices and gutter balls. I’ve listed three of those below.

The Microsoft .NET Fundamentals website lists 18 features new to .NET 8. Some new features just make things run faster and more reliably, like improved garbage collection and performance improvements for ARM processors. Others are improvements on things introduced in .NET 7, like Native AOT support. But some features address the little annoying things. You know, the stuff you’ve learned to put up with but still irritate you. Fixing these can make a big difference in your day. I think three things deserve a special shout-out for making your life easier.

The -tl Option for MSBuild Output

Raise your hand if you work with more than one framework. Okay, hands down. Yeah, that’s most of us. And this is why Microsoft has acknowledged reality and given us Terminal Logger. New to .NET 8, this option lets you see errors grouped with the project from which they came. It better differentiates target frameworks for those multi-targeted projects. Much easier to read! There is also much better real-time information about what the build is doing. This will be a big time-saver if you break as many builds as I used to break.

Secure-By-Default Container Permissions (and other container stuff)

Finally, a non-root user is the default user for .NET container images. I’m not sure exactly why it took until .NET 8 for this to be the case, but this should help prevent the occasional root-user security oversight. .NET 8 has also improved the performance and compatibilities for container publishing. While things are getting better if you’re using Azure (OAuth token exchange identification is supported in .NET 8.), .NET 8 also adds support for Harbor, Artifactory, Quay.io, and Podman. Security: If you don’t get hacked, you’ll never know your life was made easier, but deep down, you know it’s true.

No Separate Windows Build Environment Needed for Mac/Linux Devs

Mac/Linux users rejoice! When you build apps for Windows on non-Windows platforms, the resulting executable is now updated with any specified Win32 resources-for example, application icon, manifest, and version information. You no longer need to keep (and maintain) a separate Windows build environment just for your Windows builds. Sometimes, it’s the little things that can bring so much joy…

So, Do You Buy av New Set of Clubs for Your Developers?

If you’re using .NET 7, they’ll probably be just fine. But if you’re still developing in ASP.NET or older tech, well, you might see a much better ‘golf game’ from your developers if you get them the .NET 8 set of clubs.

Conservation of Energy

Everyone knows about the law of Conservation of Energy. Somewhat lesser known is the Conservation of Common Sense. Microsoft is not immune to either law. So, as the .NET team continues to be smarter with every release, the team responsible for naming .NET products, well, they provide the balance. I’m sure that somewhere in the marketing department is a dartboard with the words .NET, Framework, ASP, Core, Modern, Compact, Micro, and Web Forms. There are also the digits 0–9. What will the next release be called? Grab 4 or 5 darts, and stay tuned…Regardless, we’ll write about that, whatever they call it.

Originally published at https://www.resolutesoftware.com on November 8, 2023.

--

--

Resolute Software

Software engineering and consulting services that help you expand your digital footprint. We promise a focus on excellence and transparency in everything we do.