UPDATE: See the Peachpie team's post on joining the .NET Foundation here.

Today, it’s my privilege to welcome Peachpie Compiler to the .NET Foundation.

Peachpie is an open source PHP Compiler to .NET. This innovative compiler allows you to run existing PHP applications with the performance, speed, security and interoperability of .NET.

The Peachpie site includes a lot of exciting examples, including a demonstration running WordPress on .NET with really impressive performance results. We’re excited to have them join the .NET Foundation, and look forward to supporting them!

I’m happy to announce today that Windows Template Studio has joined the .NET Foundation, and congratulate them on their version 1.2 release!

Windows Template Studio is a Visual Studio 2017 Extension that accelerates the creation of new Universal Windows Platform (UWP) apps using a wizard-based experience. The resulting UWP project is well-formed, readable code that incorporates the latest Windows 10 features while implementing proven patterns and best practices. The generated code includes helpful links to Docs, Stack Overflow and blogs to provide useful insights.

It’s also nice that Windows Template Studio templates include some other .NET Foundation projects including MVVM Light and UWP Community Toolkit!

For a nice introduction to Windows Template Studio, check out this 20 minute interview with the team at Build 2017.

Windows Template Studio is a great addition to the .NET Foundation! Get the latest update and get involved in the project here.

.NET Summer Hackfest is a .NET Foundation led effort to run a bunch of two week hack events for .NET open source projects. You can read more about it in the previous post: Announcing .NET Summer Hackfest 2017.

There are three sessions:

  • Session 1: July 24 – August 4 (Submission deadline July 17)
  • Session 2: August 7 – August 18 (Submission deadline July 24)
  • Session 3: August 21 – September 1 (Submission deadline August 7)

While we’ve had a ton of good project submissions! As expected, most of them needed some time to prepare, so we decided to schedule most of them for Session 2 and 3. And you can still submit your projects! Read the guidance in the announcement post to see if your project is a good fit, then submit them here!

However, the brave dev team at Keen IO offered to be our .NET Summer Hackfest Alpha Test Group and lead the charge with Session 1! Part of the goal of this project will be spelling out guidance / checklists / etc. for the projects that will follow in Session 2 and 3.

Session 1 Project: Keen IO .NET SDK port to .NET Standard

Keen IO is a really cool event data platform that’s really developer friendly. At the free level, they give you $20 credit per month, which works out to 2 million streamed events. They also give discounts to OSS projects, and they’ve got open source API libraries for a lot of frameworks. They’re going to host a two week hackfest to port the Keen .NET SDK to .NET Standard – this is a great opportunity to get some real world experience porting a production library to .NET Standard.

I’m excited about this for a few reasons. First, Justin (@elof) and the dev team at Keen IO are great hosts for this project – as an example, they helped organize the recent Open Source Show & Tell. Second, this hopefully makes it clear that SDKs that integrate with commercial products are welcome for the .NET Summer Hackfest! It’s great to work on “production” code, and the .NET open source community is definitely stronger when we’ve got a healthy mix of commercially supported projects out there.

We’ll have a kickoff post on July 24 with information on how you can get involved. You can also watch the repo (https://github.com/keenlabs/keen-sdk-net) for information on contributing, and we’ll be getting issues posted on up-for-grabs.net.

Session 2 Projects

Note: I’m still discussing with some of these projects and may move between Session 2 and 3 to allow for in-person events. We’ve also got a few other likely projects that I don’t have permission to announce yet.

Brighter: Command Processor & Dispatcher implementation that can be used as a lightweight library in other projects. There’s a range of middleware they’d like to support (e.g. Redis, Kafka, Event Store) as well as additional data stores (Postgres, Oracle). Plus, this is a great chance to work with Ian Cooper, that wonderful chap who recently gave this Creating a .NET Renaissance presentation.

DotVVM: DotVVM is an open source MVVM framework for web applications. We’re talking about possibly putting an in-person event together in Prague for this.

Session 3 Projects

Humanitarian Toolbox: Humanitarian Toolbox builds open source projects for humanitarian (e.g. disaster relief) organizations. They’ve got a great history of hosting .NET hack events and know how to build sustainable open source projects, so I’m thrilled to have them aboard!

eShopOnContainers: This is a sample .NET Core reference application, powered by Microsoft, based on a simplified microservices architecture and Docker containers. This is a great chance to work with .NET Core on containers! Session goals include updating to .NET Core 2.0 and customizing to deploy to multiple cloud environments (e.g. Azure Service Fabric, Kubernetes, etc.).

ImageSharp: ImageSharp is a fully featured, fully managed, cross-platform, 2D graphics API designed to allow the processing of images without the use of System.Drawing.

Akka.NET: Akka.NET is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono.

MvvmCross: MvvmCross is an MVVM framework for cross-platform solutions, including Xamarin.iOS, Xamarin.Android, Windows and Mac. We’ll be converting it to .NET Standard and looking at documentation and up-for-grabs issues.

How Can I Get Involved?

Great question!

If you’re a project leader that would like to get your project listed, submit it here.

If you’re a developer who wants to get in on Session 1, watch for the kickoff post on July 24 here and for information on the Keen SDK for .NET repo.

If you’re a developer who is interested in one of the Session 2 or 3 projects, watch this blog and follow @dotnetfdn on Twitter.

If you’re interested in organizing an event (e.g. a user group run hack day or meeting, maybe your dev team at work wants to dedicate a Friday afternoon, etc.), e-mail me at jon@dotnetfoundation.org and let me know how I can help. I’d be happy to help publicize your events, sponsor food, etc. Let’s talk!

Update: About Smaller Projects

I’ve had a few really interesting but pretty small projects (as in, one or two contributors) apply. As of now, I’m not sure how best to handle this. On the one hand, as someone who’s run / contributed to some small projects, I’d love to support them! On the other, I want to make sure we have a successful model in place. We’re counting on the project teams themselves to “host” their hackfests, including getting some new-to-open-source developers up to speed. I’m not sure a really small project could support that well.

Thinking long term, I’d love to do this bigger next summer, so I want to make sure this goes well so we have something to build on.

I’m currently thinking we might want to host an Open Track during the third session. The idea would be to have several smaller projects create some issues on up-for-grabs.net; we’d help get them some attention with the clear expectation that you’re working with a small team and shouldn’t expect a lot of hand holding if you’re new to open source. Please comment or e-mail me with any thoughts, I’m all ears.

Hey! Let's have some summer* fun!

UPDATE: See this post for our project announcements.

Here's the idea: .NET Summer Hackfest is a six week community open source community run hackfest. We'll form up into loose teams to contribute to an open source project for a two week session. After that, a new project starts up, but you're of course free (and, of course, encouraged) to keep contributing to projects after the two week session is up.

Here are some goals:

  • Make some substantial contributions to existing .NET open source projects during the session.
  • Spin up some new projects / libraries.
  • Great successes! And a few explosions are expected, too, because this is an experiment!
  • Get some new folks involved in .NET open source, hopefully staying on after the session ends. Maybe you're new to .NET open source, or want to try a new technology or stack? This is a low risk way to get involved, working with folks who can mentor you.
  • Have some fun stuff to show off at dotnetConf in September!

Depending on interest, both from projects and contributors, we can have a few projects running at once. Here's an example, with some sample / made up projects to illustrate:

Session Start Session End Track 1 Track 2
Jul 24 Aug 4 Project 1 Project 2
Aug 7 Aug 18 Project 3
Aug 21 Sep 1 Project 4 Project 5

Ideally, some projects will be more beginner / new to .NET or open source friendly, and some will be more advanced. We'd love to mix it up a bit, so beginners are being mentored by experienced .NET open source developers. We can add additional tracks as needed, depending on response. .NET open source old timers will probably recognize some inspiration from both Google Summer of Code and Code52.

How to get involved

Project Submissions and Project Leaders

For this to work, each project will need a dedicated .NET Summer Project Leader. If this is an established open source project, that's hopefully a core team member. If it's a new project, we need someone who will define the roadmap, review pull requests, and pull the community together.

You can submit a new project here: https://aka.ms/dotnetsummer-nomination

We'll lock down submissions for the first session on July 17th (since it's coming up fast), and two weeks before the session start for the next two. So:

  • Session 1 deadline: July 17
  • Session 2 deadline: July 24
  • Session 3 deadline: August 7

That'll help us get the word out, plan events, etc. Exceptions can be made if needed, but please shoot for those deadlines. I'll work with the .NET Foundation Advisory Council to make selections and we'll announce two days after the close date.

Criteria for a good project submission:

  • Defined goal that can be achieved in a two week session
  • Project leadership team that can define goals, contribution guidelines, create up-for-grabs issues, run virtual or in person events
  • Established open source project or community

Some ideas / areas I'd love to see represented:

  • Porting some established .NET open source libraries to .NET Core 2 or .NET Standard
  • Adding features to established libraries, e.g. localization, modernization, documentation
  • Creating new libraries to fill some gaps or target newly available platforms
  • Representation from multiple .NET platforms: Xamarin, ASP.NET Core, UWP, Unity, .NET Framework, F#, etc.

Contributors

Watch for announcements on projects and get involved. We'll use the social media hashtag #dotnetsummer. You can contribute to more than one project.

Events / User Groups / Teams

The .NET Foundation will be sponsoring in-person events. Want to throw a Saturday hack event for your local user group? Maybe plan out a bigger in-person event with a project leader at a Microsoft office or at a conference? Got another idea we can help with? Let me know: jon@dotnetfoundation.org or @jongalloway.

This my hackfest project. I'm very excited about it and I’ve been thinking about it for a while, but I’ll be figuring out how best to run it as we go. I'll need your feedback throughout to see if my project was successful and hopefully improve on it next summer.

*I realized that it’s not summer all around the globe at the same time. If it's not summer where you live, replace with $"Let's have some {season} fun!"