Skip to content

Version 2.0 - The Big One!

Latest

Choose a tag to compare

@JaykeBird JaykeBird released this 01 Mar 22:02
Solid Shine UI Logo

Finally, after so long, here it is! Version 2.0!

There's a lot that I could say about how long this ended up taking. I set out to start work on this version back in 2022, and originally targeted a late 2023 release… well, we're pretty far from that now! The short and sweet version is two things. Firstly, you know, life happens. I've gone through some rough patches in the past few years, and I'm sure most of us can probably relate. Secondly, I'm just one guy working on this solo project in my free time. Sometimes this means I get excited about making some ideas happen but grossly underestimate how much time I'll actually need to do it, and other times my desires and focus are just elsewhere, and I want to instead work on other projects or do other things.

Either way, here we are now. So let's talk about this version 2.0, and then I'll discuss the future after this.

Not all of the features I originally set out to implement for 2.0 are present here: most notably, the Ribbon control and the Avalonia UI port. Both of those are in development (in separate branches), but I had to set those aside to just get the remaining elements of 2.0 over the finish line. As I mentioned just a bit ago, I kind of underestimated the amount of effort it would take to get both of those things finished, especially porting over this entire library to Avalonia UI. But still, it will all be coming in due time.

There is still a lot that I did get done for version 2.0 though! A basic rundown is thus:

  • Created SsuiTheme and SsuiAppTheme, as new visual theming objects to replace ColorScheme
  • Completely rewrote the spinner controls (IntegerSpinner, DoubleSpinner, LongSpinner) and added a TimeSpinner and StringSpinner
  • Replaced ExperimentalPropertyList with new PropertyList control, replaced RelativePositionSelect with new PositionSelect control
  • New ParticleEmitter control
  • Major improvements/rewrites to FlatWindow, CheckBox, TabControl, LinkTextBlock, and more
  • New BrushSerializer and TransformSerializer helper classes
  • A lot of general cleaning up and small improvements across the entire library

Now Solid Shine UI feels a lot cleaner, more modern, and more fully-featured! And this also now serves as a great base for me to build on more features and do more things in the future.

As is expected with a major version release, there are a lot of breaking changes. I did try to brace people beforehand with added comments and marks in the most recent 1.9.x releases, but that only brings some amount of help and visibility. While a lot of the internals have been overhauled in various places, the amount of breaking changes (while still large) won't require you to overhaul your code. A lot of the changes are renaming properties or changing event handler signatures and such - should be doable in an afternoon, but won't be a non-trivial amount of work.

The Future

After this release, I think it's fair to say that I'm going to take a bit of a break from this to work on some other projects. The library is now in a good spot and I think can stand on its own for a while (although, if there are bugs discovered, I will definitely come back and make a 2.0.1 release).

Versions 2.1 and 2.2

I already have upcoming plans for making versions 2.1 and 2.2. Ideally, I'd love to get these out in November 2026 and November 2027, respectively (to line up with new versions of .NET coming out), but given that we're already in March, that may be a bit too soon. I do really like the November release windows, though, so if the timeline I mentioned above doesn't end up happening, the next likely timeline would be version 2.1 in November 2027 and 2.2 in November 2028. Either way, at this point, I'm not trying to set hard deadlines.

These new versions will be focused on bringing in the features and items that I hadn't finished for 2.0 itself. In particular, 2.1 will be focused on the Ribbon control (and ideally also a Toolbar control), and 2.2 will be focused on getting the Avalonia UI done, and doing some further work on the Ribbon and some other things for the WPF version. There may or may not be a version 2.3, I'm not sure yet.

Version 3.0

Sometime after all of that will be version 3.0. Yes, I'm already thinking pretty far ahead, although I don't quite yet have a full plan of what I'll want to do with 3.0. One key thing I do know, though, is that version 3.0 will be the version to fully drop .NET Framework support and support for .NET 5 through 9. Given I don't even know how long it'll be until 3.0 will come out (and we'll have 2.1 and 2.2 in between then and now), I think this is enough forewarning of that happening.

Version 1.9.10.1

There are some bugs that I've discovered after having released 1.9.10 a few months ago. I do have plans to make a bug fix release, 1.9.10.1, in the coming month, I've just wanted to focus first on getting 2.0 done. The bugs that I've found have also been fixed for 2.0, so no concerns there - 1.9.10.1 will just be for those who can't or don't want to upgrade to 2.0.

I'll continue to make updates on the 1.9.x branch for the next little while (primarily just bug fixes), but I don't know how long that will last.

Consume the library

🍔
One of three ways:

  • Get the library from NuGet
  • Download the binaries below!
    • Versions for .NET Framework 4.6.1 and up, and .NET 5 and up!
  • Build it yourself from code!

Changelog / Breaking Changes

Since the list for both of these were so large, I decided to break them out into their own pages on the wiki.

Overview of changes:

  • Created SsuiTheme and SsuiAppTheme, as new visual theming objects to replace ColorScheme
  • Completely rewrote the spinner controls (IntegerSpinner, DoubleSpinner, LongSpinner) and added a TimeSpinner and StringSpinner
  • Replaced ExperimentalPropertyList with new PropertyList control, replaced RelativePositionSelect with new PositionSelect control
  • New ParticleEmitter control
  • Major improvements/rewrites to FlatWindow, CheckBox, TabControl, LinkTextBlock, and more
  • New BrushSerializer and TransformSerializer helper classes
  • A lot of general cleaning up and small improvements across the entire library

See Full Changelog
See Breaking Changes