by Claire Novotny

Welcome to the .NET Foundation update for January & February. Every other month, we'll give you a quick overview of the .NET open source landscape and what the .NET Foundation is up to, including top project news, events, community links and more.

Sign up for the newsletter and get these updates delivered right to your inbox.

General news

Welcome Uno Platform as Corporate Sponsor!

Uno-heart-dotnet-foundation_cover

The .NET Foundation is thrilled to announce that Uno Platform has joined as a corporate sponsor! Uno Platform is an open source project which lets you build single-codebase applications with C# and WinUI for Windows, WebAssembly, Linux, macOS, iOS and Android. Uno Platform joins the group of corporations that are helping drive the future of the .NET platform and ecosystem and we are incredibly grateful for their support. The .NET Foundation relies on sponsors to fund our mission to create a thriving .NET open source ecosystem. Thank you, Uno Platform for being part of this effort. Read Uno Platform sponsorship announcement.

Please take the "State of .NET" survey

In November we launched a "State of .NET" survey and we're encouraging everyone in the .NET community to participate. Your feedback is very important to the .NET Foundation. It will help us understand our community needs better and prioritize the work that we do. The survey will stay open until March 31, 2021 after which the results will be made public. If you complete the survey you can enter to win a $250 gift certificate (multiple winners). Please visit our survey page and thank you to everyone that has completed it already.

Take our Survey

.NET Foundation Speaker Directory

As part of the .NET Foundation's goals to help broaden the appeal of .NET, we're proud to announce the launch of the .NET Foundation speaker directory. The goal of the directory is to help people discover and encourage speakers from around the world as well as to provide mentors for new speakers. If you're looking for a speaker for your upcoming user group or event, you can find speakers that match your needs.

.NET Foundation Project Updates

Project Spotlight - DotVVM

Each month Project Spotlight shines a light on an interesting open source project and its maintainers. In this iteration, .NET Foundation Marketing Committee member, Isaac Levin, speaks with Maintainer of the DotVVM prject, Tomáš Herceg, to talk about his project.

DotVVM is an open-source framework that allows building ASP.NET apps using the MVVM approach with just C# and HTML. The framework is integrated in the ASP.NET ecosystem, ships with an extension for Visual Studio, and can be also used for modernizing old ASP.NET applications as it supports both OWIN and ASP.NET Core.

New Releases

CoreWCF 0.1.0 GA Release

After 21 months of public development, CoreWCF has reached its first GA release. Thank you to key contributors from Microsoft and AWS for making the project a success and getting our first release out the door. There were a lot of fundamental changes involved in building WCF on top of ASP.NET Core but we focued on delivering a great developer experience. This is a significant milestone towards supporting enterprise WCF services moving to CoreWCF hosted on any cloud platform. Read more about the release on the CoreWCF blog.

NUnit

Many new releases are out at once, and work is starting on future major versions. In addition to the notes below, the .NET Core Console remains in beta (release 3.12.0-beta2) due to some unresolved dependency loading and framework targeting issues. Contributions to fix these issues would be very welcome.

NUnit Framework 3.13 and 3.13.1

3.13 ships the first C# 8 Nullable Reference Types annotations. Almost all areas have been annotated. There are some important things to call out about this:

  • Assert methods don't always throw exceptions when the assertion fails, due to the Multiple Asserts feature. Starting in version 3.6, Assert.NotNull(obj) no longer meant that obj would never be null on the following line. Assert.Catch and the other Assert methods are the same way. The nullability annotations added in 3.13 reflect this existing reality. We decided to only add nullability annotations that were accurate in every circumstance—a philosophy consistent with how .NET itself is annotated. This leads to the next point.

  • If you enable Nullable Reference Types in your test project, you will want to also add NUnit.Analyzers 3.0 or newer to your test project. Adding the analyzer is a great idea on its own, but it also specifically mitigates the problem in the previous point by suppressing C# compiler nullability warnings when we know it's safe, when not in a Multiple Asserts context. This way you don't have to use the C# null forgiveness operator (!) everywhere.

Another addition in 3.13 is the FixtureLifeCycle attribute. It enables you to stop sharing fixture instances between the tests inside that fixture. It is useful in combination with the Parallelizable Attribute because it allows tests within a fixture to run in isolation from each other without sharing instance fields and properties during parallel test runs.

3.13 also fixes several issues running tests in .NET 5.0. If your tests target .NET 5.0, we recommend updating to this release or a newer one.

NUnit Console and Engine 3.12

This release contains various improvements to running tests on .NET Core and Mono, and changes to extension loading logic to allow the Engine to better support extensions which target multiple platforms. There are additionally a number of fixes to issues that were identified with 3.12 Beta 1. Please also be aware that this will be the last version of the NUnit Engine to support .NET Standard 1.6.

NUnit Analyzers 0.5, 0.6, 2.0, and 3.0

These versions bring fixes, new features, and performance improvements. The 3.0 release of NUnit Analyzers automatically suppresses C# 8 Nullable Reference Types warnings based on context in order to fill the gap for conditions that can't be expressed using C# annotations, as mentioned in the NUnit Framework section above. (Many thanks to Manfred Brands for this major contribution.) This functionality depends on a newer version of Roslyn which is not supported in Visual Studio 2017.

So we have decided to release two versions of the analyzers: versions starting with 2.x can be used in Visual Studio 2017. Versions starting with 3.x can be used in Visual Studio 2019. Most features will be available in both the 2.x versions and the 3.x versions unless they require Roslyn functionality that is only available in the 3.x versions.

Version 1.0.0 of Cake has been released🍰🎉

This version is the 112th release of Cake, but just not any release - they've finally hit 1.0 🎉

Major new features

  • .NET 5 support
  • C# 9 support
  • Implicit bootstrapping
  • Rewritten CLI
  • Frosting incorporated into main repository
  • Frosting CLI brought up to speed with Cake script runners
  • Improved globbing support
  • Greatly improved documentation
  • Bugfixes, increased test coverage, and integration tests

Full details and release notes in the release blog post: Cake v1.0.0 released

.NET Foundation Committee Updates

Membership Committee

The membership committee is working on expanded profiles to encourage more people in the .NET ecosystem to join the .NET Foundation. We see that there are many ways to contribute to the ecosystem, and we will use these profile definitions to encourage others to join. The profiles are not mutually exclusive, but should provide more ideas on how you can see yourself contributing to the foundation. We're also starting work on planning this year's board elections. If you're interested in serving on the nominating committee, watch for announcements.

Marketing Committee

We'd like to make our members aware of some marketing resources you can take advantage of.

Events

.NET Conf: Focus on Windows, February 25

Windows 550x182

The .NET Conf team is bringing you another ".NET Conf: Focus" event this Thursday, February 25th all about building apps for Windows. Last year they started a series of smaller, live events are delivered throughout the year that are focused on specific things you can do with .NET.

.NET Conf: Focus on Windows is a free, one-day livestream event that features speakers from the community and Microsoft teams working on Windows desktop apps and making them awesome on the latest .NET 5. Learn why and how to upgrade WPF and Windows Forms apps to .NET 5, see Visual Studio tooling improvements, learn how to leverage cloud services from your client apps, and a whole lot more. You'll also see what the future of native device development will look like in .NET 6.

Tune into focus.dotnetconf.net on February 25, 2021. Ask questions live and come learn how to move your Windows apps forward.

Save the date!

JetBrains .NET Day Online 2021 - Call for Speakers

JetBrains is organizing their third .NET Day Online on May 12, 2021. It is a free virtual event where community speakers cover topics they are passionate about, ranging from deep technical .NET content and speakers' experiences with specific tools and technologies, to personal development.

They are looking for speakers interested in presenting, and welcome all topics that would be relevant to the wider .NET community.

For more information, head over to the Call for Speakers page!

How to Get Involved

The .NET Foundation is only as good as the community that supports it. There are many ways to get involved. 

Support a project

Projects, and the people behind them, are at the heart of what .NET Foundation is all about. These days, you'll find a wide variety of projects under the .NET Foundation. Can you contribute to something already in the works? Browse our projects to find out how to contribute. 

Become a member 

By involving people that are passionate about .NET we can create a powerful organization that furthers sustainable open source, a diverse and open community, and help evolve this growing and evolving ecosystem that we are very passionate about. If you are as passionate about the .NET ecosystem as we are, then you should consider becoming a member of the .NET Foundation. Read more about member benefits and please join to help shape the future.

Join a committee

The .NET Foundation Committees are where the vast majority of work gets done in the Foundation. The more you participate the more we can do together. Please visit the committee hub on our website to learn more and how you can get involved. 

Spread the word

Help spread .NET Foundation's message. Take a look at the .NET Foundation slides and use them in your presentations and events. Members can also request promotion of their events and open source related content. See the marketing repo for details. 

Buy some merch

Show off your nerd side with pride! Support the .NET Foundation by rocking some gear from our store. Check out the new items and don't forget to show them off on Twitter #dotnetlovesme

Have some fun

Coding is better with friends, especially when they bring their own mods. As the mascot for the .NET community, dotnet-bot helps with checking pull requests on .NET repos on GitHub. Create your own coding companion by building your own custom dotnet-bot at mod-dotnet-bot.net and sharing it on Twitter #dotnetlovesme

mod-dotnet-bot.net

by Shawn Wildermuth

As part of the .NET Foundation's goals to help broaden the appeal of .NET, we're proud to announce the .NET Foundation's new Speakers Directory. The goal of the directory is to help people discover and encourage speakers from around the world as weell as to provide mentors for new speakers.

If you're looking for a speaker for your upcoming user group or event, you can find speakers that match your needs by visiting The Speakers Bureau:

Speaker's Bureau Filtering

This will allow you to find speakers by language and technology. You can even use the map to find speakers near you:

Speaker's Bureau Map

With approximately 250 speakers so far, we're excited to bring this new feature to the .NET Foundation!

We invite you to add yourself to the directory, act as a mentor if you'd like, and contribute to building up the global list of community speakers.