Deep dive – Uno Platform Template Wizard – Extensions, Application and Theme

This is the last post in the sequence talking about the new wizard that’s available for creating multi-platform applications with .NET and the Windows App SDK (WinUI), leveraging the Uno Platform (previously herehere, here and here). In this post we’ll look at the last three sections: Extensions, Application and Theme.

Extensions

The Extensions section is broken down into a couple of sub-sections. The first is a series of features you might want to include in your application. Most of these are actually contingent on the first features, which is Dependency Injection. This is based on the Microsoft.Extensions.DependencyInjection package and is the foundation for accessing the other features such as configuration, http and localization.

The next sub-section is for configuring how navigation will work. Regions are used by Uno.Extensions.Navigation to define areas within the application where views/pages can be shown (ie navigated to). This is in contrast to the Blank option, which sets up the default Frame based navigation that’s available for WinUI and Uno Platform applications.

The last sub-section is for logging. Console logging sets up platform specific loggers, making it possible to debug issues relating to the Uno Platform. The Default option leverages dependency injection to inject an ILogger into any entity it creates. This is also the case with the Serilog option. However, this option also writes to any of the serilog sinks and can be configured via appsettings.json

Application

The Application section allows the Application Id to be set. This is used in a number of places, such as the Bundle Id for an iOS application.

Theme

Up last is the Theme section which allows for either Material or Fluent design to be selected. Here’s an example a new application created with both the Material and Fluent themes.

Material

Fluent

And that’s the end of the quick lap around the new Uno Platform wizard. Don’t forget that you can use this to build applications for any platform and don’t worry if you don’t select every option up front, you can easily add features to your application as you go along.

Leave a comment