.NETpad 2025: Reset (Premium)

In August 2004, Microsoft group vice president Jim Allchin finally bowed to the inevitable and hit "reset" on Longhorn, the company's ambitious would-be follow-up to Windows XP. Today, I find myself in a similar position and for similar reasons. So I am hitting "reset," this time on the tabs-enabled version of .NETpad, which requires features that are either unavailable or nearly impossible to use in the Windows Presentation Foundation (WPF) framework that I've been using. And like Allchin, I will shoulder the blame for this setback: My inexperience as a developer also played a major role.

If you read Ask Paul each week, you may be familiar with how frequently someone will ask me a question and I'll start my response with a note that I was already partway through writing something on that topic, but it wasn't clear when I'd complete it, if ever. I'm not sure what other writers are like, but I sometimes do find it odd how I much I write that never sees the light of day. But there is nothing I've written more about--and not published--than the work I've done on .NETpad. Since the last update, which I posted on April 21, I started and then never completed over a dozen articles. There must be tens of thousands of words in there. All pointless now.

Well, not entirely. Using those partially finished writings as a sort of forensic tool, I can piece together what went wrong where, at least. And I can summarize that in far fewer words than I would have used had I actually published any of them. Let's see how concise I can make this.

The goal, as you know, was to create a version of .NETpad that, like Notepad, supports multiple documents and tabs. To get there, I cleaned up the codebase repeatedly through refactoring, modularization via multiple new classes, and more side trips down blind alleyways than I wish to count. I got so close, so very close, but the basic issues I kept running into are all tied to document state management: Each time I rewrote the app from scratch to make sure I could replicate the work correctly, I would start with a basic shell, get multiple tabs and documents working correctly, beginning adding back all the features from the original version, and it would start failing. This happened at least four times now.

Trying again to be concise, I tie this problem to WPF, which is so sophisticated and complicated that it must have seemed like technology gleaned from a crashed alien spacecraft when it was first introduced 20 years ago. But WPF also sat untouched for far too long, and the specific pieces I need to make this work--mostly tied to tabs, of course--are among those things that were never updated for the modern app era. In fact, they missed out on several eras of changes.
⁉️ Now what?
I explain all that in more detail below if you're curious. I'm sure it's too much detail for most people. But first, let me focus on what I intend to do about it. Because I'm not done with .NETpad. There is still so much I want...

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