Introduction

What & Why

In this post I am going to be demonstrating the creation and publication of a basic Photino application. In that application I will be using the 'out-of-the-box' Blazor Web App modified to use the MudBlazor controls.

What is Photono?

According to the Photino website, "Photino is a lightweight, open-source framework for building native, cross-platform desktop applications using web technologies like HTML, CSS, and JavaScript — all while leveraging the power of .NET and other natively compiled languages like C++, Java, or Go".

How it works

  • Photino wraps your web UI inside the OS’s built-in browser engine.
    • Windows: Chromium-based WebView2
    • macOS: Safari’s WKWebView
    • Linux: WebKitGTK+
  • This means you don’t need to bundle a full browser engine like Electron does — making apps smaller and faster.

Why use Photino?

For me, the key phrase in the above is 'desktop applications using web technologies'.

I recently wrote a Blazor application for sending out greetings emails. I hosted it on Azure Web Apps. It worked just fine, but there were two problems from my perspective:

  • Because I opted for the free Azure App Service (F1 see Azure App Service pricing) I ended up with the most unfriendly web address. (I may have missed something in the setup, as I haven't previously had this problem.) The F1 plan also excludes the possibility of buying/assigning a domain name to the app. The cheapest Azure App Service, at the time of writing, that allows a friendly domain name is about £7.00/month.
  • As a web application it requires authentication (I don't want anyone having access to the email addresses of my friends and contacts). If I want to allow members of my wider family to use the application the creation of an account for authentication is a barrier to them. An application that is self-contained and can be installed on individual computers would avoid this problem.

This is where Photino comes in.  It will allow me to use whatever Blazor skills I have to build a desktop app.

This isn't without risk. I might be putting effort into a framework that withers on the vine. (The documents currently state that Photino has been updated to .NET 6 - we are currently on .NET 9.) I might also find that my family are using older computers with "out of support" versions of Windows and that Photino won't work for them. But there is only one way to find out.

MudBlazor

I also want to try out MudBlazor - simply as an experiment...

Resources

Here are some resources I have come across that I might/will be using: