Extensions: WinForms & WPF
Drop-in update UI built from Beep controls — one call gives any app an "update available" prompt with progress.
Two libraries, one API
| Package | Target | UI |
|---|---|---|
Beep.Installer.Extensions.Winform | net10.0-windows | UpdateDialog (a Form) from BeepLabel/BeepButton/BeepProgressBar. |
Beep.Installer.Extensions.WPF | net9.0-windows | UpdateWindow (a Window) from the Beep WPF controls (Material3 chrome). |
Both are pure presentation — all update logic stays in TheTechIdea.Beep.Updates, so the two UIs behave identically.
Use it — no DI required
// WinForms — from a "Check for updates" menu item:
await BeepUpdater.CheckAndPromptAsync(this, new UpdateSettings {
FeedUrl = "https://updates.example.com/stable/feed.json",
CurrentVersion = "1.2.0",
InstallRoot = Application.StartupPath
}, showWhenUpToDate: true);
// WPF — 'this' is the owner Window:
await BeepUpdater.CheckAndPromptAsync(this, updateService);
// quiet check just after the main window opens (never interrupts a launch):
await BeepUpdater.CheckOnStartupAsync(mainWindow, updateService);
With DI
services.AddBeepAppUpdatesWinform(); // or AddBeepAppUpdatesWpf();
// reads update-settings.json beside the app (stamped by the installer at build time)
var updates = provider.GetRequiredService<IAppUpdateService>();
await BeepUpdater.CheckOnStartupAsync(mainForm, updates);
CheckAndPromptAsync— checks, and shows the dialog/window when an app or module update is available.CheckOnStartupAsync— quiet variant for launch: prompts only when there's something to do, never surfaces errors or "up to date".UpdateDialog.ShowFor/UpdateWindow.ShowFor— show directly for a check you already ran.
The dialog reports the available version (delta vs full), applies the app update side-by-side plus any stale modules with live progress, and offers a restart when done.