Skip to content
This repository was archived by the owner on Sep 17, 2025. It is now read-only.

enda-mullally/MyDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyDemo

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.

🛠️ Build & Run Instructions

1. Clone the repository

git clone https://github.com/enda-mullally/MyDemo.git
cd MyDemo

2. Install dependencies

Ensure 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 restore

3. Build the app

dotnet build -c Release

4. Run locally

dotnet run -c Release --project src/MyDemo

🖇️ Installer Build (Manual)

An installer package has been created using Inno Setup. To build the installer (currently manual):

  1. Right click on MyDemo.Service and Publish using the win-x64 profile. Ensure the 'Produce single file' option is selected in File publishing options.
  2. Right click on MyDemo.UI and Publish using the win-x64 profile. Ensure the 'Produce single file' option is selected in File publishing options.
  3. Open the MyDemo.Installer.iss file in InnoSetup. Compile the project. Once above steps are performed Inno will pick upp the installation package files.
  4. The Installer can be found in the Mydemo.Installer
  5. Run the Installer locally, the background service will be installed and started the desktop UI (My Demo) will be available.
  6. The app can subsequently be launched via Start Menu or desktop shortcut.

🏛️ Architecture & Design

  • .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 AppWindow and TitleBar APIs provided by WinAppSDK 1.7.

🛠️ Tools & Technologies Used

  • 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, and CameraCaptureUI.
  • Inno Setup – Builds a Windows .exe installer 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.

📸 Screenshots

Installer

Installer Screenshot 1

Installer Screenshot 2

Installer Screenshot 3

Service

Service Screenshot

UI

Main Screen Screenshot 1

Main Screen Screenshot 2

Main Screen Screenshot 3

About

MyDemo concept - Modern UI & Service app (with Installer) using WinUI 3

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published