My central goal for .NETpad in 2025 is easily stated, but not so easily implemented: I want to transition the app to a tabs-based user interface. But that's not all I'd like to accomplish with this app over the next several months. Here's what I'm thinking.
First, this is all Microsoft's fault
If it's not clear, .NETpad is a Notepad clone, written from scratch, in this most recent rendition using C# and the Windows Presentation Foundation (WPF). This may seem straightforward. After, all, Wikipedia describes Notepad as "a simple text editor for Windows." It's not sure if that was ever true, though I used to think so. But this app has long provided sophisticated features of which many are unaware, including support for multiple encoding formats and seamless conversion of formatted text into raw text. In creating several different versions of .NETpad over several years, I've confronted this sophistication repeatedly and have often come up short.
But it's gotten even more complex in recent years. Notepad has experienced a Renaissance era in which Microsoft has done the impossible: It has improved the look and functionality of Notepad dramatically without screwing it up. Today, the app looks and feels modern, supports multiple documents via a tabs-based UI, and offers an interesting session state feature (that some mislabel as Auto save), among other improvements.
Recreating all that with WPF would be next to impossible had Microsoft not brought WPF back from the dead last year as part of .NET 9 by bringing basic Windows 11 theming capabilities to the decades-old framework. But where Microsoft giveth, Microsoft also taketh away: WPF's basic support for Windows 11 theming is buggy and, in some cases, broken. There are missing controls and, more importantly, controls that aren't fully or easily implemented. And the "finished" version of .NETpad I posted in late December will crash hard, not because of something I did, but because of a serious bug in WPF. (Microsoft has allegedly fixed it internally.)
Point being, there are challenges. Including my own limitations as an enthusiast rather than professional developer. I'm reminded of the quip made by Clint Eastwood as Dirty Harry in Magnum Force: "A man’s got to know his limitations."
Still, you gotta dream.
A few things I've already added
I foolishly made a few small changes to the app as I wound down the initial "2024" release of .NETpad instead of just focusing on the job at hand, but what the heck, that's the yin and yang of ADHD. So after posting the source code to GitHub, I had to go back and make a few bug fixes. As a result, I've updated the source code a couple of times too.
Here's what's changed since I first posted the source code. (This is all in GitHub.)
App theme button to the main app menu bar. The crashing bug I reference above is triggered when you open an Expander control and then change the theme (between Light, Dark, and System). This is a WPF bug, but I use...
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.