Skip to content
| Marketplace
Sign in
Visual Studio>Tools>FullStackCodeLens for VS2019
FullStackCodeLens for VS2019

FullStackCodeLens for VS2019

Extended Plugins

|
8 installs
| (0) | Free Trial
Full-stack visibility for ASP.NET + JavaScript/TypeScript/Blazor: correlates controller/Minimal API routes, SignalR hubs, and Razor methods with their JS/TS/Blazor call sites, with inline CodeLens and dedicated Route Explorer, AJAX Call Map, SignalR Map, and Razor Method Map t...
Download

Visual Studio 2019 edition. See who calls your ASP.NET controller actions, SignalR hubs, and Razor methods from JS/TS/Blazor, explore every route, and catch request/DTO drift - inline.

FullStackCodeLens for VS2019 is the Visual Studio 2019 edition of FullStackCodeLens - same features, built for VS2019 16.11. (Using Visual Studio 2022 or 2026? Install the separate FullStackCodeLens listing instead.)

FullStackCodeLens closes the visibility gap between your ASP.NET backend and the JavaScript, TypeScript, and Blazor code that calls it. Instead of manually grepping for "who calls this endpoint?", it shows you inline, right above the method - and gives you dedicated tool windows for the full picture.

🎥 Watch the 2-minute demo: https://youtu.be/9ban7WHqmZc

What it does

  • AJAX Call Map - correlates every ASP.NET controller action (and Minimal API endpoint) with the JS/TS fetch/axios/jQuery $.ajax call sites that target it, in both directions:

    • Above a controller action: FullStackCodeLens: 3 AJAX calls - click through to every caller.
    • Above the JS/TS function that makes the call: FullStackCodeLens -> ProductsController.GetAll -> ProductsController.cs - click the method name to open the C# handler. (Visual Studio 2019's JavaScript/TypeScript editor has no CodeLens support, so this edition draws its own CodeLens-style line there instead.)
    • Above a Minimal API registration: FullStackCodeLens <- checkoutOrder -> ajax-test.js right over app.MapPost("/api/orders/checkout", ...) - click the function name to jump to the JS call.

    It finds calls wherever they sit - directly in a function, inside if blocks, or inside callbacks like $(document).ready(...) and .then(...).

    In practice: open the AJAX Call Map tool window to see every controller action and its callers listed side by side.

    It recognizes every common way JS/TS code calls an endpoint - jQuery $.ajax, jQuery $.get, raw XMLHttpRequest, and axios - and correlates all of them back to the same handler, no matter which style your codebase uses.

  • Route Explorer - a single list of every route in your workspace (attribute-routed, conventional MVC, and Minimal API), with:

    • Conflict detection - two different handlers mapped to the same method + template.
    • Unused route detection - no JS/TS caller found anywhere in the workspace.
    • Unprotected route detection - a mutating route (POST/PUT/DELETE/PATCH) with no [Authorize]/[AllowAnonymous]/.RequireAuthorization() attribute on the route itself (a global default-authorization policy set once for the whole app isn't reflected here).
    • DTO drift detection - the JS/TS payload sent doesn't match the C# request DTO's actual properties.
    • One-click export to a .http file or an OpenAPI document.

    In practice: a single sortable grid of every route in your solution, flagged with conflicts, unused routes, missing auth, and payload drift at a glance.

  • SignalR Map - correlates SignalR Hub methods with their JS/TS client call sites, covering both directions (connection.invoke(...) calling a Hub method, and Clients.All.SendAsync(...) pushing an event that JS listens for with connection.on(...)), shown inline via CodeLens on the C# Hub and in a dedicated tool window.

    In practice: a Hub method shows combined invoker and listener counts right above its declaration. On the JS/TS side, a line above the function that invokes it (FullStackCodeLens -> ChatHub.SendMessage -> ChatHub.cs) points at the Hub method, and a line above each connection.on("ReceiveMessage", ...) handler (FullStackCodeLens <- ChatHub.SendMessage -> ChatHub.cs) shows which Hub method pushes that event - click to jump straight to its SendAsync call.

  • Razor Method Map - for Blazor .razor files, since Visual Studio's own CodeLens and Go-To-Definition support has real, documented gaps for Razor components: a filterable list (by Method, File, and "Called Via") showing every method declared in a .razor file's @code block, where it's declared, and every place it's called from in that same file - plain C# calls, @onclick="Handler"-style event bindings, and inline @Method() expressions - all double-click-to-navigate.

  • Toggle & Rescan - a toolbar toggle to turn the AJAX indicators on/off, and a Rescan button that re-scans the whole workspace in one click - use it after adding or changing routes, AJAX calls, or SignalR calls.

How it works

Everything is fast, lightweight text/regex scanning - not a full Roslyn semantic analysis - so it works without needing your JS/TS project to be "wired up" to the C# project in any special way, and it's forgiving about non-standard code. It scans your whole workspace in the background the first time it's needed, and again whenever you click Rescan.

Requirements

  • Visual Studio 2019, version 16.11 - Community, Professional, or Enterprise are all supported.
  • Visual Studio 2022 and 2026 are not supported by this edition - use the separate FullStackCodeLens listing for those.
  • Microsoft Edge WebView2 Runtime, for the in-Visual Studio checkout window (preinstalled on Windows 11 and most up-to-date Windows 10 machines).
  • Works with ASP.NET MVC, Web API, Minimal APIs, SignalR, and Blazor projects.

Pricing

FullStackCodeLens for VS2019 is free to try for 30 days, full-featured, no credit card required. This edition has its own trial and license, separate from the VS2022/2026 edition. After the trial, a one-time €12 lifetime license unlocks it permanently - no subscription. Buy and activate it entirely inside Visual Studio: click Buy License on the toolbar, complete checkout in the window that opens (no browser required), and paste in the license key you're given to unlock instantly.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft