Diving Into Microsoft Open Source

July 2015

Follow along at:

http://itsnull.com/presentations/diving-into-ms-opensource/

Created by Kip Streithorst / @itsnull

What code has Microsoft open sourced? (This is probably already out-dated)

  • MVC4, MVC5, Beta MVC6, Web API v1, Web API v2, Beta Web API v3 - Apache2 License
  • EF6, Beta EF 7 - Apache2 License
  • C# and VB.net compiler (e.g. Roslyn) - Apache2 License
  • Beta .NET Core - (runs on Windows, Mac, Linux) - includes JIT and GC code - MIT license
  • Azure SDK, Open XML SDK, WCF Client Libraries, etc...

Ok, now what?

  • Learn from it, remember the behavior is in the code, not the documentation, plus reading code is good for you
  • Contribute to it - bug reports, suggestions or code fixes
  • Or maybe just debug with it, debugging is easier with source
  • Licensed under OSI compliant licenses
  • Projects managed by DOT Net Foundation - separate 501(c)(6) entity

Where can I find it?

How can I read the source code

  • Browse it on-line at github (for older versions browse on codeplex)
  • Or copy locally using Git. Install GitHub for Windows
    • Click the Clone In Desktop button on the github website
    • Or install GitHub extension for VS 2015, then click the Open in VS button on the github website
    • For codeplex, browse to source and click the clone button to get the URL to use with 'git clone' command

How do I debug with it?

  • First download it, then build it, then update your project to use your built version of the library. No, really.....
  • OR
  • Point your Visual Studio install at symbol servers
  • The first time you run your app after enabling this, it will be VERY VERY VERY SLOW (20 min+) to start, it has to download lots of debug symbols (.pdbs) and source code
  • Proceed with caution, as VS will warn you, only add trusted servers to the list of symbol servers

Debug into .NET Framework

  • .NET 4.5.0, 4.5.1, 4.6 can be debugged using http://referencesource.microsoft.com/. You can also download all source for these versions.
  • This code is not strictly open-source, it is NOT on github, it is under a different MS-RSL license
  • Follow instructions at http://referencesource.microsoft.com/setup.html for enabling stepping into .NET 4.5.X, 4.6 code
  • These instructions don't help for the Beta .NET Core, but that is still beta, so it's still a moving target

Debug into MVC, Web API, EF

The END

Kip Streithorst / @itsnull