MMS • Edin Kapic
Article originally posted on InfoQ. Visit InfoQ
The Uno Platform has released its latest update, version 5.5, with new features, bug fixes and performance improvements. The new release aims to simplify and speed up the packaging and distribution of cross-platform desktop applications.
Uno platform is an alternative UI platform for building multi-device applications in C# and XAML. It was launched in 2018, after years of internal use by a Canadian company nventive. It allows developers to write applications for Windows, iOS, Android, WebAssembly, macOS and Linux. It is released under Apache 2.0 open-source license on GitHub.
A key focus of the 5.5 release is revamping of the desktop app packaging. In previous releases, Uno had simplified the packaging of mobile apps on iOS and Android, as well as web applications. However, the experience of packaging desktop apps on Windows, macOS and Linux was fragmentary, having to do manual steps for each of the platforms.
In the new release, the dotnet publish
command has been extended to detect the TFM (target framework moniker) in the Uno application and to generate executables in each platform format: ClickOnce for Windows, Snap packages for Linux, and .app packages for macOS. In the near future, Uno will support other packaging formats such as dmg, pkg or flatpack.
For example, the command to create an Linux Snap package is:
dotnet publish -f net8.0-desktop -p:SelfContained=true -p:PackageFormat=snap
The command to create an .app package for macOS is:
dotnet publish -f net8.0-desktop -r osx-arm64 -p:SelfContained=true -p:PackageFormat=app
Another big improvement is the replacement of a custom WebAssembly build process and its dependencies by the standard .NET 9 SDK. The WASM apps can now use build enhancements and targets, such as Hot Reload, incremental builds, AOT builds or direct VS Code support. The mobile and desktop apps were already moved to .NET 9 SDK in Uno 5.3.
For developers ready to upgrade to Uno Platform 5.5, a detailed migration guide has been provided.
In response to feedback from both enterprise clients and the broader community, the 5.5 release includes several notable enhancements aimed at making the platform more robust and accessible. Among these improvements are:
- WebView2 control is now available for WebAssembly apps
- New GLCanvasElement control for direct access to OpenGL 3D content with hardware acceleration, leveraging Silk.Net library
- In a similar fashion, new SKCanvasElement integrates with Skia Desktop hardware rendering pipeline, skipping the software generation that happened before
- The ComboBox control new supports IsEditable property for providing user-typed value in the control
The full list of changes for the 5.5 release is available on the UNO GitHub repository.
According to .NET developers’ discussions on social media, the main advantage of the Uno platform over MAUI or Xamarin is being the only cross-platform .NET framework to support writing WebAssembly and Linux applications in C# and XAML.