The .NET Stacks #22: .NET 5 RC 2 ships, .NET Foundation all hands, and links

This week, .NET 5 RC 2 ships, we talk .NET Foundation, and look around the community.

Dave Brock
Dave Brock

I messaged a developer friend to see if he liked my puns, and he said “false.” I told him I didn’t appreciate the cyber boolean.

On tap this week:

  • .NET 5 RC 2 ships
  • .NET Foundation updates
  • Last week in the .NET world

🚢 .NET 5 RC 2 ships

On Tuesday, Microsoft announced the release of .NET 5.0 RC 2. With the general release of .NET 5 on November 10, it’s the last release candidate (“near-final,” as Richard Lander puts it). You can download it here (and will also need the latest Visual Studio preview on Windows or Mac).

The biggest news out of the general announcement post? MSI installers are now available for ARM64 (yes!)—however, note the .NET 5 SDK does not contain the Windows Desktop components on ARM64. As a bonus, I learned that ClickOnce is still a thing and available for .NET Core 3.1 and .NET 5 Windows apps.

ASP.NET Core updates for Blazor

For being so late in the release cycle, ASP.NET Core was able to ship quite a few Blazor updates for RC 2.

As I’ve written about extensively, Blazor now ships with CSS isolation—the ability to scope styles to only a single component. Previously, when the feature was released in .NET 5 Preview 8, all scoped files were bundled into a big scoped.styles.css file. If you were styling a lot of components, the bundle could get quite heavy. Now, Blazor produces one bundle for each referenced project or package with the format MyProject.styles.css. (The official Microsoft doc on CSS isolation, which I’m writing, should be live in the next week or two.)

In addition, RC 2 comes with a bunch of Blazor tooling updates. The pesky static port issue was resolved, you can step out and over async methods, and can debug lazy loaded assemblies. Also, your tools can now throw warnings when using unsupported Blazor Web Assembly APIs from a browser. (This is part of a larger .NET 5 effort that annotates which APIs are supported with a platform compatability analyzer.)

Entity Framework Core 5 updates

Because EF Core 5 RC1 was so feature-rich—with many-to-many, mapping entity types to queries, event counters, SaveChanges interception and much more, RC2 was spent on bug fixes. (Also, if Jeremy Likness’s callouts in every update haven’t gotten your attention, know that EF Core 5 requires .NET Standard 2.1, meaning it won’t run on .NET Standard 2.0 platforms like .NET Framework.)

Next week, I’ll talk about the .NET 5 release cycles and how Microsoft is supporting them.

🧭 .NET Foundation “all hands” meeting recap

The .NET Foundation provided a September/October update this week, and also hosted an “all hands meeting” with the Board of Directors (which was live-streamed and open to all).

In the past, the Foundation has heard loud and clear that they need to work on better communication and openness. They’ve responded with regular updates, releasing budget info, a State of the Union update, and more. There’s a proposal to change the mission statement (and you can chime in on the open GitHub issue until October 26):

Our mission is to build and educate producers and consumers, both new and old of the .NET platform. We will grow a trusted OSS ecosystem adopted by education, commercial entities, and all users. We will lead by example creating a world-wide, healthy, vibrant, and diverse OSS community.

There was some mention of the .NET Foundation maturity model, which is currently sitting on the back burner. This model helps to improve the quality and quantity of .NET open source projects (and .NET in general). A big driver of this model is to get corporate sponsors to pay for .NET Foundation projects and there’s some open work on seeing that through—how do you make the projects sustainable without lazily asking maintainers to keep working hard on them?

Rodney Littles II made a great point in saying: “There are people in the community that are asking a lot of the .NET Foundation … We are the .NET community, what are we going to do for ourselves? We have to get past this concept of a Microsoft-driven construct.”

It’s easy to get skeptical about the “Microsoft-driven construct” comment—Microsoft owns .NET and has a huge financial stake in seeing it do well, so hoping for complete independence isn’t realistic. As a result, when it comes to the .NET Foundation Microsoft is both an asset and a liability. But it’s important for the community to not view the Foundation as something that needs to be driven by Microsoft. Yes, there will always be questions on Microsoft’s independence, but at a certain point the growth of the Foundation depends on the community.

🌎 Last week in the .NET world

🔥 The Top 3

📢 Announcements

📅 Community and events

😎 ASP.NET Core / Blazor

⛅ The cloud

📔 C#

📗 F#

🔧 Tools

📱 Xamarin

🎤 Podcasts

🎥 Videos

.NET Stacks