Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microsoft & open source a 'brave new world' - CORESTART 2.0

62,369 views

Published on

It's a 'brave new world' or 'hell has frozen over' (depending on your point-of-view). Microsoft is the top contributor on GitHub, they have opened-sourced their entire .NET platform and gone cross-platform!

In this talk we will look at what the new 'Open-Source' Microsoft actually looks like, what they've done, how they're doing it and what it all means. From new features to compiler design meetings, from TechEmpower benchmarks to increased community contributions, we will examine it all!

Published in: Software
  • Be the first to comment

Microsoft & open source a 'brave new world' - CORESTART 2.0

  1. 1. Microsoft and Open Source a ‘brave new world’ www.mattwarren.org @matthewwarren Microsoft MVP 2017 - ??
  2. 2. Microsoft and Open Source a ‘brave new world’ What happened when Microsoft Open-Sourced EVERYTHING* * Well, not quite everything, but pretty much all of the .NET Framework
  3. 3. Before
  4. 4. Microsoft takes .NET Open Source November 12th 2014
  5. 5. Wait, did that happen already? • Roslyn • April 2014 (Apache 2.0) • Entity Framework • July 2012 (Apache 2.0) • ASP.NET MVC • March 2012 (Apache 2.0) • ASP.NET MVC • April 2009 (MS-PL) • Managed Extensibility Framework (MEF) • August 2008 (MS-PL) • Shared Source CLI (SSCLI), a.k.a ‘Rotor’ • March 2002 (MS SCLI)
  6. 6. Licensing
  7. 7. Licensing
  8. 8. https://blogs.msdn.microsoft.com/bethmassi/2015/02/25/understanding-net-2015/
  9. 9. CoreCLR & CoreFX CoreCLR – Runtime or Virtual Machine • Garbage collector • JIT compiler • Base .NET data types • Many low-level classes CoreFX - Core Libraries • System.Collections • System.IO • System.Xml
  10. 10. CoreFX Labs Future work Span<T> (a.k.a Slices) http://adamsitnik.com/Span/ High-performance text processing
  11. 11. Cmd-Line Tooling (CLI) λ dotnet new Created new C# project in C:usersmattdotnet. λ dotnet restore log : Restoring packages for C:usersmattdotnetproject.json... log : Writing lock file to disk. Path: C:usersmattdotnetproject.lock.json log : Restore completed in 23512ms. λ dotnet build Compiling dotnet for .NETCoreApp,Version=v1.1 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.9025293 λ dotnet run Hello World!
  12. 12. Roslyn (C# Compiler) C# compiler, written in C# Can be consumed by 3rd parties • Syntax highlighting • Analysers • Tooling Language Design Discussions
  13. 13. TypeScript
  14. 14. VS Code
  15. 15. Kestrel Web Server
  16. 16. During
  17. 17. The First PR
  18. 18. Comedy PRs
  19. 19. Good • Organisation and Process • Never let PR’s rot • Provide infrastructure • Allow the community ‘in’ • ‘Getting started’ guides
  20. 20. Bad • Some decisions made behind ‘closed doors’ (e.g. ‘project.json’) • Microsoft still the ‘gate-keepers’ • Issues slipping through the gaps • Naming is hard!! • ‘ASP.NET 5’ -> ‘ASP.NET Core 1.0’ • dnx -> dotnet
  21. 21. Ugly
  22. 22. Ugly
  23. 23. After
  24. 24. Do .NET developers care?
  25. 25. Do .NET developers care? Did going open-source make any difference?
  26. 26. The organization with the largest number of contributors to open- source projects over the past year on GitHub is, surprisingly, Microsoft, GitHub announced today. https://octoverse.github.com/
  27. 27. Are Microsoft telling the truth?
  28. 28. Are Microsoft telling the truth? There’s only one way to find out!!
  29. 29. async Task<SearchIssuesResult> RunQuery(GitHubClientInfo clientInfo, string query, int pageSize, int pageNumber) { var issue = new SearchIssuesRequest(query); issue.Repos.Add(clientInfo.Organisation, clientInfo.Repository); issue.SortField = IssueSearchSort.Created; issue.Order = SortDirection.Ascending; issue.PerPage = pageSize; issue.Page = pageNumber; var result = await clientInfo.Client.Search.SearchIssues(issue); return result; } C#
  30. 30. David Fowler
  31. 31. Open Source .NET – 2 years later http://mattwarren.org/2016/11/23/open-source-net-2-years-later/
  32. 32. Do .NET developers care? • Sustained contributions • Not just an initial bump • Opening issues and creating pull-requests • Bug fixes, entire features, future ideas • Across the entire stack • Runtime, Class libraries, Compiler, JIT and even GC
  33. 33. What Now?
  34. 34. How do I contribute? • Look for ‘up-for-grabs’ issues •Easy GitHub Search • Suggest a new feature •Copying from Java is allowed! •‘Compact Strings’ – CoreCLR Issues #7083 • Prototype something • Follow a ‘Getting Started’ guide
  35. 35. Domino Chain Reaction - YouTube
  36. 36. First CoreFX PR by Ben Adams
  37. 37. First CoreCLR PR by Ben Adams
  38. 38. Contributions by some bloke called ‘Matt Warren’
  39. 39. Will I get told to RTM?
  40. 40. Questions? www.mattwarren.org @matthewwarren

×