Simple, proof of concept project using newer .NET technologies to build a Desktop UI with a windows background service worker. Installer project included for easy deployment.
git clone https://github.com/enda-mullally/MyDemo.git
cd MyDemoEnsure you have:
- .NET 9.0 SDK
- Visual Studio 2022 with Windows App SDK 1.7 and WinUI 3 workloads
- InnoSetup installed locally
Restore NuGet packages:
dotnet restoredotnet build -c Releasedotnet run -c Release --project src/MyDemoAn installer package has been created using Inno Setup. To build the installer (currently manual):
- Right click on MyDemo.Service and Publish using the win-x64 profile. Ensure the 'Produce single file' option is selected in File publishing options.
- Right click on MyDemo.UI and Publish using the win-x64 profile. Ensure the 'Produce single file' option is selected in File publishing options.
- Open the MyDemo.Installer.iss file in InnoSetup. Compile the project. Once above steps are performed Inno will pick upp the installation package files.
- The Installer can be found in the Mydemo.Installer
- Run the Installer locally, the background service will be installed and started the desktop UI (My Demo) will be available.
- The app can subsequently be launched via Start Menu or desktop shortcut.
- .NET 9.0 + Windows App SDK 1.7 (WinUI 3) for modern desktop UI.
- MVVM pattern: Clearly separated Models, Views (WinUI 3), and ViewModels via
MvvmToolkit. - Background service worker
MyDemo.Service.exe - Background service worked The background service will issue a request for a google search (no parsing of results [CAPTCHA CHALLENGE!]), just a request. The google serivce https certificate is validated by the background service.
- Desktop UI
MyDemo.UI.exe - The Desktop UI communicates with the background service (via a http localhost api (kestrel) on port 50580.
- TinyIPC is implemented to provide simple real-time feedback messages
- Resilience: HTTP calls are wrapped with Polly policies—retry, timeout, fallback.
- Single-entry installer: All binaries and resources bundled via Inno Setup.
- UI Uses
AppWindowandTitleBarAPIs provided by WinAppSDK 1.7.
- Windows App SDK 1.7 (WinUI 3) – Provides modern UI components and APIs, including
- .NET 9.0 SDK – Latest C# runtime/framework powering the app.
AppWindow,TitleBar, andCameraCaptureUI. - Inno Setup – Builds a Windows
.exeinstaller that bundles the application. - Polly – For retry, timeout, and fallback policies around external calls.
- CommunityToolkit.Mvvm (MvvmToolkit) – Lightweight MVVM helpers:
ObservableObject,RelayCommand, etc. - Use of Microsoft.Extensions.DependencyInjection for IoC/DI.
Installer
Service
UI






