Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
Visual Studio

Visual Studio: Stop Debugger from Stepping Into .NET Framework Source Code

- 03.02.26 - ErcanOPAK

Debugging your code but accidentally stepping into framework methods like String.Format() or Linq internals? This wastes precious debugging time.

The Annoying Problem:

var users = GetUsers();
var result = users.Where(u => u.IsActive).ToList();  // Press F11 here

// Debugger jumps into:
// → Enumerable.cs (framework code)
// → Buffer.cs
// → List.cs
// You just wanted to debug YOUR code, not .NET internals!

The Quick Fix:

Tools → Options → Debugging → General

✅ Enable: “Enable Just My Code”

Now F11 skips framework code and only steps through YOUR code!

Why This Matters:
Without “Just My Code”, debugging a simple LINQ query can take you through 50+ framework files. With it enabled, you stay in your codebase. The performance difference is massive:

// Without Just My Code:
Step through 10 lines of your code = 120+ F11 presses (framework noise)
Time wasted: 5-10 minutes per debug session

// With Just My Code:
Step through 10 lines of your code = 10 F11 presses
Time saved: 90% of debugging time

Advanced: Exclude Specific Assemblies

Create a .vstconfig file in your solution:

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <JustMyCode>
    <Exclude>
      <ModuleName>Newtonsoft.Json.dll</ModuleName>
      <ModuleName>EntityFramework.dll</ModuleName>
    </Exclude>
  </JustMyCode>
</Configuration>

This skips third-party libraries too!

Bonus Tip – Step Over Properties:

Tools → Options → Debugging → General
✅ Enable: “Step over properties and operators”

// Without this setting:
var name = user.FirstName;  // F11 steps INTO the property getter

// With this setting:
var name = user.FirstName;  // F11 goes to next line (skips property)

When You DO Want Framework Source:

Sometimes you need to debug framework code. Temporarily disable:

Debug → Options → Deselect “Enable Just My Code”

Or right-click in call stack → “Show External Code”

Performance Impact:
Typical debugging session before: 15 minutes stepping through noise
After enabling these settings: 3 minutes focused debugging
= 80% time savings!

Related posts:

VS “Auto-Using Not Working” — The Broken Roslyn Cache Fix

Visual Studio: Automating Frontend Assets with Built-in Task Runner Explorer

Visual Studio: Use Code Cleanup on Save to Auto-Format Code

Post Views: 3

Post navigation

HTML5 Web Workers: Run JavaScript in Background Thread Without Freezing UI
Photoshop: Batch Resize 1000 Images in 30 Seconds Without Actions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

March 2026
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
« Feb    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (938)
  • How to add default value for Entity Framework migrations for DateTime and Bool (836)
  • Get the First and Last Word from a String or Sentence in SQL (828)
  • How to select distinct rows in a datatable in C# (801)
  • How to make theater mode the default for Youtube (736)
  • Add Constraint to SQL Table to ensure email contains @ (575)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (554)
  • Average of all values in a column that are not zero in SQL (523)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (477)
  • Find numbers with more than two decimal places in SQL (441)

Recent Posts

  • C#: Saving Memory with yield return (Lazy Streams)
  • C#: Why Records are Better Than Classes for Data DTOs
  • C#: Creating Strings Without Memory Pressure with String.Create
  • SQL: Protecting Sensitive Data with Dynamic Data Masking
  • SQL: Writing Readable Queries with Common Table Expressions (CTE)
  • .NET Core: Handling Errors Gracefully with Middleware
  • .NET Core: Mastering Service Lifetimes (A Visual Guide)
  • Git: Surgical Stashing – Don’t Save Everything!
  • Git: Writing Commits That Your Future Self Won’t Hate
  • Ajax: Improving Perceived Speed with Skeleton Screens

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (938)
  • How to add default value for Entity Framework migrations for DateTime and Bool (836)
  • Get the First and Last Word from a String or Sentence in SQL (828)
  • How to select distinct rows in a datatable in C# (801)
  • How to make theater mode the default for Youtube (736)

Recent Posts

  • C#: Saving Memory with yield return (Lazy Streams)
  • C#: Why Records are Better Than Classes for Data DTOs
  • C#: Creating Strings Without Memory Pressure with String.Create
  • SQL: Protecting Sensitive Data with Dynamic Data Masking
  • SQL: Writing Readable Queries with Common Table Expressions (CTE)

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com