DEV Community

Cover image for I Built a VS Code Extension to Simplify .NET Project Creation
B Donald Harris
B Donald Harris

Posted on

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

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


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
Enter fullscreen mode Exit fullscreen mode

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:

  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:

  • 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.

🛠️ 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/ChatGPT). This was a collaborative effort where:

I provided:

  • The vision and requirements
  • Architecture decisions
  • Feature specifications
  • Testing and validation
  • Final code review and approval

AI helped with:

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

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.

Why share this? Transparency matters. 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.

🎓 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.

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:

  • 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

🎯 Try It Out!

Ready to scaffold your next .NET project in seconds?

Install via VS Code:

ext install notablebit.dotnet-project-creator
Enter fullscreen mode Exit fullscreen mode

Or search: .NET Scaffolder in the Extensions marketplace

Links:

💬 Feedback Welcome!

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?

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! 🚀


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

Connect:

Top comments (0)