The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

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:

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.comhttp://sourceroslyn.iohttps://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, file
Add 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.