I Built a VS Code Extension to Simplify .NET Project Creation

I Built a VS Code Extension to Simplify .NET Project Creation

posted Originally published at bdonald.hashnode.dev 5 min read

How .NET Scaffolder eliminates repetitive CLI commands for .NET developers

After years of typing the same dotnet new commands over and over, I finally decided to do something about it. Today, I'm excited to share .NET Scaffolder by NotableBit—a VS Code extension that makes creating .NET projects feel effortless.

The Problem

As a .NET developer, how many times have you done this?

dotnet new webapi -n MyProject -f net8.0
cd MyProject
dotnet new sln
dotnet sln add MyProject.csproj
git init
git add .
git commit -m "Initial commit"
# ... and so on

It's tedious, error-prone, and breaks your flow. You have to:

  • Remember exact template names (webapi, blazorwasm, xunit, etc.)
  • Type out full paths or navigate directories
  • Manually configure Git
  • Remember which .NET version you want

There had to be a better way.

The Solution

.NET Scaffolder brings visual, intuitive project creation to VS Code. Instead of memorizing CLI commands, you get:

%[https://marketplace.visualstudio.com/items?itemName=notablebit.dotnet-project-creator]

  1. Tree View of Templates - Browse 12+ templates organized by category
  2. Interactive Configuration - Fill out a form, not a command line
  3. Browse Button - Click to select folders (no more typing paths!)
  4. Hybrid Git Integration - Choose your workflow
  5. One-Click Creation - Watch your project scaffold in real-time

✨ Key Features

12+ Project Templates

All the templates you use regularly:

  • Console Apps: Console, Worker Service
  • Web Apps: Web API, MVC, Razor Pages, Blazor Server, Blazor WebAssembly
  • Libraries: Class Library, Razor Class Library
  • Tests: xUnit, NUnit, MSTest

Flexible Git Integration

Choose what works for you:

Option What It Does
Local Only git init + commit, no remote
GitHub CLI Creates repo and pushes automatically
Custom Remote Push to GitLab, Bitbucket, self-hosted
No Git Skip it entirely

Framework Selection

Support for .NET 6.0, 7.0, 8.0, and 9.0—all in a dropdown.

Solution Support

Automatically creates solution files and adds your project to them.

Privacy First

Telemetry is anonymous and respects VS Code's telemetry settings. No tracking, no surprises.

Pro Tip: All telemetry follows VS Code's built-in settings. If you've disabled telemetry in VS Code, the extension won't collect anything.

️ How It Works

Here's the full workflow:

1️⃣ Open the Extension

Click the .NET Scaffolder view in your VS Code sidebar.

2️⃣ Select a Template

Browse categories and click any template to configure it.

3️⃣ Configure Your Project

Fill out the interactive form:

  • Project Name - Type it in
  • Project Path - Click "Browse..." to select a folder
  • Framework - Choose from .NET 6-9
  • Git Option - Pick your workflow
  • Create Solution - Toggle on/off

4️⃣ Watch It Build

Real-time progress tracking shows each step.

5️⃣ Start Coding

Your project opens ready to go—everything configured!

Full Transparency: AI-Assisted Development

Before diving into the technical details, I want to be upfront: I built this extension with AI assistance (Claude). This was a collaborative effort where:

My Role:

  • Defined the vision and requirements
  • ️ Made architecture decisions
  • ✅ Specified features and workflows
  • Tested and validated everything
  • ️ Reviewed and approved all code
  • Managed publishing and iteration

AI's Role:

  • ⌨️ Code generation and boilerplate
  • TypeScript implementation
  • VS Code API integration
  • Documentation writing

Why share this? Transparency matters in the developer community. AI-assisted development is a tool, not a shortcut. The extension is no less valuable because AI helped write it—just like using Stack Overflow, libraries, or frameworks doesn't diminish a developer's work.

This is increasingly how modern development works—AI as a powerful co-pilot, but human judgment driving the ship. Every line of code was reviewed, tested, and understood before making it into the extension.

What I Learned

Building this extension taught me a lot:

TypeScript & VS Code API

Working with webviews, tree views, and VS Code's extension API was challenging but rewarding. The documentation is excellent once you understand the patterns.

// Example: Creating a webview panel
const panel = vscode.window.createWebviewPanel(
    'dotnetProjectConfig',
    'Configure Project',
    vscode.ViewColumn.One,
    { enableScripts: true }
);

Cross-Platform Considerations

Making sure Git integration works on Windows, macOS, and Linux required careful testing. The gh CLI made GitHub integration much simpler than I expected.

User Experience Design

Balancing power and simplicity was key. I wanted advanced features (like 4 Git options) without overwhelming users. Radio buttons and conditional fields solved this nicely.

Privacy Matters

Developers care about privacy. Making telemetry opt-in via VS Code's settings was non-negotiable.

Technical Stack

For those interested in the implementation:

  • Language: TypeScript
  • Framework: VS Code Extension API
  • UI: Webview API with HTML/CSS/JS
  • Build Tool: TypeScript Compiler
  • Version Control: Git + GitHub
  • Publishing: vsce (VS Code Extension Manager)

Key APIs used:

API Purpose
vscode.window.createTreeView() Template browser
vscode.window.createWebviewPanel() Configuration forms
vscode.window.showOpenDialog() Browse button
child_process.exec() Running dotnet and git commands

What's Next?

The roadmap is already filling up! Here's what's coming:

v1.4.0 (Planned)

  • Add to Existing Solution - Create a new project and add it to an existing .sln file
  • Detect workspace solutions automatically
  • Maintain consistent project structure (src/ folder patterns)

Future Ideas

  • Custom template support
  • Project preview before creation
  • NuGet package addition during setup
  • Docker configuration generation
  • Template favorites

Check out the GitHub Issues to see what's being discussed!

Try It Out!

Ready to scaffold your next .NET project in seconds?

Install via VS Code:

ext install notablebit.dotnet-project-creator

Or search: .NET Scaffolder in the Extensions marketplace

Resources

Let's Connect!

This is my first published VS Code extension, and I'd love to hear your thoughts:

  • What features would make your workflow smoother?
  • What templates are you missing?
  • Any bugs or issues to report?
  • ⭐ Found it useful? Star the repo!

Drop a comment below or open an issue on GitHub!


Building tools that developers actually want to use is incredibly rewarding. If this extension saves you even 30 seconds per project, it's worth it.

Happy scaffolding!


Share This Post

If you found this useful, share it with your .NET developer friends! They'll thank you for it.


Follow me for more developer tools and open-source projects. More extensions coming soon!

Connect with NotableBit:

1 Comment

0 votes

More Posts

TypeScript Complexity Has Finally Reached the Point of Total Absurdity

Karol Modelskiverified - Apr 23

I’m a Senior Dev and I’ve Forgotten How to Think Without a Prompt

Karol Modelskiverified - Mar 19

I Wrote a Script to Fix Audible's Unreadable PDF Filenames

snapsynapseverified - Apr 20

How I Built a React Portfolio in 7 Days That Landed ₹1.2L in Freelance Work

Dharanidharan - Feb 9

Merancang Backend Bisnis ISP: API Pelanggan, Paket Internet, Invoice, dan Tiket Support

Masbadar - Mar 13
chevron_left

Related Jobs

View all jobs →

Commenters (This Week)

3 comments
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!