đź•“ 4 MINLet’s talk UI. …
With the release of Uno Platform 6.0, the platform has taken a significant leap forward in performance, developer experience, and rendering power. Featuring a unified Skia-based renderer and a new, more efficient hosting model, it’s the perfect time to upgrade your cross-platform .NET application and take advantage of these improvements.
This blog covers the most common migration path, as with any major leap forward, Uno Platform 6.0 includes some breaking changes. For a detailed overview of all changes and manual steps that may be needed, refer to the migration guide.
For the purpose of this blog, we assumes you’re starting with an existing Uno Platform 5.x application, which is the most common scenario for developers currently using Uno Platform.
It uses separate host builders for different platforms (SkiaHostBuilder
for Windows, UIApplication.Main
for iOS) and the default rendering pipelines.
Our goal is to update this app by:
UnoPlatformHostBuilder
. (*With the exception of Android, where we still use the NativeApplication and ApplicationActivity.)The first step is updating the Uno.Sdk. The easiest way is to update the version of the Uno.Sdk in your global.json. Â
To upgrade the Uno.Sdk, you can open the global.json
 file and update the <Uno.Sdk> property
 directly.
{
"msbuild-sdks": {
"Uno.Sdk": "6.0.110"
},
"sdk":{
"allowPrerelease": false
}
}
Alternatively, open your solution and check that your extension is up-to-date, and it will then detect if you’re on an older version and present a notification in the Solution Explorer:
“The Uno.Sdk 6.yy.zz update is available…”
Simply click the Update button and reload your project, the Uno.Sdk
property in your application’s main .csproj
file will be automatically updated.
You can find the latest stable version on the official Uno.Sdk NuGet page.
A core architectural improvement in Uno Platform 6 is the new, unified Application Host Builder. This provides a single, consistent way to initialize your application across all platforms (again with the exception of Android).
With the SDK updated, our next step is to align each platform’s entry point with the new host.
We’ll replace the legacy SkiaHostBuilder
in Program.cs
and switch to the new, faster Win32 rendering target, which removes the old WPF dependency.
// Before:
using Uno.UI.Runtime.Skia.Windows;
var host = new SkiaHostBuilder().UseWindows()...
// After:
using Uno.UI.Hosting;
var host = UnoPlatformHostBuilder.Create().UseWin32()...
On Apple platforms, we move away from UIApplication.Main
to the cleaner host builder pattern. This centralizes app configuration.
// Before:
UIApplication.Main(args, null, typeof(App));
// After:
var host = UnoPlatformHostBuilder.Create()
.App(() => new App())
.UseAppleUIKit()
.Build();
Similarly, the Wasm head is updated to use an async
Main method with the new host.
// Before:
Microsoft.UI.Xaml.Application.Start(_ => _app = new App());
// After:
var host = UnoPlatformHostBuilder.Create()...
await host.RunAsync();
With these changes, our application’s startup logic is now clean, modern, and consistent across all targets.
The migration is nearly complete.
The final step is to enable the new Skia rendering engine. This is done by adding a single line to your main .csproj
file.
SkiaRenderer;
With a final rebuild, your upgrade is complete! Your application is now powered by a more performant and modern foundation, ready to take full advantage of the latest innovations in Uno Platform 6.0.
With powerful new tools like Hot Design, a unified Skia rendering engine for pixel-perfect UI, and major performance enhancements with our latest Uno Platform 6.0 release, there’s never been a better time to start building your next .NET cross-platform app.
Start a new project: Ready to build something new? Get your environment set up and your first app running in minutes.
Explore Uno Chefs: Dive into our flagship reference app to see some of our UI controls and best-practice implementations.
Join the community: Share what you’re building and get your questions answered in our Discord server.
Tags: XAML, WPF, Xamarin, UWP, Silverlight, .NET, Windows, C#, XAML
Uno Platform
360 rue Saint-Jacques, suite G101,
Montréal, Québec, Canada
H2Y 1P5
USA/CANADA toll free: +1-877-237-0471
International: +1-514-312-6958
Uno Platform 5.2 LIVE Webinar – Today at 3 PM EST – Watch