Here's the July 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 newsletter includes:

  • New Process For Newsletter Submission
  • Project Onboarding Process Improvements
  • Join an Action Group!
  • .NET Foundation at OSCON 2019
  • .NET Conf 2019, September 23-25 (www.dotnetconf.net)
  • .NET Foundation Project 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


New Process For Newsletter Submission

We have a new process for submitting project news! Yay! No more cumbersome spreadsheets! Check out the README for more details. We also have a handy YouTube video that walks through the process.

 


Project Onboarding Process Improvements

Project onboarding is now handled publicly via GitHub issues. The process is now more transparent and visible. Progress through the process is easily visualized via a GitHub project board.

This is part of our effort to move to open processes so action groups and community members can more easily participate. The previous process was buried in emails and word documents and lacked visibility and transpancey.

We have an issue template for new project applications here: https://github.com/dotnet-foundation/projects/issues/new/choose

Key goals:

  • Clear status to projects
  • Use milestones and labels to batch up applications into monthly review cycles
  • Enable action group members to review and help out on applications
  • Comments / pull requests / etc. are welcome.

Join an Action Group!

We recently announced our new Action Groups: a way for .NET Foundation members to join teams and get directly involved in helping the .NET Foundation scale to the next level. Our teams include the following:

  • Communications
  • Corporate Relations
  • Marketing
  • Membership
  • Outreach
  • Project Support
  • Speakers and Meetups
  • Technical Review

We've been figuring out logistics and communications as we move to working publicly and with a large team. We've settled on GitHub Organizational Teams and are continuing to roll this out to the teams - we've mostly started with Marketing and Project Support so far, but are now working on getting other groups more involved in our day to day business.

If you're a .NET Foundation Member, sign up to join an action group:

Sign Up For An Action Group


.NET Foundation at OSCON 2019

Jon Galloway, Executive Director of the .NET Foundation, attended and spoke at OSCON this month. Check out his presentation slides and notes from the conference: .NET Foundation at OSCON 2019.


.NET Conf 2019, September 23-25 (www.dotnetconf.net)

.NET Conf is our annual, free, online virtual event and this year and it’s going to be bigger than ever. .NET Core 3.0 will launch at .NET Conf!

The .NET Conf Call for Speakers is now open. This is your chance to present to the world-wide .NET Community remotely from your own time-zone. Head to www.dotnetconf.net to learn more and save the date!


.NET Foundation Project Updates

ML.NET 1.2 released

ML.NET 1.2 and updates to Model Builder and the CLI were released on early July 2019. ML.NET is an open-source and cross-platform machine learning framework for .NET developers. ML.NET also includes Model Builder (a simple UI tool for Visual Studio) and the ML.NET CLI (Command-line interface) to make it super easy to build custom Machine Learning (ML) models using Automated Machine Learning (AutoML). Using ML.NET, developers can leverage their existing tools and skill-sets to develop and infuse custom ML into their applications by creating custom machine learning models for common scenarios like Sentiment Analysis, Price Prediction, Image Classification and more!

The following are some of the key highlights in this release:

  • General availability of TimeSeries support for forecasting and anomaly detection
  • General availability of ML.NET packages to use TensorFlow and ONNX models
  • Easily integrate ML.NET models in web or serverless apps with Microsoft.Extensions.ML integration package
  • MLNET CLI and Model Builder for Visual Studio were updated with multiple improvements

For further details on the ML.NET 1.2 release, check this Blog Post:

Announcing ML.NET 1.2 and Model Builder updates (Machine Learning for .NET)

Get started with MLNET here. Get started with Model Builder here. Refer to documentation for tutorials and more resources. Learn from samples apps for different scenarios using ML.NET.
 

Cake v0.34.0 released & v0.34.1 released

Version 0.34.0 has several features, improvements and bug fixes, full details in the linked blog post but a few highlights in this release:

  • Improved MSBuild 16 (VS2019) tool resolution
  • Update to Roslyn version 3.0.0
  • Updated to NuGet client version 5
  • NuGet pack support for several new nuspec elements

Version 0.34.1 is just a minor release as a hotfix to address an issue breaking scripts when the dynamic C# keyword was used in build scripts. This was a side effect of updating from Roslyn 2.x to 3.x.

🎉 We're also happy to share that Cake turned five years old this May! And we've just done our 100th Cake release! 🎉
Huge thanks to our contributors and users! Wouldn't have been possible without your support! ❤

Migrate ASP.NET Web Forms Sites to .NET Core using DotVVM

Did you know that DotVVM can be used to incrementally modernize old ASP.NET Web Forms applications and lift them to .NET Core? It is much easier than doing a full rewrite, and the application can be deployed at any time during the entire process.

  • Install DotVVM NuGet package in your Web Forms site
  • Create a DotVVM master page using the same CSS
  • Start converting ASPX pages to DotHTML syntax, one at a time
  • When all the Web Forms pages are gone, change your CSPROJ to use .NET Core

We have created some useful resources that will help you in this process.

Prism v7.2.0.1367 released

Prism 7.2 has several improvements for WPF and Xamarin.Forms developers including:

  • New Fluent API for the IContainerRegistry
  • Added several new API's to IContainerRegistry and IContainerProvider that significantly reduce the need to depend directly on the root container
  • Optimizations for the Weak DelegateReference for the EventAggregator
  • Added a new Dialog Service allowing developers to create dialogs in their app with a more custom look and feel

Additionally Xamarin.Forms developers will be able to enjoy:

  • New initialization API's including IInitialize, IInitializeAsync & IAutoInitialize. These all help you to replace the now Obsolete OnNavigatingTo from INavigatingAware and INavigationAware
  • Automatic ViewRegistrion
  • Additional XAML Extensions... all XAML Extensions are now fully bindable
  • Enhanced Modal logic that should eliminate the need to ever specify whether to use Modal navigation when Navigating back from a page.
  • Added extension to allow selecting tabs from the NavigationService

For more great information be sure to tune in and follow Prism's maintainers

Akka.NET v1.3.14 Released

Maintenance Release for Akka.NET 1.3 You know what? We're going to stop promising that this is the last 1.3.x release, because even though we've said that twice... We now have another 1.3.x release.

1.3.14 consists of non-breaking bugfixes and additions that have been contributed against the Akka.NET v1.4.0 milestone thus far. These include:

To see the full set of changes for Akka.NET v1.3.14, click here.

Follow Akka.NET on Twitter if you're interested in receiving more updates from the project.
 

ASP.NET AJAX Control Toolkit v19.1.0 - Now Available

A few years ago, we took over maintenance and guidance for the ASP.NET AJAX Control Toolkit project. Please refer to this blog post for more information on the project and why we stepped in to assist.

As part of our ongoing commitment to the project, we’ve released an update (ASP.NET AJAX Control Toolkit v19.1.0) to address the following issues.

Improvements

  • Visual Studio 2019 Support
  • Security hardening: HTML-encode file names in AjaxFileUpload (#483)

Resolved Issues

  • AutoCompleteExtender: the TextChanged event is not fired in Edge (#458)
  • Rating: The raise_mouseOver method has an invalid argument name (#461)
  • AsyncFileUpload changes the frame target to _top (#466)
  • HtmlEditorExtender unconditionally removes tags with data URLs (#467)
  • NRE in IsLocalizationEnabled() within a PageAsyncTask (#486)

Ready to Upgrade?

To update the ASP.NET AJAX Control Toolkit, please download our most recent installer using the link below.

Download

Or, if you prefer, use Nuget:

ASP.NET AJAX Control Toolkit Nuget package

As always, we welcome your feedback. Please share your thoughts on this update via GitHub.
 

Sextant 2.0 released

Sextant a view model navigation library released 2.0. This release adds a few new features, cleans up some existing issues and deprecated some functionality.

  • We changed the way regsitration of Sextant dependencies are handled

  • Added Navigation Parameters that are passed on Navigation

  • Added Sextant.XamForms for Xamarin.Forms support

  • Example


Meetups

Our .NET Foundation sponsored .NET Meetup Pro groups are continuing to grow worldwide. We just passed 300 groups! Here are some quick stats:

  • 307 Groups
  • 60 Countries
  • 230K 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.

Earlier this month, I (Jon Galloway) attended and spoke at OSCON (Portland, July 16-18), representing the .NET Foundation.

TLDR:

  • Presentation “Why you should care about open source software foundations” went well
  • Spoke with Open Source Initiative (OSI) about the .NET Foundation joining as an OSI Affiliate member, have since applied
  • Tidelift has an interesting model of supporting open source projects financially while providing value to supporters through paid project support, security scanning, etc.
  • Really good discussions and connections with other open source foundation leaders
  • Attended some good presentations and panels on open source communities

Presentation: Why you should care about open source software foundations

(slide download, 2 minute video on this tweet)

In two years of supporting the .NET Foundation, I continue to see that developers are generally aware that open source software foundations (like the Linux Foundation, Apache Foundation, Eclipse Foundation, and .NET Foundation) exist, but have no idea why. That’s unfortunate, because foundations are really important for the entire open source ecosystem, including contributors, project leaders, consumers, businesses who depend on open source, pretty much everyone in software development. I’ve been giving a talk on what the .NET Foundation does at .NET related conferences over the past few years; at OSCON I broadened this to a more general “why are foundations a thing” talk, with .NET Foundation as a more of a case study.

My high level generalization is that open source software foundations exist to make sure the projects you care about stay around and thrive.*

There are different foundations, with different focuses based on the communities they serve. The .NET Foundation has an interesting challenge, in that it supports both projects contributed by a trillion dollar company as well as projects that are broadly used but are developed by tiny teams.

For the tiny team scenario, I show the following comic in my slides (used with permission):

Source: http://www.commitstrip.com/en/2014/05/07/the-truth-behind-open-source-apps/ 

In the case of projects contributed and primarily developed by Microsoft, the .NET Foundation serves other purposes, like facilitating collaboration with thousands of companies and individual contributors worldwide through independent licensing, CLA support, legal, etc.

So my high level outline for this presentation is:

The reception was good, and questions indicated people got it. Also nice was that both lawyers from the .NET Foundation’s outside legal counsel team (external to Microsoft, as .NET Foundation is a separate non-profit corporation) were there. We went to lunch after the presentation, and they both said that this really helped them understand what we’re doing and what’s unique about the .NET open source community a lot better.

This session was filmed, but I believe they’re just making the video available to paid attendees. I’d be happy to record and post a version if desired.

*Saying that open source software foundations exist to keep projects sustainable is a bit of an over-generalization. For instance, some foundations exist to advocate for viewpoints like free software, open web (Mozilla), etc. But, baby steps, I’m happy to start with a generalization when most people I talk to want the 101 level intro.


Open Source Foundation networking

I had a lot of really good conversations with leaders of open source foundations. It’s just generally good for everyone to be aware of .NET as a “real” open source thing™, but there were two standout interactions:

  • The Open Source Initiative (OSI): These folks were an exceptionally friendly bunch, and recommended that the .NET Foundation join the OSI as an affiliate member. I’ve since reviewed their requirements and published information and have started the application process. It'll need to go through both boards for approval, but at a high level this sounds really good to me.
  • GNOME Foundation: Our recent governance model restructuring to a community elected board was heavily influenced by the GNOME Foundation’s model. It was nice to check in with them, talk to their executive director for a while, and hear what works for them organizationally.

Tidelift conversation

I had a long discussion with Luis, a co-founder at Tidelift. We’ve chatted before via Twitter and e-mail, but their business model is complex enough that it was much more effective to talk in person.

Tidelift offers a “managed open source subscription backed by creators and maintainers”. Luis is a lawyer with a long history in open source, and he’s been working to think through how to offer a subscription model that benefits both open source projects and sponsors. Here’s the idea:

  • Companies that use open source software sign on for a subscription
  • Tidelift scans their software to help them determine what they’re using (note: according to Luis, when companies guess at supporting open source projects, it can come down to well marketed projects, who the CTO follows on Twitter, etc.; actually analyzing dependency trees reveals building block packages that they may be relying on heavily without knowing it)
  • Tidelift builds a relationship with open source projects to set up support plans. Projects need to have things like defined security vulnerability reporting plans, support structure, etc., and in exchange Tidelift gives them a usage based share of their monthly subscription revenue.
  • Some of the subscription revenue supports paid development for issues requested by sponsoring companies.

Note: This is my quick summary from an in-person conversation, and it's likely it's not exactly precise. I recommend reading the content on the Tidelift site to make sure you get the real scoop.

It’s an interesting model that aims to connect the dots between companies using open source software and under-funded open source projects. While at some point we may want to look at a bigger, organizational level agreement, I think we’ll start by offering an introduction to .NET open source community projects that are interested. Also, Luis knows everyone in this space, so it was nice just hanging around at their booth for an hour or so and meeting all the open source legal people who came by to chat. :-)


Attended Session Highlights

I attended some informative sessions, with a focus on open source governance and community. Some highlights:

FOSS governance: The good, the bad, and the ugly (Deb Nicholson, Software Freedom Conservancy)

This was an informative, and highly entertaining, overview of open source project best and worst practices. My main takeaway was that open source project teams and practices often organically evolve, and aren’t objectively evaluated to see what’s working and what can be improved. Deb pointed out a lot of things, like shared vision, documented processes, and plans for dealing with hostile leaders, that are worth stepping back and thinking about.

Building and maintaining open source communities (panel)

Great stuff at this panel! Some top tips from leaders that have built effective open source communities:

  • Focus on and improve onboarding experience
  • Look for your top contributors (“one percenters”) and really support them
  • Watch for signs of burnout, especially in your 1%ers
  • Ask them what problems they’re facing and what they’re most proud of
  • Rotate through administrative roles
  • Have community awards
  • For open source projects associated with a company, make corp leaders aware that you’re building and spending community capital. A corporate misstep can spend years of capital the team has been building.
  • Document everything, especially succession plans
  • Metrics - agree with management on goals, tie in to corporate goals
  • Don't focus on code, focus on needs of community

We also gave away some stickers, and I popped in at the Microsoft table to talk to .NET developers as they stopped by.

Overall, this was a valuable conference to attend. It was really good to continue to publicize open source .NET and the .NET Foundation, make connections with other foundation leaders, and learn tips that have been effective in building open source communities.