Today, at Microsoft’s Connect() event in New York we announced some important news regarding the .NET Foundation Technical Steering Group.

First of all, I’m thrilled to welcome Google to the .NET Foundation Technical Steering Group joining Microsoft, Red Hat, JetBrains, Unity and Samsung to help bring greater innovation to the .NET platform.

.NET Foundation Technical Steerinh Group

Google has been one of the most active contributors outside of Microsoft to .NET Foundation projects over the past two years as well as helping to drive the ECMA Standardization process for C#. .NET workloads have first-class support on Google Cloud Platform including recently announced native integrations into the popular Visual Studio IDE on Windows and deep support for PowerShell. Google’s work is a natural fit into the Technical Steering Group and I’m glad they have agreed to come on board to help steer the future direction of the platform.

“We’re very happy to add .NET support to our list of supported frameworks on Google Cloud Platform,” said Chris Sells, Lead PM for Google Cloud Developer Tools. “Enterprises moving their existing Windows and .NET workloads to the cloud or those targeting .NET Core can find what they need to build great apps for Google Cloud Platform.”

Secondly, back in June 2016 I had the pleasure of announcing that Samsung had joined the technical steering group. They have been focusing on ARM support in .NET Core and today we got to see the first fruits of their labor with the preview release of .NET Core support for the Tizen operating system and their Visual Studio Tools for Tizen.

Tizen is an open source operating system based on Linux, supported by the Linux Foundation and open to all developers. Tizen powers 50 million Samsung devices, including Smart TVs, wearables, smartphones, and home appliances. Today, Samsung is releasing the first preview of Visual Studio Tools for Tizen, which supports mobile application development with device emulators and an extension to Visual Studio with full IntelliSense and debugging capabilities. The support for Smart TVs, wearables, and other IoT devices will be added in future releases. Tizen’s .NET support will be officially released and shipping on Samsung devices, including Smart TVs, in 2017. This will allow .NET developers to build applications to deploy on Tizen across the globe and continues in our mission to bring the productive .NET development platform to everyone.

“Samsung is excited to be a part of the .NET community. .NET has a huge developer base and future potential,” said Samsung’s Executive Vice President and Deputy Head of Software R&D Center Seung-hwan Cho. “Through thoughtful and progressive collaboration, Samsung is expecting to create unique development experiences for both Tizen and C# developers, enriching the Tizen ecosystem.”

Their work builds on top of several .NET Foundation projects including .NET Core, Mono and Xamarin Forms.

  • Tizen’s .NET support is a part of the .NET Core open source project: https://github.com/dotnet/core
  • Tizen’s Xamarin.Forms support is a part of the Xamarin.Forms open source project: https://github.com/xamarin/Xamarin.Forms
  • Tizen’s device APIs are a part of the Tizen open source project: https://source.tizen.org
  • Download Visual Studio Tools for Tizen here: http://www.aka.ms/tizen

Other .NET Foundation projects have also been very busy. Today, .NET Core, EF Core 1.1 and ASP.NET Core 1.1 were also released including several new features and APIs along with support for more operating system distributions (now up to 12). For more information see the .NET Team Blog.

It’s also very exciting to see that ASP.NET Core MVC is now a top-performing web framework on TechEmpower. Today TechEmpower released their Round 13 results which show ASP.NET Core MVC as the fastest mainstream fullstack web framework in the Plantext test.

The Technical Steering Group was formed in late March 2016 and we are already seeing huge progress. Red Hat have released the first release of .NET Core for RHEL, JetBrains have been producing build after build of Project Rider as .NET Core’s tooling approaches it’s V1.0, Unity have announced support for C#6 and now the Tizen news from Samsung along with Google coming on board and supporting ASP.NET as a first class citizen in Google Cloud Platform. It’s fantastic to witness the innovation that is happening on top of the .NET platform right now, all of it only possible because of .NET being open source and welcoming to all.

It’s certainly an incredibly exciting time to be a .NET developer!

-- Martin

Today, I have the pleasure of welcoming BenchmarkDotNet into the .NET Foundation. It's a powerful cross-platform library which helps you to measure the performance of your source code with the high level of precision even when you are working with very rapid operations. It's already used by a number of great .NET projects, with a growing community of contributors.

In this guest post, Andrey Akinshin from the BenchmarkDotNet project explains more and how to get started.

-- Martin

BenchmarkDotNet

Benchmarking is really hard (especially microbenchmarking), you can easily make a mistake during performance measurements. BenchmarkDotNet will protect you from the common pitfalls (even for experienced developers) because it does all the dirty work for you: it generates an isolated project per each benchmark method, does several launches of this project, run multiple iterations of the method (include warm-up), and so on. Usually, you even shouldn't care about a number of iterations because BenchmarkDotNet chooses it automatically to achieve the requested level of precision.

It's really easy to design a performance experiment with BenchmarkDotNet. Just mark your method with the [Benchmark] attribute and the benchmark is ready. Want to run your code on CoreCLR, Mono, and the Full .NET Framework? No problem: a few more attributes and the corresponded projects will be generated; the results will be presented at the same summary table. In fact, you can compare any environment that you want: you can check performance difference between processor architectures (x86/x64), JIT versions (LegacyJIT/RyuJIT), different sets of GC flags (like Server/Workstation), and so on. You can also introduce one or several parameters and check the performance on different inputs at once.

BenchmarkDotNet helps you not only run benchmarks but also analyze the results: it generates reports in different formats and renders nice plots. It calculates many statistics, allows you to run statistical tests, and compares results of different benchmark methods. So it doesn't overload you with data, by default BenchmarkDotNet prints only the really important statistical values depending on your results: it allows you to keep summary small and simple for primitive cases but notify you about additional important area for complicated cases (of course you can request any numbers manually via additional attributes).

BenchmarkDotNet doesn't just blindly run your code - it tries to help you to conduct a qualitative performance investigation.

BenchmarkDotNet is already a full-featured benchmark library for different kinds of performance research, and many developers already use it. But it continues to actively develop, a lot of nice features are coming and are on the roadmap. Feedback is welcome: if you have an idea how to improve the library (or if you wish to implement it), the team is waiting for you on GitHub!

Andrey Akinshin, Project Lead on BenchmarkDotNet

Want to share astronomy by making a tour, interactive experience, or video using WorldWide Telescope? You should — and then you should enter it in the first American Astronomical Society’s first WorldWide Telescope Competition!

People viewing a planetarium tour created by WWT

The AAS is hosting its first-ever competition for products created using WorldWide Telescope. Since WWT became part of the .NET Foundation and joined the AAS family, we’ve seen it used for some great science communication by authors submitting video abstracts for their research articles, as well as some spectacular examples of interactive web-based experiences and awesome tours introducing people to astronomy concepts. The project would love to see what else people can come up with!

Entries are now being accepted in any of three categories: research, education, or planetariumThere are prizes for the top three entries in each of the three categories, including Amazon gift cards, telescopes, and iPad minis, and there’s an additional prize for the top 2017 solar eclipse entry. There’s also an overall Grand Prize of an advanced goto mount and refractor telescope generously provided by Explore Scientific. In addition, there will be a special prize for the top WWT tour on information or safety on the upcoming 2017 solar eclipse.

The deadline for entry is 5:00 pm on Friday, 16 December 2016. Winners will be notified by 31 December and recognized at the 229th AAS meeting (3–7 January 2017).

Any final questions? Check out the official announcement for the 2016 AAS WorldWide Telescope Competition here. Happy creating!

Today, I have the pleasure of welcoming the Polly project into the .NET Foundation. For those of you that are not familiar, Polly is a fluent, thread-safe .NET resilience and transient-fault handling library, with full sync and async support. It's great for use when building fault-tolerant systems and microservices and the library is getting picked up by more and more .NET projects so thrilled that they decided to become part of the .NET Foundation family.  Today also marks their V5.0 release into Alpha which brings a number of great features such as Bulkhead Isolation combined with Timeout and Fallback Policies as well as a PolicyWrap mechanism to allow you to combine strategies and have some defence in depth. These join their existing, well tested, retry and CircuitBreaker pattern implementations. The full release notes are available on GitHub. As every developer knows, once you start building code that talks to external systems you need to build resillience into those connections. Rather than hand-coding each instance and making similar mistakes, Polly allows you to build using a number of well defined primatives to help make sure you code behaves correctly and can fallback gracefully.  It's a very solid library with no additional dependencies so makes it easy to add into your application.

Joel, Dylan and the whole Polly team have worked incredibly hard on getting the V5.0 release into Alpha, however this is only the beginning. If Polly sounds like the sort of library you've been looking for then please give it a go, send them feedback and contribute improvements where you can. 

Rachel ReeseWith the acquisition of Xamarin by Microsoft and .NET Foundation Director Miguel de Icaza getting his blue badge, we wanted to make some changes to the .NET Foundation Board of Directors so that t
he entire board was not made up of Microsoft employees. Happily, Miguel has agreed to stay on the board as one of the two Microsoft representatives alongside Scott Hunter at Microsoft who now has responsibility for the ASP.NET team and the .NET compiler & framework teams. Joining the .NET Foundation Board of Directors is Rachel Reese. Rachel is a long-time member of the .NET community and a board member of the F# foundation where she has been driving a number of great community activities.

For this post, Martin Woodward interviewed Rachel and chatt ed about her experiences to date and what she hopes the .NET Foundation to do in the future.

Tell us a little bit about yourself. What's your background?

As soon as I learned to solve for x, I started to be interested in Math. I decided early on that I wanted to study Math at university. Once there, I started adding in Physics courses as well and, since I was studying at a research university, I began to intern on the Super Kamiokande project. For my first summer on the project, they handed me “A Book on C” and said that I wasn’t going to be useful to the project until I understood how to code. I took a couple programming classes while I was in school, and started playing around with web sites. Once I’d graduated, I was torn on continuing to grad school vs. working for a few years, and pursued both simultaneously. I found a job before I finished my applications, with a friend’s company who was using Classic ASP with VBScript… and the rest is history.

Is that when you first became interested in programming?

While I had used programming as a means to an end while in school, I think I first became really interested in programming when I discovered the community, which happened at two major points. First, a supervisor invited me to a user group meeting around the release of .NET 1.0. I became a regular there, and then discovered conferences, forums, several email lists, eventually twitter, hackspaces, co-working, and many other places and events where other devs hung out. It opened a whole new way to learn for me. There’s nothing more fun than watching someone demo something cool in which they wholeheartedly believe. Several years later, when I was looking to learn more about F#, I decided to start a functional user group in Vermont, and accidentally happened into an incredible group of very passionate and very diverse programmers. A similar thing happened: my worldview expanded five- or maybe ten-fold over those months, this time with knowledge of functional programming, rather than communities in general.

How do you see the F# Foundation and the .NET Foundation working together?

First, I think there needs to be a lot more communication between the two groups – I know that the F# community in general, and the F# Foundation, specifically, is an especially passionate one with lots of wonderful ideas and I’m looking forward to sharing those with a wider .NET community (and vice versa!). Once there’s an exchange of ideas, we can potentially start to implement joint programs and initiatives, and more. I’m sure there will be some pretty incredible things that happen soon! 

What initiatives are you working on (or passionate about) within the .NET Foundation?

Education, training, and ideally inspiring new devs! I feel like the .NET community overall has lost some of the momentum that it used to have when I first joined in the early 2000s. That momentum seems to have been coming back since the open sourcing of .NET and one of my main goals is to work with the community to drive that onwards. I know that the F# Foundation has been working on several initiatives that I’d love to try to expand and rework for a larger .NET crowd, and I think the release of .NET Core is the perfect time to inspire a new generation of .NET devs!

What does the future of .NET look like in your dreams?

Open-source, cross-platform, multi-paradigm, with a friendly, diverse, engaged, and passionate community. :D

Thanks Rachel – and welcome to the .NET Foundation!