Classic Solitaire

Classic Solitaire

Eighteen (18) years ago I posted Solitaire (written in VB.NET).

Let’s recap for a moment what the world was like at that time:

  • Windows XP
  • Visual Studio .NET 2003
  • GotDotNet

Before GitHub, before CodeProject, before CodePlex… there was GotDotNet. This official (yet, apparently, unofficial?) .NET resource was the place to be. A ton of resources, amazing interactions with the community, pretty good sharing of samples… it’s a real shame that this website simply went poof. So much content was lost, never to be seen again. :-( (I mention GotDotNet here as this is where the original genesis of this project began.)

Windows XP, wow, those were the days! Before Windows 7 and Windows 10 hit their stride, Windows XP was the king. However at the time that this version of Solitaire was made available, it really wasn’t all that meaningful given that it was literally a clone of the version that was already installed on the machine - so it was simply an example of “doing the same thing” but using .NET. The version of this that I made available literally leveraged the existing help files that were used by the real version. (More on this below.)

In the age of Visual Studio .NET and Visual Studio .NET 2003, Windows Forms was also a bit different. Two things that stand out are the concept of “code-behind” files in Windows Forms and original components for dealing with menus. The previous sample suffered from the usage of the old menu components as well as having no “code-behind” for the Windows Forms initialization; these had to be remedied.

Around 10 years ago I posted the code as it existed way-back-when to GitHub with the intention of updating it to work with the then current version of Visual Studio (2013). I got this completed, but it was still (if I recall correctly) targeting .NET 2.0 (due, in part, to the legacy menu components).

At some point I circled back to it with the intention of getting things updated to work with .NET “Core” 6.0, now that Windows Forms was cool again. ;-)

Things happened and it fell off the radar…

Why should I bother with this version?

I suppose one could argue that the real purpose for this little sample wasn’t fully realized until the release of Windows 8 and the removal of the “old” Windows Solitaire game in favor of its replace via the Microsoft Store and the associated micro-transaction model encouraging you to now spend money on said game.

There was apparently enough of a backlash regarding this that Microsoft appeared to “bring it back”, but let’s look at what this means (this is as of the latest version of Windows 11)…

Let’s first start the Solitaire & Casual Games application…


OK, let’s wait for the update… (please note that machine is configured to automatically get updates… but let’s wait anyway…)


Oh boy!!! I get a “free week of Premium on Windows” which starts “today”. And let’s look more closely at what it says:

As a premium user, you now get double coins for all Daily Challenges which will make earning those badges much faster! You also get game boosts and no ads! We hop you enjoy your free week of Premium Edition, and thanks for signing in to Xbox Live!

Wait, what???

If you pay, you can get badges faster? There’s a term for this, what was it… oh yeah… “Pay to win”. “No ads!” means I’m now having to look at advertising while playing a simple card game? And, wait, it logged me into Xbox Live without any prompt… how helpful of the application to potentially tell my employer that I’m goofing off while waiting for some task to complete.

But, hey… it’s pretty. I do have to give it to them, it does look nice.


So given these factors combined with a bit of nostalgia, this little sample seems more appropriate today than it did almost 20 years ago when it first became available. And with that, I’m happy to report that it has been fully updated, refactored, cleaned up and improved for .NET 8.0!

You can find it at Solitaire (GitHub).

This post is licensed under CC BY 4.0 by the author.