Microsoft Open Technologies, Inc.’s Hub engineering program continues to be a great place for community contributors to work and collaborate on key MS OpenTech projects. We’re thrilled to see so many non-Microsoft contributors. Thank you!
In this post we’re showcasing (and thanking!) some of the open source developers who independently contribute code to improve key MS OpenTech open source projects: ASP.NET MVC, Web API, and Web Pages, SignalR and the Entity Framework. Microsoft Corp. regularly takes great code contributions from these projects and builds them into the products that our customers know and love: they’re shipped with Visual Studio, in the Visual Studio Gallery and even sometimes in the core product. Working with community authors has earned us some wonderful community relationships in the process
Entity Framework continues to benefit from input from a strong open source community since MS Open Tech announced it was open source about a year ago.
Here’s a great intro to EF and EF concepts for newbies.
Scott Guthrie did a great job of describing the latest and greatest features in this blog post. Back in May we highlighted a few developers and their open source contributions, and today we’d like to introduce you to some of them and dive a little deeper into their contributions.
In May we mentioned community contributions by Erik Ejlskov Jensen (ErikEJ), specifically ESqlCeFunctions, that provide a SQL Compact equivalent to SqlFunctions. I caught up with Erik on a quick call from his home in Denmark to share some information and answer a few questions about his contributions and experience so far. Erik has been working with Entity Framework since before it was a CodePlex project, originally working with ADO.
Erik is coordinator for several projects on CodePlex and follows dozens of projects as well. One of his most notable contributions is the open source SQL Server Compact Toolbox, available as a Visual Studio add-in or a standalone app. Erik describes the toolbox in great detail in this Channel 9 video.
Erik uses many other CodePlex projects in his own projects, so giving back to the community by providing tools to help others seems like a natural response to all the support and assistance he’s received from community members and tools in his development career.
On his motivations for sharing enhancements for the Entity Framework, Erik says “The Entity Framework team has been very open towards contributors, you really feel that your contributions are appreciated and they take your contributions seriously”.
Unai Zorrilla Castro (UnaiZorrilla) also has been an independent open source contributor to EF since before it was EF – he was the author of several popular ADO books. He’s always been interested in the data access layer. Unai had the chance to meet with Daniel Simmons and Diego Vega on the EF team, who helped him understand the full capabilities of EF.
Unai had several ideas for features that he thought could be interesting for the product. He’s contributed more than 10 open source additions to the product so far, some minor like changes to the code generated by migrations, and some more complex, like the creation of a pluralization service as a public and configurable service from DbConfiguration. He’s also contributed some interesting methods such as AddFromAssembly in ConfigurationRegistrar that enables entity mapping loading without having to specify entities in ModelBuilder, and AddRange and RemoveRange in DbSet that provides an optimized method to include or remove a set of entities.
Unai believes that contributing has been more beneficial for himself than for the community, team or the product. Being able to work with the core EF team members is one of the best ways he has been able to learn and improve as a professional developer. Contributors must follow the same process as internal Microsoft developers, which provide a great source of important feedback.
Unai also independently contributes to other Microsoft open source projects for the Microsoft team in Spain. Currently he’s involved in EF6.Contrib, a repository for draft contributions to EF 6 which for various reasons cannot be included in the core product code.
As far as tips for other community members who want to contribute to the community, Unai says “don’t be afraid of having your code reviewed, feedback is always positive no matter what. We should dare to do these kind of things. Maybe they will work out or not, but if we don’t try we are sure to fail.”
Our ASP.NET and Web API for Visual Studio are also blockbuster Hub projects, with unprecedented interest and downloads of ASP.NET MVC, Web API, and Web Pages source code. Visit http://www.asp.net to find official installers, documentation, tutorials, samples, and videos.
The recently introduced CORS runtime configuration inside the ASP.NET Web API could not have been possible without the help of CORS developer Brock Allen (brockallen) . Brock video-conferenced in remotely to help show CORS Support for the ASP.NET Web API in this great video on Channel 9, also featuring Dan Roth and Yao Huang Lin of Microsoft’s ASP.NET Web API team.
Tim McCall (mccalltd – CodePlex, NuGet) was integral in building the original open source project that eventually became the new Attribute Routing feature in ASP Web API 2, which gives you more control over the URIs in your web API. For more information, have a look at the tutorial: Create a REST API with Attribute Routing in Web API 2.
Tim got involved as a contributor earlier this year when he saw Dan Roth talking about his project, MVC Attribute Routing on Microsoft’s Channel 9, and invited the author to get in touch with him to talk about the project “if he sees this video.” Tim was inspired by the Ruby-based Sinatra Framework, and wanted to make something as easy to use in ASP.NET. He created a NuGet package that really helped the solution take off and generated a lot of positive responses on Twitter as well. The NuGet and Twitter attention also helped his solution climb to the top of results in popular search results, generating even more attention.
His advice to developers who want to contribute: “If you see code or features that you don’t like, and you have a way to make it better, make the change and contribute the change so others can see it. Get some open source code out there even if it’s not perfect, but works, and appreciate and respond to community members who take the time to provide feedback. Also, make sure to package your projects using a good open source package manager like NuGet, npm, or RubyGems to get extra exposure for your projects.”
We again thank all the contributors who have participated so far in improving MS Open Tech Hub projects via community contributions. If you have a contribution that we should be highlighting, please contact us by leaving a comment below, as you can see from our developer profiles in this post we are glad to help promote your contributions in any way we can!
And if you’re new to the MS Open Tech Hub projects and want to get started, get the latest instructions on installing the Visual Studio 2013 Preview, release notes, documentation and tutorials here. Also, source code contributions to ASP.NET MVC, Web API, and Web Pages source code can be made by starting here, and Entity Framework contributors can get started here.