Online .NET source code browsers for both .NET Framework and .NET Core
Posted by jpluimers on 2025/05/22
I used these .NET Source Browsers quite few times over the last decade, first for the .NET Framework and later for .NET Core (now called .NET, sometimes .NET Runtime) as well, but forgot to blog about them, so now that I discovered there is one for the Roslyn Compiler Platform as well, let’s list them all:
- [Wayback/Archive] .NET Source Browser
- [Wayback/Archive] .NET 4.8 Framework Reference Source
- [Wayback/Archive] Roslyn Compiler Platform Source Browser
- [Wayback/Archive] sourcebrowser Source Browser
It was introduced as [Wayback/Archive] referencesource-beta.microsoft.com by [Wayback/Archive] A new look for .NET Reference Source – .NET Blog which explains how to use it for browsing (on-line and off-line), Visual Studio integration, debugging, and more. In about a month however it got out of beta and became the primary as it functioned so well (you can verify this while browsing through the 2014 Wayback links).
All are powered by [Wayback/Archive] KirillOsenkov/SourceBrowser:
Source browser website generator that powers https://referencesource.microsoft.com, http://sourceroslyn.io, https://source.dot.net, and others.
…
At indexing time, C# and VB source code is analyzed using Roslyn and a lot of static hyperlinked HTML files are generated into the output directory. There is no database. The website is mostly static HTML where all the links, source code coloring etc. are precalculated at indexing time. All the hyperlinks are hardwired to be simple links bypassing the server.
The only component that runs on the webserver is a service that given a search query does the lookup and returns a list of matching types and members, which are hyperlinks into the static HTML. The webservice keeps a list of all declared types and members in memory, this list is also precalculated at indexing time. All services, such as Find All References, Project Explorer, etc. are all pre-rendered.
…
It means they also function the same way, which means you can use this table for search tips (copied from source.dot.net)
Search for: Examples Full or partial type or member name.The string needs to be a prefix, “Builder” won’t find “StringBuilder”, but will find “BuilderType”.Use quotes to find exact string (turns off prefix search).Use “assembly” prefix to search for assembly names. Use a keyword to filter by member type:assembly, type, class, struct, interface, enum, delegate, method, property, event, field, fileAdd words separated by space to filter results to only those that contain all of the words. Can also filter by assembly name. Find .cs or .vb files. Find GUIDs mentioned in string literals.
–jeroen






Leave a comment