Here's the September 2019 .NET Foundation update. Every month, we'll give you a quick overview of the .NET Open Source landscape, including top project news, events, community links and more.

This month's update includes:

  • .NET Conf 2019
  • Rethinking the Project Maturity Model🤔
  • Welcoming AWS as a Corporate Sponsor
  • .NET Core 3.0 Released
  • .NET Conf - Stats and Highlights
  • .NET Conf Local Events
  • 🚀 Action Group Updates 🚀
  • New: .NET Videos
  • .NET Foundation Project Updates
  • Community Project News
  • Hacktoberfest
  • .NET Foundation Presentations Updates
  • Meetups

As always, these are available both on our blog and via e-mail: Sign up to get the .NET Foundation Update via e-mail


.NET Conf 2019

It's a wrap on .NET Conf 2019 (September 23 - 25) and it was the largest one yet! I don't have the exact numbers available, but Javier Lozano, one of the founders of the conference assures me it was significantly larger in attendance than last year. [Note: More info on .NET Conf, including some actual stats, below.]

For those who don't know, .NET Conf is a virtual conference with speakers from all over the planet. If you missed it, all the sessions are available on YouTube!

During the conference, the .NET Foundation announced a proposal to develop a Project Maturity Model, which leads to the next update.


Rethinking the Project Maturity Model🤔

The .NET Foundation Board engaged with the community and received a ton of feedback both positive, neutral, and negative regarding the proposal mentioned above. The feedback helped us realize that we made a mistake in our approach and need to scrap the proposal and rethink the approach. Find out more in this blog post by Ben Adams, a .NET Foundation board member.

And a big thank you to everyone who commented on the proposal! Your feedback is valuable.


Welcoming AWS as a Corporate Sponsor

Also at .NET Conf, we annouced that AWS is joining our Corporate Sponsor program! The AWS team talked about why they're joining here.


.NET Core 3.0 Released

One of the highlights of .NET Conf was the release of .NET Core 3.0. Find out what's new in 3.0 here. This is a major release bump so there will be breaking changes. Even so, I for one am looking forward to upgrading my code to reap all the performance benefits.

It's an exciting time to be a .NET developer!


Phil Haack
Board Member | .NET Foundation


.NET Conf - Stats and Highlights

As Phil said above, this year's .NET Conf was the biggest yet! How big?

  • Over 100K total live stream views (up 27% from last year!)
  • 67K unique viewers
  • 77 live sessions, including 32 in studio and the rest during a 24 hour community presented all-nighter

The session videos were all recorded and are going up on YouTube. We're still getting the community sessions posted - sorry for the delay, we've got to chop up a single 24 hour, 50GB video into dozens of individual files and get them all uploaded to YouTube. Soon!

Check out the .NET Conf 2019 Keynote, with tons of demos featuring the brand new .NET Core 3.0:


.NET Conf Local Events


We've got over 220 .NET Conf Local Events this year, running through the end of October. We sent out some exclusive .NET Conf branded swag to the events, too. Find one near you!

Post your event photos with hashtag #dotNETConf and we might include them in next month's newsletter. Don't forget to tell us where you are - we love to see updates from around the world!


🚀 Action Group Updates 🚀


Help guide our Project Maturity proposal

Want to be part of the team that guides our Project Maturity proposal? The Project Support Action Group would love your input!
 

😻How can the .NET Foundation help you?😻

To better understand the needs of the community, our Outreach Action Group has put together this survey. We'd love to hear how we can best help provide mentorship and resources to .NET developers. Please weigh in!
 

Join an Action Group

Action Groups are the best way for you to get involved in shaping the future of the .NET Foundation. If you're a .NET Foundation Member, sign up to join an action group:

Sign Up For An Action Group


New: .NET Videos 

Wow! Over 80 Free videos for learning about .NET developer platform and how to use it! Grab them at https://dot.net/videos


.NET Foundation Project Updates

Polly

Polly version 7.1.1 released: bug fix for async retries with .ConfigureAwait(true)

The Polly-Contrib community continues to grow, with two new releases:

  • Polly.Contrib.WaitAndRetry (githubnuget): provides a new jitter strategy for decorrelating retries in highly concurrent scenarios, as well as a range of helper methods for common wait-and-retry scenarios such as exponential backoff. The new jitter strategy offers a smoother distribution (stronger decorrelation) than previous jitter recommendations, combined with a well-defined exponential backoff characteristic. Thanks to @george-polevoy@grant-d and @hyrmn for making this project a reality!

  • Polly.Contrib.AzureFunctions.CircuitBreaker: is a durable, distributed circuit-breaker, implemented in the new Azure Entity Functions (preview). The distributed circuit-breaker can be consumed from within plain Azure functions and Azure orchestration functions, and is fully stateful and consistent across function invocations and function app scale-out. The circuit-breaker also exposes an external Http api, making it consumable as a general distributed circuit-breaker for apps or components outside functions. Authored by the core Polly team


Windows Community Toolkit

Announced preview of XAML controls for Microsoft Graph which work with UWP apps and in WPF/WinForms for Win32 apps via XAML Islands on .NET Core 3 and on Android and iOS with Uno PlatformGitHub repo for control preview.

6.0 Release coming in October, see the release plan here.


ReactiveUI

Version 10 of ReactiveUI that added .NET Core 3.0 WPF/Winforms and Blazor preview support. The release also offered a bunch of performance upgrades converting from Tuple to ValueTuple, and using non-reflection based Observables.

We are working on changing the way the Initialization is done within ReactiveUI v11 to make it more obvious to users how it is performed and remove reflection.


IdentityServer 3.0 released - and now part of the ASP.NET Core 3 templates

IdentityServer4 3.0 is now compatible with ASP.NET Core 3. The focus of this release was mostly to make sure everything is working with the new ASP.NET Core version, but also adds a couple of new features:

  • Adding the last missing pieces for FAPI compliance
    • support for the PS* and ES* family of signing algorithms
    • support for s_hash claim
  • Update to use the latest IdentityModel version

IdentityServer4 is also now included in the new Angular and React templates in Visual Studio. See here for documentation.

repo / NuGet / release notes


DotVVM 2.4 Preview 1 with .NET Core 3.0 Support

DotVVM 2.4 brings several important improvements and fixes, and is fully compatible with ASP.NET Core 3.0.

  • Better PWA (Progressive Web App) support in DotVVM
  • Diagnostics and debugging improvements
  • Performance improvements of the ValidationSummary control
  • New MultiSelect control
  • and more...

And we've created a new sample app - Blazing Pizza rewritten into DotVVM - it shows the differences between Razor syntax and the MVVM approach used in DotVVM.


Cake

Cake 0.35.0 version

We're really excited by this release which has several features and improvements:

  • .NET Core 3 support
  • C# 8 support
  • Runtime identification improvements
  • Runtime compiler constants
  • and more...

Full details in Cake v0.35.0 released blog post.


Pivotal: Cloud Native .NET

Pivotal has released a free guide titled Cloud-Native .NET the Right Way. Grab it here!


Community Project News

We had a suggestion to include submissions from community projects that aren't (yet 😉) a part of the .NET Foundation. Sure, why not? You can submit your project news for next month here.
 


BaGet

BaGet is a lightweight NuGet and Symbol server. Version 0.2.0-preview1 added BaGet.Protocol, an easy-to-use SDK to interact with NuGet V3 servers.

For more information on BaGet, see:


Hacktoberfest


Hey, while we're talking .NET open source projects, now's a great time to contribute and get a free limited edition T-shirt in the process! Hacktoberfest is open to anyone - make four pull requests during the month of October and get a T-shirt!


.NET Foundation Presentations Updates


Want the slides from .NET Conf? You know where to find them - in our one stop shop for .NET Presentations. Grab them from https://aka.ms/dotnet-presentations.


Meetups

Our .NET Foundation sponsored .NET Meetup Pro groups are continuing to grow worldwide. Our meetups are a great place to get involved in your local community, especially now as so many are hosting .NET Conf Local Events! Here are some quick stats:

  • 318 Groups
  • 61 Countries
  • 241K Members

Our .NET Meetup Pro group helps developers find your group, as well as get involved with local events like .NET Conf Local. If your meetup hasn't joined yet, you can right here.
.


Connect with the .NET Foundation online

The .NET Foundation is on Facebook now. Please like our page! We’ll post regular updates and interesting things happening with .NET to share.

The .NET Foundation is also on YouTube. Watch community standups and design reviews as well as code-focused shows and interviews across our multiple playlists.


Remember to Subscribe!

Please sign up to get the .NET Foundation Update via e-mail. Don’t worry, we want to keep these short, interesting, and low-noise, so we won’t overload your e-mail.

Author: Ben Adams, .NET Foundation Board Member

The Project Support action group is responsible for brainstorming and helping to implement the various ways (and services) that the .NET Foundation offers to member projects. The goal is to ensure that member projects are sustainable and well supported.


The .NET Foundation's current Project Support so far has been focused on providing services and automation for projects; to help project maintainers and contributors to be able to focus more on their projects and less on the infrastructure.

The .NET Foundation board has been looking at how we can go further and offer projects a greater degree of support. As part of this we saw some key areas the .NET Foundation could provide guidance and assistance as part of this initative.

The areas we identified fit together as four threads, which are interwoven and interdependent:

  • Sustainability
  • Continuity
  • Security
  • Adoption

We created a first draft proposal as part of this initiative as the Project Maturity Model and announced it at the .NET Conf 2019 because we were excited to share and we wanted to reach the widest possible audience.

I, Ben Adams, was elected on a mandate of

I’d like the .NET ecosystem to thrive with projects people consider and take dependencies on to be much wider than the narrow “Microsoft-blessed” scope that people and companies generally consider.

I consider this Project Support Initiative as part of that mission. This initiative was directed by the .NET Foundation board and not by Microsoft (though Microsoft employees did participate in drafting the initiative). However, this does not excuse it being presented as a solution, without broader community consultation and I (and the Board) take responsibility for that. So for that I must apologise, and I'm slowing this process down to get back to basics and to move forward on more solid ground.

The whole .NET Foundation board is listening, participating in, and taking to heart the excellent feedback from the community. We apologise this was rushed before we had fully engaged with project leaders and members. More problematically we shared a solution to a problem without discussion with members about what the problem was or how the solution could address it.

We accept this meant we may have been addressing the wrong problem; or risking not finding the correct solution. We had hoped this proposal would spark discussion; but now realise presenting "what" without the context of "why" to demonstrate "how" seemed more like a fait accompli then a starting point for evolution of the proposal.

This was the opposite of what we were trying to do and the .NET Foundation Board will be more transparent and inclusive in the approach it takes in future.

The most important thing to us is the projects, and we want them to succeed. We want to enable them, not constrain them.

We consulted with some projects to understand if we were were taking the right approach; and we consulted with Microsoft and other companies to see if our solution would enable adoption of projects by them; and allow them to be acceptable under stricter corporate governance policies. Unfortunately; once we had established this was possible, we didn't then open this discussion up to all projects, to find out if it was acceptable to them, or if there was a better way. This was wrong.

However, the .NET Foundation is not just its projects, it is also its members. Again once we had established that cutting through strict corporate governance was in principle possible, we should have opened the discussion to wider debate with the members; and come to a concensus with them what the best approach was.

To this end, we will not be carrying forward with the current proposal. We will instead be opening discussions on the best way forward with this initiative in the .NET Foundation Project Support Action Group with members, please do sign up to the Action Group if you want to take part; the more people that get involved the better this can be.

When we have a consensus with members on how we will move forward; we will open up the discussion more widely on the public .NET Foundation forums, before firming up plans. Please note anyone can sign up to become a member and join the Project Support Action Group; if you would like to participate at the early stages.

Taking a holistic step back, and addressing some concerns that arose in the discussions:

  1. The .NET Foundation is a independent non-profit foundation created to support .NET Open Source Software.
  2. The .NET Foundation Board has 7 members; 6 of whom were elected by .NET Foundation members and only has 1 member who works at Microsoft.
  3. The .NET Foundation Board are unpaid volunteers who are representing and have the best interests of the wider .NET ecosystem at heart and not working to the agenda of any particular company.
  4. As the board are not full time employees; we may request assistance from .NET Foundation members who can also volunteer their time to pursue initiatives. This may include Microsoft employees along with the general membership if they are also .NET Foundation members. In these cases they will be assisting as independent Foundation members and not as employees or representatives of Microsoft.
  5. If Microsoft employees take part in .NET Foundation activities this does not mean there is a conspiracy; it is because they love .NET and want it to succeed.
  6. The .NET ecosystem is bigger than Microsoft; one of our goals is for the community and companies to recognise this.
  7. The .NET Foundation is not seeking to undermine projects existing business practices; but to enable them to reach a wider audience.
  8. The .NET Core code base is copyright the .NET Foundation not Microsoft; it is innoculated against a "Java-style" event.
  9. While the code base is owned by the .NET Foundation; like any .NET Foundation project, the leadership of .NET Core does remain with the maintainers who in this case are Microsoft.
  10. As an independent foundation the .NET Foundation is a neutral party whose goal is the support of open source projects.
  11. As the home of many .NET projects the .NET Foundation is in a unique position to gather and share best practices and provide assisance to projects who wish to adopt them.
  12. The .NET Foundation would like to help projects target new clients and drive down the barriers that prevent their adoption.

Please keep giving feedback, we are listening. We will do better and the .NET Foundation itself will evolve and mature as part of this process.


If you are a .NET Foundation member you can sign up to join this and other action groups at the .NET Foundation Teams on GitHub. If you are not a .NET Foundation member and would like to join; apply for membership at the .NET Foundation Members page.

Today, I'm excited to welcome NEO as the very first blockchain platform to join our community.  NEO is a pioneer in adopting the .NET platform, and we support them in building an innovative decentralized platform and developer community. NEO is joining the .NET Foundation at an exciting time of growth for the .NET Foundation, as well, and we're very happy to have them on-board!

The NEO team has a great writeup their platform and the community they've built for .NET developers here.

Welcome!

Today, we’re thrilled to announce that AWS is joining the .NET Foundation Corporate Sponsor Program.

AWS joins a growing list of industry leaders in the .NET open source ecosystem who support the .NET Foundation as members, including Microsoft, Google, Red Hat, JetBrains, Unity, Samsung, Pivotal, Insight, and Telerik.

AWS has been an active contributor to the .NET ecosystem for years, and by joining the .NET Foundation they can become more deeply involved. They are also showing their support for the .NET open source community, as their financial contribution goes to support open source projects, worldwide Meetups, our member-run action groups, and new initiatives. The .NET Foundation will also benefit from their expertise as they help shape plans for future growth.

For more information, please see the announcement from the AWS team here.

For more information about the .NET Foundation’s Corporate Sponsor Program, see this post.

Jon Galloway
Executive Director, .NET Foundation

UPDATE: We've had a lot of community feedback on this proposal, and as a result we're rethinking Project Maturity as a Community Process.

Today, we're announcing a new concept for .NET open-source projects and a pilot program to develop it in the open. The goal is to increase the confidence of users adopting open-source projects and to create new projects to fill gaps in our ecosystem. We've reviewed this with some key projects, which have joined the pilot to help validate how it should evolve into programs that the .NET Foundation makes broadly available for the community.

At our community elected board's first meeting, the board identified some areas they wanted to improve, implemented through Action Groups. The Technical Review Action Group, led by Jon Skeet and Ben Adams, identified some opportunities to improve the quality of key .NET projects through some additional structure and guidance. Working separately, members of Microsoft's .NET team (led by Rich Lander) identified some ways to increase open source software quality and practices for large organizations, which would also allow them to more effectively engage with community run .NET open source projects. Together, we've written up what we believe to be a pretty good first draft, and we were happy that our pilot project leaders agreed.

We are proposing three new programs:

.NET Foundation Project Maturity Model

These programs are similar to and inspired by programs run by other software foundations, such as Cloud Native Computing Foundation (CNCF) and Apache Foundation. Those foundations have a great track record of producing high value projects for the public good, and establishing project characteristics and infrastructure that provide confidence to users.

The following projects have helped the working group shape the pilot and have agreed to join it as part of this public rollout:

See the .NET Team's post on joining the .NET Foundation Maturity Model.

Thanks to those projects for their help and for trying out this concept!

.NET Foundation Project Maturity Ladder

The maturity ladder is open for projects that want to register to participate.

While the pilot is running, it's important to get broad community feedback on the master. The working group will be seeking feedback from maintainers, contributors, and users. In terms of users, the working group will seek feedback from individuals, companies, public organizations, and governments.

There are many way to provide feedback:

  • File an issue in the project repository.
  • Reach out to the working group by e-mail.
  • Request a conversation or call.