The above image may seem fairly unassuming, but according to Microsoft, what you're seeing is not possible.
Most people today don't have much reason to use or deploy software for Windows 95, but a select handful do. There's a surprising amount of infrastructure that's been in place since the late 1990s/early 2000s that has simply never needed to be upgraded (after all, why fix what isn't broken?)
For our purposes, we may not have any critical twenty-year-old infrastructure in place, but we do care about software history and preservation, and every now and then it's fun to make things that allow us to step back in time but do something new.
For example, if you're someone who makes modding tools for games that support Windows 95 (couldn't be me...), it only makes sense for your modding tools to also support 95 too, so people can get your enhancements along with a fully nostalgic experience.
But making software and deploying it as far back as Windows 95 is tough in this day and age. We've been spoiled by modern IDEs, build systems, and GUI toolkits that simply didn't exist back then. To write for Windows 95 means limiting ourselves to whatever could be created back then.
...Or does it?
C#/.NET provides a much easier way to write modern apps, especially GUI apps for Windows, and has become increasingly common over the last 21 years since its release. However it never officially supported Windows 95. Even the earliest versions of .NET only supported NT 4.0 and 98SE. But those OSes are both from the same era as 95. I started to wonder, could .NET be made to work on it despite Microsoft's lack of support? Could we bring a whole new programming language and GUI toolkit - one that's still supported today in modern Visual Studio - to Windows 95?
Technically, while there are some differences between 95 and 98, there aren't that many. 98 featured some quality of life refinements, and introduced the more stable WDM driver system, but neither of those would affect .NET in any way. I felt like it had to be possible to get this working.
.NET Framework 2.0 still officially supports 98SE and can still be targeted in the latest Visual Studio 2022, so that was my target for backporting. And despite a handful of complications and complexities along the way, as you can see from the screenshot above, my hunch was right! With a few modifications, .NET can indeed run on Windows 95.
What's exciting about this is that not only will it make newer apps easier to write for 95, but that it ostensibly also backports everything else that has been written for .NET 2.0 previously. I have no idea how many apps that is - there's probably no way to know - but I think we could reasonably assume it's hundreds if not thousands. All of these should theoretically run on Windows 95 now!
This project isn't done yet, I have a few more things to patch and still need to organize my messy project folders into something worth publishing online (yes it'll all be open source), but from a mostly-working/proof-of-concept stage, C#/.NET officially works on Windows 95 now! And since .NET 2.0 Is still officially supported today, anything you write should work just as well on 95 as it will on the latest Windows 11!
I'll be going into more detail in the future about how I did this and what this all means, but since videos usually take a few weeks to put together, I thought I'd give you guys a sneak peek at what I've been working on.
Thanks to all of you for supporting me and helping me pull off stuff like this. I can't wait to see people use this in future Windows 95-targeting projects!
Patrick and Rachel
2024-09-07 14:26:54 +0000 UTCGordinator
2023-10-25 11:22:03 +0000 UTCWinksplorer
2023-10-25 04:32:58 +0000 UTCTom Keely
2023-10-25 01:01:01 +0000 UTCLunascape
2023-10-24 22:53:17 +0000 UTCLucas
2023-10-24 22:22:22 +0000 UTCMattKC
2023-10-24 19:05:38 +0000 UTCMattKC
2023-10-24 19:00:13 +0000 UTCMax
2023-10-24 18:54:18 +0000 UTCottergauze
2023-10-24 18:47:53 +0000 UTC