We continue to evolve Uno Platform in lockstep with the latest Microsoft developer platforms and tooling. Our 3.10 release supports .NET 6 RC1, latest developments in WinUI and Windows 11 Fluent Styles (aka “Sun Valley”).
We are following developments in .NET 6 and Visual Studio 2022 until their general availability and look forward to bringing to you all the productivity, performance and stability benefits this latest wave of innovation from Microsoft is enabling for all of us.
In addition, we closed over 150 new features and issues requested by our community and clients, as well as added 30+ samples to our documentation.
Let’s unpack the release.
About Uno Platform
For those new to Uno Platform – it allows for creation of pixel-perfect, single-source C# and XAML apps which run natively on Windows, iOS, Android, macOS, Linux and Web via WebAssembly. Uno Platform is free and Open Source (Apache 2.0) and available on GitHub.
.NET 6 RC1
.NET 6 RC1 contains many changes to get Android and iOS apps running better in Visual Studio. Uno Platform .NET 6 binaries are now built with RC1, and to get your machine setup, your can use uno-check as follows:
dotnet tool install -g Uno.Check --version 0.2.0-dev.327
If a later version is available, you can use it instead of 0.2.0-dev.327
Run the uno-check tool:
To get started, visit our Visual Studio 2022 documentation.
Visual Studio 2022 Preview 4
Our ongoing efforts with Visual Studio 2022 look very promising. The load times for Uno Projects significantly improved, upward of 20% faster. In addition, our clients report that their solutions with over a hundred of cross-targeted projects now work seamlessly, a significant improvement over Visual Studio 2019.
In order to build for .NET 6 for iOS and Android, make sure to install the optional component “.NET MAUI (Preview)” in the workload named “Mobile development with .NET”.
Windows 11 “Sun Valley” Fluent Styles
The refreshed set of styles was introduced in WinUI 2.6 is now supported by Uno Platform.
Here’s a sample of what this looks like for your applications:
By default, Uno Platform applications use the refreshed set of styles, but it is possible to use the previous fluent styles by modifying your app.xaml file as follows:
<XamlControlsResources ControlsResourcesVersion="Version1" xmlns="using:Microsoft.UI.Xaml.Controls" />
A badge is a small piece of UI that usually displays a dot, number, or icon and in order to bring the user’s attention to where it’s placed, alerting them of something. The InfoBadge is a brand new WinUI control, and we are proud to make it available to you on day-0 as it is released by Microsoft. InfoBadge is available immediately for you to use on Web, desktop and mobile targets.
Yet again, we’ve spent a significant portion of this release improving performance. Some fixes apply to all platforms, some to Android and others to WebAssembly.
On Android, many of the changes allowed us to bring AOT start-up time improvements of 57%. For example, some changes related to the removal of JITing during start-up enhanced the time by around 300ms on an x64 emulator.
We were able to perform those changes thanks to the new .NET 6 dotnet-trace profiler compatibility with Android. You can use it to profile your applications by following this guide.
On WebAssembly, we’ve made other changes to improve the PG-AOT runtime performance to take this .NET Runtime issue. In short, any function which contains a try/catch/finally block will get forced to run using the .NET interpreter, making those significantly slower. We’ve been making changes to avoid these patterns in Uno Platform’s hot paths, so applications perform better until the .NET Runtime issue is fixed.
As always, thanks to our community contributors for enhancing the platform with us.
You can find the complete list of updates in our release notes on GitHub.
For better discoverability and ease of adopting Uno we have brushed up and published various working examples for Uno Platform, ranging from small single-feature samples to larger showcase applications. You can now easily see how to implement the Android Custom Camera, Authentication with OpenID Connect (OIDC), SignalR, SQLite, Windows Community Toolkit DataGrid and more. Check it all out at docs.platform.uno and expect many more to come in the future.
To upgrade to latest release of Uno Platform, please update your packages to 3.10 via your Visual Studio NuGet package manager! If you are new to Uno Platform, the best way to get started is to follow our official getting started guide. (5 min to complete)
Jerome Laban, CTO, Uno Platform