← Back to context

Comment by maxxxxx

8 years ago

You couldn't just port from WPF to Silverlight. They took away tons of features. WinRT was even worse. No idea about UWP but I don't care anymore.

That's why I mentioned semver. APIs change all the time, backwards compatibility gets broken. Yes, conversions weren't always straight forward, but often were possible, and there was an evolutionary arc to it all, and a migration story to follow, even when sometimes that story was a bit rougher than anyone wanted.

  • They couldn't have done that because these technologies are not exactly for the same things and don't have the same features.

    Silverlight was mainly for apps embedded in the browser. It was very limited compared to WPF and not meant to replace it.

    Similarly, Metro was not meant to replace WPF. It was extremely limited in what you can do. You couldn't build serious desktop apps with that.

    The fact that all those technologies use XAML does not mean they're newer versions of the same thing. The difference in APIs is not what matters, it's the difference in what they can actually do and how that makes them different.

    • The family tree seems pretty clear to me, yes, Silverlight was a sideways jag, but it wasn't originally "just" for embedding in the browser, it was a cross-platform WPF subset. (In the family tree both WPF and Silverlight, sometimes codenamed WPF/E for Everywhere, split from different goals of the original Avalon project.)

      I think you can tell that WinRT/Metro/UWP was/is meant to replace WPF. It used to be extremely limited, but A) had a bigger cross-platform reach that WPF (ARM is/was a big deal), so started with the cross-platform subset, B) was essentially "Win64" from scratch so had a lot of pieces to build.

      Starting next month-ish UWP supports .NET Standard 2.0 and the hard work of the re-convergence of classic desktop .NET and cross-platform .NET APIs has happened (huzzah), and it will be a lot harder to argue that UWP is "extremely limited" compared to WPF because 70% of NuGet will just work.

      8 replies →

  • There was no migration story. Usually an API gets more features but in this case they took away a lot of critical stuff. A lot of us write applications that need the full power of the OS and not just a small arbitrarily chosen subset.