This page gives a bit more information about the more recent projects that I have been working on
At the moment I am still mainly performing some freelance programming tasks for WDS, my former employer. I resigned from WDS in April 2026 (on good terms) and might do future freelance work for them if their funding permits.
I am also taking something of a sabbatical period, updating my knowledge of the more modern aspects of .NET Development and C# that have evolved recently e.g. new features of C# 14 and .NET 10.

As part of this training I am writing a model showcase app demonstrating the clean architecture principles. At the time of writing this paragraph (mid-June 2026) the project is not yet complete but well under way. The task includes implementing modern C# features and .NET capabilities across a backend API and a Blazor UI using EF Core, Aspire and a modern DevOps workflow. Interviewers are often keen to see source code examples from the candidate so this GitHub repository provides for that requirement (work in progress at this time): https://github.com/JonPerkinsCodework/showcase-app
The Mission Control app was written with the WinUI 3 framework and was the beginning of a full replacement for an earlier VB.Net version. This new version was being redeveloped to accommodate an intended new subscription‑based workflows within the company. Much new code was also written for the backend using ASP.NET Core, so the new front end was developed to accommodate the modern REST protocols in order to replace the legacy SOAP‑based Web Services. An additional purpose for the choice of WinUI - apart from looking modern for any visitors to the company offices - was to continue gaining experience with this technology for future external‑facing products.
The app is used by the small number of staff within the company and provides comprehensive management of customer accounts, and for managing the ownership of devices and software from the company's product range.
The earlier https://wds-global.com website for World Development Systems (aka WDS) was written about fifteen years ago (in ASP.NET using SOAP Web Services) and was badly in need of a complete modernisation so work started on this in early-2025 (among other tasks). I did originally look at using Wix.com but the difficulty of interfacing with the existing company customer database was restrictive so I chose the standard Microsoft stack.
The website is a phase 1, whereby a following phase 2 would have re-added the shopping cart and list of products which currently exist in separate (and older) websites. I might pick up phase 2 on a freelance basis at some time in the future.
The website itself is based on an off-the-shelf Bootstrap 5 template which I merged into a new Blazor project. The current application focuses on showcasing the two main practitioner products, including a marketing video that I made for each product. The website also includes the standard customer features of creating a new account, editing account details, address, additional contact details. The project uses contemporary claims‑based authentication and modern Blazor state‑management patterns. Part of the reason for a complete recode was that the next phase would also include a comprehensive addition of subscription-based services for which a lot of new server code had already been written.
Technologies used in this project also included Google reCAPTCHA, Cloudflare CDN, Polly resilience policies around database access, and Azure Storage Blobs for download of customer software.
The One System was my first foray into WinUI - in fact I started the project as UWP just a few weeks before Microsoft announced WinUI. I knew that development would take a couple of years (especially as I did other work within the company) so I recreated the project with WinUI as soon as I had the chance.
While the front end is WinUI, I also wrote a sizable backend Asp.Net Core server for the data exchange function, hosted on an Azure App Service plan. It was deemed possible at design time that we could have the app running around the world so I was thinking about the implications of hosting the backend on multiple Azure App Service instances in different regions, and I was careful to introduce idempotency into the insert and update processes. At present there is only one operational Azure node (Dublin) so international communication could certainly be error prone, so I used Polly to wrap the data access layer - adding retry policies and circuit breakers around transient SQL operations.
The backend data store is a regular Azure SQL database. It was a future intention to swap this to Azure Cosmos DB to better handle the global nature of the data updates.
I've included the marketing video that I assembled for The One System (apologies if the "woo-woo" aspect of the technology is not to your taste). It does show the main WinUI app running (please open to full-screen size for a better effect).