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.

Here's the June 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:

  • Join an Action Group!
  • .NET will be at OSCON
  • Save the Date for .NET Conf 2019
  • .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


Join an Action Group!

Last month, we 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 will be communicating out to the individual teams over the next few weeks.

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

Sign Up For An Action Group


.NET Foundation will be at OSCON

.NET Foundation will have a session at OSCON in Portland, July 15th – 18th. We’ll be talking about the importance of open source software foundations. If you’re headed there, please come see us! We’ll also have .NET presence at the Microsoft booth in the form of coding challenges, SWAG and experts you can chat with there.


.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

DotVVM 2.3 Released

DotVVM 2.3 brings several performance improvements and fixes, including a new API for local redirects and asynchronous loading of GridView.

Simmy - chaos-engineering integrated with Polly

Simmy (github; nuget) is a new chaos-engineering and fault-injection tool from the Polly team and some awesome contributors. Integrating with the Polly resilience project for .NET, Simmy lets you inject chaos into your calls to any third party system. Exceptions, fault code responses, or additional latency can all be injected into calls. Control parameters let you target which calls will be affected and how frequently, and a master on/off switch per call-path lets you turn chaos experiments on and off safely.

DNN Platform Readies 9.4.0 Release

As part of the first step to adding support for ASP.NET Core, the DNN Platform project is releasing version 9.4.0 with initial support for ASP.NET Core dependency injection. Numerous additional improvements have been included as well, including more than 100 unique contributions from 30 members of the community.

DNN Summit 2020: Call for Speakers

DNN Summit 2020 Call for Speakers has now opened. Conference will be held in Orlando, Florida Feb 24-27, 2020.

ReactiveUI 8.18.1 Released

ReactiveUI 9.18.1 has been released and we have officially added @UnoPlatform support to ReactiveUI. You can find the NuGet packages under ReactiveUI.Uno -- please report any bugs since this is fairly new support.

Announcing Pharmacist

Announcing Pharmacist, maintained by the ReactiveUI team. It's a tool for converting Events into Observables. Observables being linq composible events that you can manipulate onto different threads and other processes, allow you to much easier abstract the events from your Views. 

Pharmacist allows you to include a NuGet package, and it'll scan any referenced NuGet in the current project and generate Observable wrappers for all events found.

Pharmacist is being used within ReactiveUI to generate our event wrappers for all the various platforms now such as Xamarin Forms, Uno, Android, WPF, WinForms.

Pharmacist is built on top of Roslyn and System.Reflection.Metadata technologies.


Meetups

Our .NET Foundation sponsored .NET Meetup Pro groups are continuing to grow worldwide. Here are some quick stats:

  • 298 Groups
  • 60 Countries
  • 222K 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.

Today we're excited to support a new project announcement, Core WCF.

Core WCF is a new community owned OSS project under the .NET Foundation with its initial code donated from a WCF team member at Microsoft. Core WCF is not intending to be a 100% compatible port of WCF to .NET Core, but aims to allow porting of many WCF contract and service implementations with only a change of namespace. Initially, it will be for HTTP and TCP SOAP services on-top of Kestrel, which are the most commonly used transports on .NET Framework. This project is not yet ready for production but needs people to get involved and help get it there faster. If you are interested in this, or want more details about the project, then we encourage you to go and explore the Core WCF project on GitHub

For more context on how Core WCF fits in with the .NET 5 roadmap, see Scott Hunter's post on the .NET team blog, Supporting the community with WF and WCF OSS projects.

I think this is a great example of how the .NET Foundation can help coordinate .NET open source projects in a way that benefits the broader community. Microsoft reached out to us and said they could help contribute the beginning code for this project as well as some ongoing development support. We reached out to some .NET open source community leaders, and helped put together a team led by Tibi Covaci. Going forward, it's going to be helpful for this project to have the .NET Foundation's support services as they get off the ground.

Congrats to the team on their public launch, and looking forward to helping you build a successful project.

The .NET Foundation is happy to announce that OData is joining the .NET Foundation!

OData (Open Data Protocol) is an ISO/IEC approved, OASIS standard that defines a set of best practices for building and consuming REST APIs.

OData enables the creation of REST-based services which allow resources identified using Uniform Resource Locators (URLs) and defined in a data model, to be published and edited by Web clients using simple HTTP messages.

OData helps applications to focus on business logic without worrying about the various API approaches to define request and response headers, status codes, HTTP methods, URL conventions, media types, payload formats, query options, etc.

It provides guidance for tracking changes, defining functions/actions for reusable procedures, and sending asynchronous/batch requests.

OData improves semantic interoperability between systems and follows these design principles:

  • Follow REST principles.
  • Keep it simple. Address the common cases and provide extensibility where necessary.
  • Build incrementally. A very basic, compliant service should be easy to build, with additional work necessary only to support additional capabilities.
  • Extensibility is important. Services should be able to support extended functionality without breaking clients unaware of those extensions.

Moving the OData .NET libraries to the .NET Foundation recognizes the significant continuing contributions from the community, reaffirms Microsoft’s commitment to those libraries, and makes it easier than ever for the community to engage in the ongoing support and evolution of those popular libraries.
              
You can find more information on OData at https://odata.org