.NETpad 2025: Fork Me? (Premium)

Inspired by Microsoft's decision to bring the Windows Presentation Foundation (WPF) back from the dead and support Windows 11 theming, I decided that I would modernize the WPF version of my .NETpad app and try to add the features that Microsoft has added to Notepad. That work went better than expected in 2024, though support for multiple documents and tabs always loomed over my head like a shadow. As 2024 wound to a close, I decided to punt on multiple documents/tabs and save that work for 2025.

I published my updated (non-tabs) version of .NETpad to GitHub in late December. And then I spent the first half of this year steadily building out multiple documents/tabs support in the app. And while I experienced some nice wins, I kept running into the same problems again and again. So I hit reset: I'm now updating the single document version of .NETpad with a more sophisticated codebase and new features to get off the no-progress treadmill.

But I haven't forgotten about multiple documents and tabs. Indeed, I'm mildly obsessed with it, even though I very much prefer the current, simpler version of .NETpad. And I've had this recurring thoughts in the back of my mind this whole time, dating back to last year. Modernizing an existing codebase is a pretty common activity for developers, which explains why Microsoft resuscitated WPF in the first place: There are so many WPF apps out in the world and making them look right in Windows 11 was previously difficult to impossible. But modernization can only go so far. Sometimes you need to start over.

And in my case, it's obvious looking at Notepad today that Microsoft used the Windows App SDK and its native support for WinUI 3 to modernize the app. It's also obvious that WPF isn't up to the task I'm trying to accomplish. As I noted in the reset article, its TabControl and TabItem controls are literally 25 years old and don't address the modern needs of tabs-based apps like the one I'm trying to build. Working around that isn't literally impossible. But it is incredibly difficult and the result will never be ideal. I always figured there was a Windows App SDK/WinUI 3 version of .NETpad out there, just waiting for me top write it. What if that was the solution?

All I had to do was find out. And sure enough, a cursory look at the documentation told me exactly what I needed to know. Among other things, it verified what I've been saying all along about the tabs capabilities in WPF.

"Tabbed UIs come in one of two distinct styles that differ in function and appearance," the Microsoft Learn documentation for the WinUI 3 TabView control explains. "Static tabs are the sort of tabs often found in settings windows. They contain a set number of pages in a fixed order that usually contain predefined content. Document tabs are the sort of tabs found in a browser, such as Microsoft Edge. Users can create, remove, and rearrange tabs; move tabs between windows; and change the content of tabs."

Two things to...

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Thurrott