Dependinator visualizes the structure and dependencies of your C#/.NET codebase as an interactive, navigable map, making complex architectures easier to understand, analyze, and refactor. It is published as a VS Code extension on the Visual Studio Marketplace.
⚠️ Beta — Dependinator is under active development and published as an early preview for a small group of testers. Expect rough edges, missing features, and breaking changes between versions. It is not yet a finished product.
- Interactive dependency map — explore your codebase as a zoomable, navigable diagram instead of scrolling through files.
- Drill down and back up — open nodes to see their internals (namespaces, types, members) and follow dependencies between components.
- Jump to code — navigate from a node or dependency straight to the corresponding source location.
- Automatic refresh — the map updates automatically when source files change.
- Optional cloud sync — sign in to sync your customized views across devices.
- VS Code extension — install
Dependinator
from the Visual Studio Marketplace (search for "Dependinator" in the
Extensions view) and run Dependinator: Open in a workspace with a
.slnfile. See src/DependinatorVsCode/README.md for details. - In the browser — try the demo at dependinator.com.
In the app, the Help button in the app bar opens a page with usage instructions, navigation tips, and keyboard/mouse controls.
This repo contains the shared UI and core logic plus multiple hosts (Blazor Server, Blazor WebAssembly), an Azure Functions API used for cloud sync, and the VS Code extension.
Dependinator.sln (targeting net10.0, SDK pinned in global.json) stays at the repo root; production project folders live under src/ and test projects under tests/. Dependency direction is Hosts → UI → Core → Shared (with Roslyn → Core), enforced by tests/Dependinator.Architecture.Tests/.
Hosts:
src/Dependinator.Web/: Blazor Server host for local development.src/Dependinator.Wasm/: Blazor WebAssembly host (Azure Static Web Apps target) and Web UI for the VS Code extension.src/Dependinator.Lsp/: LSP server executable.src/Api/: Azure Functions API for cloud sync.
Libraries:
src/Dependinator.UI/: Shared UI (App/,Diagrams/,Modeling/).src/Dependinator.Core/: Core parsing, domain logic, models, and utilities.src/Dependinator.Roslyn/: Roslyn-based parsing.src/Shared/: Shared DTOs/models between client and API.
Tests:
tests/Dependinator.UI.Tests/,tests/Dependinator.Core.Tests/,tests/Dependinator.Roslyn.Tests/,tests/Api.Tests/: xUnit unit tests.tests/Dependinator.Architecture.Tests/: NetArchTest layering guards.tests/Dependinator.E2E.Tests/: Playwright UI tests (run via./e2e).
VS Code extension (not part of Dependinator.sln):
src/DependinatorVsCode/: TypeScript extension packaging the web UI + language server.
- .NET SDK 10.0.101 (pinned in
global.json). - Node.js + npm — for the VS Code extension and SWA CLI.
- Azurite (
npm i -g azurite) — local Azure Storage emulator, needed by./watchand./run. - Azure Functions Core Tools (
func) — needed by./watchand./run. - SWA CLI (
npm i -g @azure/static-web-apps-cli) — needed by./run. - Playwright browsers — for
./e2e.
The devcontainer (.devcontainer/) provisions the .NET SDK, Node, func, and Playwright browsers out of the box. Azurite and the SWA CLI are not preinstalled — add them with the npm i -g commands above if you need ./watch or ./run.
- Build:
./build - Run server (live dev, with cloud sync):
./watch - Run WASM + API + Azurite locally:
./run - Unit tests:
dotnet test Dependinator.sln - UI/e2e tests:
./e2e(chromium;-afor all browsers) - All tests (unit + e2e):
./test
Cloud sync uses Clerk for authentication (magic links / email OTP). The API validates Clerk-issued JWTs via JWKS.
- See
swa-cli.config.jsonfor thedependinator-testconfiguration. - Required Static Web App application settings:
CloudSync__ClerkIssuerCloudSync__ContainerNameCloudSync__MaxUserQuotaBytesCloudSync__StorageConnectionString
- The
dependinator.cloudSync.baseUrlsetting controls which API endpoint the extension uses. - The extension serves a local Clerk sign-in page and stores the session JWT in VS Code secrets.
MIT — see LICENSE.
