Last week, Uno Platform released the 5.2 version, its latest update with a flagship feature regarding the Single Project solution. This solution, as reported, empowers developers with a unified approach across 9 platform targets, mobile, web, desktop, and embedded applications.
The 5.2 release introduces other enhancements also, including upgraded Skia renderers for improved performance and simplicity, multi-window support, Uno.SDK feature improvements, and compatibility with .NET 9 Preview.
As reported, the new .NET Single Project within this release unifies all platform targets—iOS, Android, Windows App SDK, Mac Catalyst, WebAssembly, Skia/Windows, Skia/Linux/X11, Skia/Linux/Framebuffer, and Skia/macOS—into a Single Project structure through an updated project template.
(Project structure in Visual Studio before and after 5.2 release, Source: Uno Platform Blog)
This new template structure significantly reduces build times; the Uno Platform team states the following:
Using this single template structure, when compared to the previous template, the build time is effectively reduced by up to 3 times by only having the debugged target being built. No more tricks needed to filter active target frameworks!
Furthermore, Single Project support consolidates all desktop Skia-based targets into the new desktop target framework, simplifying as explained, deployment complexities associated with multiple platform-specific project heads. This consolidation delivers a single output package capable of dynamically selecting the appropriate backend for the current platform.
Other additions are also available, and one of the key additions in this release includes community-asked, multi-window support for desktop applications, enabling the display of secondary windows and enabling the creation of more versatile applications.
The latest Single Project feature has been rolled out for Visual Studio and VS Code users, although its full implementation for JetBrains Rider users remains incomplete. Notably, JetBrains Rider currently does not recognize the net8.0-browserwasm and net8.0-desktop target frameworks.
The community response to the release was mostly positive, with the user Peter Morris asking an interesting question about Blazor:
Does it actually compile to WASM, or run interpreted like Blazor?
In response, Jérôme Laban, CTO at Uno Platform, clarified that Uno Platform offers both compilations to WebAssembly (WASM) and interpretation, akin to Blazor. Additionally, Laban highlighted the presence of an additional profile-guided Ahead-of-Time (AOT) mode, a feature not yet available in Blazor.
The ensuing discussion within the thread was dynamic, featuring a rich exchange of viewpoints and information from both the CTO and CEO of Uno Platform. Readers are encouraged to delve into the thread for further insights.
Additionally, Uno Platform NuGet packages in version 5.2 utilize a new code signing certificate. Users relying on signature validation should ensure the integration of the new certificate into their toolchain.
The release also brings improvements to the user experience of Getting Started Wizard, with new options in the wizard and dotnet new templates making the creation of .NET 9 Preview apps easier using the latest Preview 3.
Users can transition to .NET 9 by leveraging the Uno.Check tool with the `--pre-major` command line parameter and utilise the Visual Studio Wizard to initiate projects with .NET 9 compatibility.
Lastly, developers interested in learning more about the Uno Platform can visit the official website for very detailed documentation which contains how-tos and tutorials about the platform, alongside with official GitHub repository and a more detailed release note is available at the release changelog.