Styling Controls for Windows Apps

One of the things that we take for granted when using applications that have been designed for Windows is the subtle cues that exist for when you’re using the mouse and/or keyboards. For example when you mouse over a button, or an item in a list, the background color changes slightly. Similarly when you use … Read more

Xamarin.Forms, .NET Maui and the Uno Platform

The .NET Maui team at Microsoft recently dropped Release Candidate 1, so I thought it worth taking a quick look at how it compares to both it’s predecessor, Xamarin.Forms, and the Uno Platform, which is arguably the market leader for building multi-platform application with .NET. If you missed the announcement by Microsoft, here’s a tweet … Read more

Tutorial: Hosting Microsoft Orleans Application on Azure App Service with Cosmos DB

This post is going to wrap up the tutorial series on building a Hello World application using Microsoft Orleans. We’re going to be publishing the application to Azure with the Silo and Services being pushed to an Azure App Service, and linked via a Cosmos DB storage. If you want to check out the first … Read more

UI Testing for WASM (WebAssembly) with the Uno Platform

One of the guilty truths of software development is that despite our best efforts we never write enough tests, and seldom do we write enough automated tests. This isn’t entirely our fault because for some reason testing frameworks, particularly those for UI testing, always seem to be an after thought. In this post we’re going … Read more

Tutorial: Using Azure Table Storage or Azure Cosmos DB with Microsoft Orleans

In my previous post we looked at building a super-basic application that leverages Microsoft Orleans to host an instance (grain) of the IHelloWorld interface in a silo that can be invoked remotely. Unfortunately, whilst this was enough to get everything up and running, the configuration we used will only work in development. In this post … Read more

Tutorial: Hello World with Microsoft Orleans

This topic is a bit of a divergence from regular content regarding building mobile, desktop and web apps using cross platform technologies like Uno and Flutter. However, you shouldn’t underestimate the complexity of building scalable backend services to support mobile applications. Whilst this post will be an introductory post on gettting started with Microsoft Orleans, … Read more

Build and Deploy an Uno Application for iOS, Android, UWP and WASM from Azure DevOps and Pipeline Templates

Developing cross platform applications, targeting platforms such as Android, iOS, Windows and Web, is becoming progressively easier. As .NET developers, one of the leading technologies for building cross platform apps is the Uno platform. Whilst Visual Studio, and the corresponding Uno solution templates, make it easy to create a new Uno application, setting up a … Read more

Contributing to Open Source Projects

I was going through some old notes and came across some notes from a brainstorming session around contributing to open source projects. With all the different apps that we’ve worked on over the years, there wouldn’t be any that didn’t involve at least one open source project. Whether it be a framework project, like Mvvmcross, … Read more

Control the Window of your WinForms, WPF or Windows UI (WinUI) app using the Windows App SDK

Code sample for this post is on GitHub: AppWindowSample One of the more significant differences between building apps for mobile devices, such as iOS and Android, and desktop pcs (Windows or Mac) is the concept of windows. On a mobile device, your app typically runs full screen, or perhaps split screen on some devices, so … Read more

Packaged, Unpackaged and Self-Contained WinUI 3 Apps with the Windows App Sdk

As we get progressively closer to the v1 release of the Windows App Sdk I thought it worth looking into the different deployment/packaging options you have. In this post we’re going to look at the startup logic for a WinUI 3 Desktop application and discuss how this relates to the different packaging options that are … Read more

Debugging Android Applications with the Windows Subsystem for Android

As part of the announcement of Windows 11 earlier this year, Microsoft touted the ability to run Android applications on Windows. Recently this feature was made available via the Beta channel of the Windows Insider program. In this post I’m going to step through setting up the Windows Subsystem for Android (WSA), in order to … Read more

Getting Started with the Windows App SDK (Preview 2)

As we get closer to the first release of the Windows App SDK, Microsoft has started shipping preview releases. Whilst it’s not clear what “preview” means versus “experimental”, it does appear that the move to shipping releases via the preview channel indicates that we’re getting very close to the v1 stable release. In this post … Read more

Using the Windows App SDK Resource Manager (MRT Core) in Unpackaged Win32 (WinForms/WPF) App.

As a UWP developer I relied heavily on the framework to deal with managing application resources such as images and string literals. You might think this is quite simple as images are just files that are packaged with your app and strings can just be put in a constants file. Where this all gets complicated … Read more

Custom Validation Attributes and Multi-Language Resource Loading for Validation with INotifyDataErrorInfo for XAML Applications (UWP, WinUI, Uno)

I think this will be the last in the series of posts covering validation using the INotifyDataErrorInfo interface, which can be used to expose validation error messages directly in your XAML. In this post we’re going to look at adding custom validation using both the CustomValidationAttribute and by creating our own ValidationAttribute. We’ll also look … Read more

Customising Error Messages with INotifyDataErrorInfo Validation for XAML Applications (UWP, WinUI, Uno)

In my previous post, Adding Validation to a XAML Control Using INotifyDataErrorInfo, I walked through adding validation to a view model using the INotifyDataErrorInfo interface and the Community Toolkit. This post will pick up where that post left off and look at how you can customise the error message that gets displayed. This will improve … Read more

Adding Validation to a XAML Control Using INotifyDataErrorInfo and the CommunityToolkit for WinUI, WPF, UWP and Uno

In my previous post on Building a XAML UserControl I made use of the CommunityToolkit.Mvvm (formerly Microsoft.Toolkit.Mvvm) NuGet package to provide the implementation of INotifyPropertyChanged used to data bind properties of our view model to the XAML controls. In this post we’re going to again use the community toolkit but this time we’re going to … Read more

Building a XAML UserControl for WinUI, UWP, WPF or Xamarin.Forms (.NET MAUI)

One of the powerful aspects of any XAML platform is the ability to define your own controls. In this post we’re going to look at building a user control that allows you to reuse chunks of your user experience. It doesn’t matter whether you’re using UWP, WinUI, Xamarin.Forms (.NET Maui) or the Uno Platform, the … Read more

Camera Preview Control for WinUI, UWP and Uno (iOS & Android) Applications

The Windows Community Toolkit provides a limited feature camera preview control for both UWP and WinUI but this doesn’t help if you want to build a cross platform application with the Uno Platform. In this post I wanted to share the very, very, very early version of a CameraPreview control for Uno. Initial support will … Read more

XAML Live Preview and the Future of Designers for App Development

Earlier this year I shared a post, Visual Designer, Hot Reload and Beyond, where I talked about how I thought the future of designers would evolve. Looks like I preempted a new feature that’s coming to Visual Studio 2022 called XAML Live Preview. Currently this is in preview for WPF applications but you can imagine … Read more

I am a Windows App Developer

With the recent excitement surrounding the announcement of Windows 11, there’s renewed interest in developing apps for the Windows platform. In this post we’re going to celebrate what it means to be a Windows App Developer, regardless of what framework or technology you chose. It’s not going to be an exhaustive list of options but … Read more