Project Reunion: Microsoft's attempt to tear down all those barriers it's built for Windows developers over the years
- Reference: 1589921893
- News link: https://www.theregister.co.uk/2020/05/19/project_reunion_microsoft/
- Source link:
The history behind corporate veep for Developer Platform Kevin Gallo's statement goes back to the introduction of Windows 8 in 2012 and its new tablet-friendly application platform, [1]sometimes called "Metro" – though Microsoft liked to say "Modern".
Metro was not just about a new user interface, but also security sandboxing, store delivery, and an API called WinRT (Windows Runtime) that was intended to take over from the old Win32 API. Despite the failure of the Windows 8 concept, Microsoft did not abandon WinRT but instead evolved it into the Universal Windows Platform (UWP) for Windows 10 – "Universal" because it ran on multiple Windows platforms including the late and lamented (by some) Windows Phone, Xbox, and HoloLens.
The division of Windows into two platforms has been troublesome for developers, who have had the choice of sticking with Win32 for broad compatibility or adopting UWP to get the benefit of Microsoft's latest for security, deployment, and UI design. Some Windows 10 APIs are UWP-only. The company has been trying for years to make the split more tolerable, adding broad access to the Win32 API for UWP and, on the Win32 side, coming up with things like XAML islands, which let you embed a bit of UWP into a Win32 application.
So what is Project Reunion?
Gallo said it "will unify access to existing Win32 and UWP APIs and make them available decoupled from the OS, via tools like NuGet". The idea seems to be to create packages that enable access to a set of APIs from both Win32 and UWP. "This will provide a common platform for new apps. Plus, it will help you update and modernize your existing apps with the latest functionality," he said.
Gallo added that Microsoft will do the work "to polyfill, as needed, so the APIs work down-level across supported versions of Windows". The key word here is "supported". The latest documentation shows that WinUI 3, which Microsoft [2]now considers the "native UI layer in Windows", requires Windows 10 1803, which is only a couple of years old. Polyfills could perhaps extend that back a bit, but we await further details.
In the meantime, there's a GitHub repo [3]here regarding Project Reunion, and an announcement [4]here .
[5]
Windows development compatibility table
WinUI 3 is significant because it is both the latest UI layer for UWP, and also a UI layer for Win32 applications. At Build, Microsoft is launching WinUI 3 Preview 1. Gallo called this "one of the first components in the Project Reunion journey", suggesting the project is not about introducing yet another kind of Windows application (thank goodness), but more about reducing the friction between UWP and Win32 – friction which Microsoft created back in 2012.
[6]
Fluent Design, the officially favoured UI look for Windows 10
Part of the WinUI pitch is that it enabled developers to use the [7]Fluent Design System , which represents Microsoft's current thinking about how to design Windows applications and ties in with newer Windows controls.
.NET Multi-Platform App UI
What about when you need to develop for mobile or Mac as well as for Windows? Microsoft has a few suggestions, including coding in JavaScript or TypeScript for [8]React Native , which seems to be in use by the company's Office team among others. There is also Xamarin.Forms, a .NET cross-platform UI toolkit acquired by Microsoft in 2016.
Xamarin was perhaps too easy to pronounce so Microsoft has now announced .NET Multi-Platform APP UI or MAUI. ".NET MAUI is the evolution of Xamarin.Forms," a Microsoft spokesperson told The Reg . "It will allow you to build apps for any device from a single codebase and project system, including desktop and mobile for any operating system. It will be part of the unified .NET in the .NET 6 timeframe." Xamarin.Forms is not the entirety of Xamarin, but specifically the framework that lets you use XAML to define a cross-platform user interface. A MAUI preview is promised by the end of 2020.
.NET MAUI will support Windows and macOS desktop apps, in addition to iOS, Android, and Samsung's Tizen. It will use a single codebase and project system, rather than the multiple projects you get today if targeting multiple platforms. The framework will be supported by VS Code and command-line compilation, in addition to Visual Studio on Windows and Mac.
While this is intended to replace Xamarin.Forms, Microsoft has promised to keep supporting the older framework with new features and bug fixes from now until a year after .NET MAUI is released. "Migration tooling and guidance will be available to provide a smooth transition from Xamarin.Forms to .NET MAUI," Microsoft told us. NET MAUI is open source and can be found [9]here .
Note that .NET MAUI is for .NET 6, but currently even .NET 5.0 is still in preview. At Build, Microsoft said it is releasing .NET 5.0 Preview 4.0, with general availability scheduled for November. This version of .NET is essentially the next big update to the cross-platform .NET Core, but with support (on Windows only) for frameworks such as Windows Forms and Windows Presentation Framework. Thanks to this capability, Microsoft said, it is a unified implementation that supports all workloads across everywhere .NET Core runs. Windows desktop support is the obvious new feature, but the more important aspect of .NET 5.0 is its suitability for microservices and containerized applications running on Azure or elsewhere. ®
[1] https://www.theregister.co.uk/2012/08/10/metro_is_modern_ui_now/
[2] https://microsoft.github.io/microsoft-ui-xaml/about.html#what-is-it
[3] https://github.com/microsoft/ProjectReunion
[4] https://blogs.windows.com/windowsdeveloper/2020/05/19/developing-for-all-1-billion-windows-10-devices-and-beyond/
[5] https://regmedia.co.uk/2020/05/19/winui.png
[6] https://regmedia.co.uk/2020/05/19/fluent.jpg
[7] https://www.microsoft.com/design/fluent/#/
[8] https://reactnative.dev/
[9] https://github.com/dotnet/maui
Borkzilla looking for a new foot to shoot
Honestly, Borkzilla is responsible for every single restriction to its various OSes. Now it is trying to pretend that it cares about some amount of backward compatibility. Seems to me that that means that Windows 10 is not dominating the market like Borkzilla would like it to.
Well guess what ? The market is defined by businesses that have developed procedures to solve their problems, not yours. If you don't tow the line, they won't budge until you do.
Being the biggest player in the market also means you have the biggest forces to deal with.
Good luck.
Again?
Perhaps one reason Win32 and its associated UI toolkits have persisted so long is because Micros~1 doesn't change it every couple of years like they do with all of this modern/metro/whatever tat. WinUI 3 may become obsolete in a couple of years, but Win32 and its UI toolkits will still keep working. After all, the vast installed base and library of Win32/Win64 applications running on Intel/AMD x86 is the primary value proposition for Windows.
And anyway, if you're going to build a UI using an abstraction layer, why stop at Win32 and "modern"? Why not choose one that can also build on Mac and Linux?
Simplify.
Re: Again?
And anyway, if you're going to build a UI using an abstraction layer, why stop at Win32 and "modern"? Why not choose one that can also build on Mac and Linux?
Just as long as you wouldn't be forced to use the fugly-flat look for your Linux apps. I want my applications to blend in with everything else on my Cinnamon desktop, and use the system controls I've chosen.
The Metro/modern/manky UI sucks big time.
In an attempt to ape simpleton iOS, MS have taken for granted, the eminently usable UI of Windows past and lost 90% of what made it slick and usable.
Abandoned and lost are logical keyboard shortcuts, mouse shortcuts, vibrant and distinctive colour schemes and layouts.
Instead we have bland plain window backdrops with no borders and no colour. Open up a handful of randomly overlapping windows, and it becomes impossible to tell where one starts and the other ends.
Even the OS itself has no impressive, consistently clear style guide any more. What hope is there for "apps"?
Instead of building on the efficient and usable UI it had before, we see half baked redesigns of a bad idea again and again with apparently no usability testing whatsoever.
Whoever's in charge of this mightily clusterfluck should have their atoms strung out in a long thin line and sent towards the nearest black hole.
Where there's a 'will', there's a "when?"
I count the word 'will' used 10 times in the fine article. Which year will this Christmas present be wrapped up and under the tree? And not just as an empty box. I haven't been motivated by Microsoft's promises in... decades now.