Saving Data using Settings for Windows and Uno Platform Applications

Following on from the posts on Dependency Injection, Logging and Configuration, in this post we’re going to look at how data can be persisted between sessions using Settings within a Windows or Uno Platform application. This series makes use of Uno.Extensions in order to initialize the services that are required by the application. At the end of the … Read more

Configuration for Windows and Uno Platform Applications

Following on from Dependency Injection and Logging, in this post we’re going to configure the IHostBuilder to load and access configuration information within a Windows or Uno Platform application. We’ll pick up where we left off with the IHostBuilder setup to switch environments and configure logging. var builder = this.CreateBuilder(args) .Configure(host => host #if DEBUG … Read more

Logging for Windows and Uno Platform Applications

In my previous post I covered Dependency Injection for Windows and Uno Platform Applications which covered creating a new application and adding dependency injection using the Uno.Extensions which leverages the Microsoft Extensions IHostBuilder to create an IHost instance. In this post we’re going to adjust the IHostBuilder to setup Logging support. We’re going to start … Read more

Dependency Injection for Windows and Uno Platform Applications.

In the next few posts we’re going to be looking at the TubePlayer sample application for the Uno Platform. For this post we’re going to focus on using Uno.Extensions to add dependency injection to an Uno Platform application. Uno.Extensions builds on the awesome work that Microsoft has done with the Microsoft.Extensions that provides capabilities such … Read more

5x with the Uno Platform

Just over a week ago the Uno Platform released v5.0 which was another significant update, following the 4.10 release that included Adding .NET MAUI Controls to an Existing Uno-Platform Application, and some awesome support for shadows. In this post we’re going to do a wrap up of the release and look at trajectory of the platform. … Read more

Getting Started with WinGet Configuration

Recently, Microsoft announced the availability of DevHome with the goal of becoming the one stop shop for all things developer. Two important concepts that are available in the first iteration is DevDrive and WinGet Configuration. Both DevDrive and WinGet Configuration are actually features of Windows, the aim of DevHome is to provide a convenient way … Read more

Adding .NET MAUI Controls to an Existing Uno-Platform Application

DevExpress

In case you haven’t seen the release notes or the blog post the 4.10 release for the Uno Platform was pretty huge with a couple of big features shipping in this release. One of these features was .NET MAUI Embedding with allows any .NET MAUI Control to be embedded within an Uno Platform application. If … Read more

iOS Debugging on Windows – VS Code Extension

One of the things that has always impressed me was the ability to pair Visual Studio running on Windows to a Mac and be able to debug on either a real device, or on a simulator. There’s even a remote simulator which will display the simulator on Windows, meaning I never have to open, or … Read more

Windows Community Toolkit for UWP, WinUI and Uno

The Windows Community Toolkit is in pre-release of v8 – full details of their announcement here. With the new consolidated structure, there are packages for both UWP and WinUI but more importantly both sets of packages also target the Uno Platform. In this post we’re going to walk through adding one of the components from … Read more

Integrating ImageSharp with Windows and Uno Platform Applications

Earlier this week Six Labors announced the release of ImageSharp.Drawing v1.0 and it made me wonder whether this could be used as an alternative to Skia for controls that want to do custom rendering in a Windows, or multi-platform Uno Platform, application. For Skia there are already Uno (which includes Windows/WinUI) views (see source here) … Read more

Hot Reload in Windows Applications

In a previous post on the topic of hot reload I discussed using the CreateNewOnMetadataUpdate attribute to force updating of entire classes, rather than patching existing types. This makes hot reload more resilient but does require additional logic in order to apply the newly created types. In this post we’re going to walk through the … Read more

XAML Based Navigation in Windows and Multi-Platform Applications with Uno.Extensions

One of the more complex parts of building an application is getting navigation to work. In a Windows application (or in a multi-platform application using the Uno Platform) you can easily navigate between pages using Frame.Navigate and Frame.GoBack but what if you want to use a more complex navigation structure like tabs or a NavigationView. … Read more

Feeds in MVUX

In the past three posts (Getting Started, Comparison with MVVM and Incremental Loading) I’ve talked about the use of Model-View-Update-eXtended (MVUX). In this post we’re going look at feeds, which is one of the key components of MVUX. What’s a Feed In simple terms, a feed represents a stream of values, much like an Observable … Read more

Incremental Loading (Pagination) with MVVM and MVUX

In my first post in this sequence on MVVM and MVUX we built out a simple application that searched movies in The Mobile Database (TMDB) using the text entered to match against the movie title. What’s interesting about the TMDB api is that the search results are actually paginated with the initial request only returning … Read more

Comparing MVVM and MVUX for building a Multi-Platform Application using .NET, C# and XAML with the Uno Platform

The purpose of this post is two fold, firstly to provide an introduction to Model-View-Update-eXtended (MVUX), as developed by the Uno Platform, and secondly to provide a comparison to the more traditional Model-View-ViewModel (MVVM) approach to building XAML-based applications. In order to do this, we’ll first walk through building a simple MVVM based application where … Read more

Enhancing .NET Hot Reload with CreateNewOnMetadataUpdate, MetadataUpdateHandler and MetadataUpdateOriginalType Attributes

With each update to the .NET SDK and Visual Studio the support for Hot Reload improves. Hot Reload is the ability to make changes to your running application without having to restart and it can dramatically improve developer productivity, when it works. In this post we’re going to look at a simple example of where … Read more