Microsoft and Open Source
a ‘brave new world’
www.mattwarren.org
@matthewwarren
Microsoft MVP 2017 - ??
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
Before
Microsoft takes .NET
Open Source
November 12th 2014
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)
Licensing
Licensing
https://blogs.msdn.microsoft.com/bethmassi/2015/02/25/understanding-net-2015/
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
CoreFX Labs
Future work
Span<T> (a.k.a Slices) http://adamsitnik.com/Span/
High-performance text processing
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!
Roslyn (C# Compiler)
C# compiler, written in C#
Can be consumed by 3rd parties
• Syntax highlighting
• Analysers
• Tooling
Language Design Discussions
TypeScript
VS Code
Kestrel Web Server
During
The First PR
Comedy PRs
Good
• Organisation and Process
• Never let PR’s rot
• Provide infrastructure
• Allow the community ‘in’
• ‘Getting started’ guides
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
Ugly
Ugly
After
Do .NET developers care?
Do .NET developers care?
Did going open-source make any difference?
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/
Are Microsoft telling the truth?
Are Microsoft telling the truth?
There’s only one way to find out!!
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#
David Fowler
Open Source .NET – 2 years later
http://mattwarren.org/2016/11/23/open-source-net-2-years-later/
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
What Now?
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
Domino Chain Reaction - YouTube
First CoreFX PR
by Ben Adams
First CoreCLR
PR by
Ben Adams
Contributions
by some bloke
called
‘Matt Warren’
Will I get told to RTM?
Questions?
www.mattwarren.org
@matthewwarren

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

  • 1.
    Microsoft and OpenSource a ‘brave new world’ www.mattwarren.org @matthewwarren Microsoft MVP 2017 - ??
  • 2.
    Microsoft and OpenSource a ‘brave new world’ What happened when Microsoft Open-Sourced EVERYTHING* * Well, not quite everything, but pretty much all of the .NET Framework
  • 3.
  • 5.
    Microsoft takes .NET OpenSource November 12th 2014
  • 6.
    Wait, did thathappen 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)
  • 9.
  • 10.
  • 11.
  • 12.
    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
  • 13.
    CoreFX Labs Future work Span<T>(a.k.a Slices) http://adamsitnik.com/Span/ High-performance text processing
  • 14.
    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!
  • 15.
    Roslyn (C# Compiler) C#compiler, written in C# Can be consumed by 3rd parties • Syntax highlighting • Analysers • Tooling Language Design Discussions
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
    Good • Organisation andProcess • Never let PR’s rot • Provide infrastructure • Allow the community ‘in’ • ‘Getting started’ guides
  • 23.
    Bad • Some decisionsmade 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
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    Do .NET developerscare? Did going open-source make any difference?
  • 29.
    The organization withthe largest number of contributors to open- source projects over the past year on GitHub is, surprisingly, Microsoft, GitHub announced today. https://octoverse.github.com/
  • 31.
  • 32.
    Are Microsoft tellingthe truth? There’s only one way to find out!!
  • 33.
    async Task<SearchIssuesResult> RunQuery(GitHubClientInfoclientInfo, 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#
  • 34.
  • 35.
    Open Source .NET– 2 years later http://mattwarren.org/2016/11/23/open-source-net-2-years-later/
  • 36.
    Do .NET developerscare? • 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
  • 37.
  • 38.
    How do Icontribute? • 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
  • 39.
  • 41.
  • 42.
  • 43.
  • 44.
    Will I gettold to RTM?
  • 45.