Adding Uno.Extensions to a WinUI Multi-Platform Uno Application

This post will be the first in a series of posts talking about Uno.Extensions, a set of libraries that the Uno team have been working on to simplify common application scenarios and make it quicker and easier to build robust multi-platform applications using Uno Platform. Follow Along with the Source Code Before we get started with the Uno.Extensions, we’re going to go ahead and create a new application to work with. However, I first want to unpick a topic that can be quite confusing for developers who aren’t familiar with the UWP/WinUI + Xamarin/Maui ecosystem, which is the different flavors of the Uno Platform. Until recently, there was one flavor of Uno, which was based on UWP and used the UWP/WinRT APIs as the basis for building applications for Xamarin.Android and Xamarin.iOS. However, Microsoft is making some substantial changes to the mobile ecosystem as part of the .NET Maui project. These include switching to SDK style projects, combining the various platforms into a single project and of course converging on .NET 6. Essentially this is a breaking change which will require most application code and libraries to be adapted (unless they were .netstandard 2.0 only). This led to the introduction of Uno

Recent UWP & .NET 5, .NET 6 News and Uno Platform Plans

You might have caught the news that Microsoft will not invest in moving UWP to .NET5/6. Naturally this raised questions about how Uno Platform is affected, especially as Uno Platform also ships in lockstep with .NET.   The short answer is – this news does not change anything for our users as Uno Platform has been architected to support both UWP as well as WinUI 2.x / 3. We intend to continue this support for as long as these are supported platforms at Microsoft as it is straightforward and automatic for us to support both. For the long answer – the important part is to understand what UWP is. UWP is a combination of an app model with isolation (the sandbox) and APIs (WinUI+WinRT). Uno Platform has been all about implementing the APIs, while leaving the app model to the underlying platform.   If you’re running an Uno Platform app on iOS, Android or the Web with WebAssembly, the app will need to play along with the sandbox that the system provides.  Uno supports both the Windows.UI.Xaml (a.k.a WUX, bundled with UWP) and Microsoft.UI.Xaml (a.k.a MUX available in WinUI 2.x and WinUI 3/WinAppSDK). Uno provides support for those through the Uno.UI.* and Uno.WinUI.* NuGet packages respectively, and are built from the same source code.  If you’d like to move from WUX (UWP) to MUX (WinUI 3), and also want to take advantage of

Launch 2021– community contest for best WinUI, UWP and Uno Platform applications

The Launch Competition brings together Windows developer community in friendly competition and serves as a platform for launching and updating their Windows applications. This annual event is hosted by the community behind UWP Community Discord. We are proud to sponsor the prizes for this year’s competition and help Launch evolve further. This year’s event promises to be bigger than ever and it has just (re) opened its doors for submissions! Categories: In launch 2021 you will be able to enter two categories: Windows Category: New and refreshed Windows applications built by UWP and WinUI. Multi-platform Category: New and refreshed applications built for Windows AND also extended to at least one more additional platform by using Uno Platform. Any additional platform Uno supports is welcome -Web, macOS, Linux, iOS or Android. Prizes: In each of the categories you will be able to win: 3rd prize – Raspberry Pi 4 Starter PRO Kit 2nd prize – Bose Noise Cancelling Headphones 1st prize – DJI Drone with 4K Camera Additionally, every participant in multi-platform category will receive Uno Platform t-shirt Timeline: May 24th – Registration Ends Aug 23rd – Coding ends / Application entries finalized. Aug 23 – August 30th – Judging period

Porting the Contoso UWP showcase application to Uno Platform

Connor Park, a Microsoft MVP and blogger from Korea recently ported the Contoso showcase application from being desktop-only, UWP application to a cross-platform application using UWP and Uno Platform. The source code is available in GitHub for you to try and learn from it. Equally importantly, Connor took the time to capture lessons learned during the port in order to help all others wishing to move their UWP desktop applications to Web, macOS, Linux, iOS and Android. Introduction Year 2020 will be remembered as a year which radically ‘promoted’ work from home. The COVID-19 virus transformed the workforce trends from being ‘mobile-first’ in the past few years, more towards ‘remote-first’. The distinction is subtle, but important. In the future more emphasis will be put on rich client applications as the workforce is home-bound, without much travel needed. Therefore it is important for us as software developers to denote this shift in workforce trends and align our development platform priorities. The cross-platform development environments that run on PCs but also on various mobile devices, which in addition to productivity give you ability to control every pixel on any device, will excel further. Uno Platform, first unveiled in May 2018, is in

UWP, WinUI and Uno Platform get Prism support thanks to Uno team OSS Contribution

We are pleased to announce that Uno Platform team has provided the initial support for the Prism library.   Background The Prism Library was initially created by Microsoft’s Patterns and Practices team in 2008 and had grown into a mature set of guidance that allows developers to use proven patterns and development practices to create XAML based applications. In 2015, as Microsoft forged more into the world of open source, the Prism library was taken over by community champions and has been evolved since. Currently the initiative is led by Brian Lagunas and Dan Siegel, both Microsoft MVPs. Fast forward to 2020 One of the most requested improvements to Prism has been support for UWP (and future WinUI) with hundreds of conversations on the topic were had on twitter, email and forums. However, this was a behemoth task for the sole two main maintainers of the library. As Uno Platform has been championing UWP/WinUI on a mission to take WinUI cross-platform to iOS, Android, WebAssembly and macOS, our team stepped up to the plate and created the initial support. Uno Team is committed to providing ongoing support to the library. A bit about implementation With this contribution, the Prism supported

Migrating the Silverlight Toolkit TreeView control to UWP and the Uno Platform

You can find the code of the TreeView for this article in the Uno.UI.Toolkit.SLrepository, in which we will add new controls and accept contributions for controls as they are made available. In this blog post series, we’re going to cover the migration of the code for the Silverlight Toolkit TreeView control TreeView control to UWP and the Uno Platform, a control widely used in many lines of business applications still in use today. This includes parts of the features that may or may not work initially, as well as modifications that will have to be made in the Uno Platform to conform to UWP if required. While the Uno Platform includes all the APIs of the Spring Creators Update (17134), many of these APIs are not implemented yet and there may be some that are used by the Silverlight TreeView control. Also, the point of this exercise is to walk through a migration process from a Silverlight code base, as there is already an existing TreeView control API in UWP. As of the writing of this article, the UWP TreeView is not implemented in the Uno Platform and migrating this Silverlight control is not an option, as the APIs are significantly different and not directly compatible. Importing the Silverlight TreeView control source To migrate a control