Runic.Application.Desktop
0.6.0-preview.1
Runic.Application.Views.Desktop
Additional DetailsRenamed to Runic.Application.Views.Desktop in 0.7.0-preview.7. Namespaces are unchanged; replace the package reference.
See the version list below for details.
dotnet add package Runic.Application.Desktop --version 0.6.0-preview.1
NuGet\Install-Package Runic.Application.Desktop -Version 0.6.0-preview.1
<PackageReference Include="Runic.Application.Desktop" Version="0.6.0-preview.1" />
<PackageVersion Include="Runic.Application.Desktop" Version="0.6.0-preview.1" />
<PackageReference Include="Runic.Application.Desktop" />
paket add Runic.Application.Desktop --version 0.6.0-preview.1
#r "nuget: Runic.Application.Desktop, 0.6.0-preview.1"
#:package Runic.Application.Desktop@0.6.0-preview.1
#addin nuget:?package=Runic.Application.Desktop&version=0.6.0-preview.1&prerelease
#tool nuget:?package=Runic.Application.Desktop&version=0.6.0-preview.1&prerelease
Runic.Application.Desktop
Present Runic Windows and Views with Runic Desktop: native windows, embedded WebViews or browser presentations, and the Runic platform services.
dotnet add package Runic.Application.Desktop --prerelease
New projects can start with this host: dotnet new runic-app --host desktop.
In a project named MyApp:
using Microsoft.Extensions.DependencyInjection;
using MyApp; // the generated AddRunicViews()
using Runic.Application.Views;
using Runic.Application.Views.Desktop;
using Runic.Desktop;
var services = new ServiceCollection();
services.AddScoped<MainViewModel>();
services.AddRunicViews();
await using var provider = services.BuildServiceProvider();
await using var desktop = await DesktopHost.StartAsync(new DesktopHostOptions());
await using var window = await provider.OpenDesktopWindowAsync<MainWindow, MainViewModel>(
desktop,
new DesktopSurfaceOptions { RootFolder = Path.Combine(AppContext.BaseDirectory, "www"), Content = "index.html" },
host => new MainWindow(host),
new DesktopWindowOptions { Width = 800, Height = 600 });
window.Presentation.WaitForClose();
public sealed partial class MainWindow(DesktopBridgeWindow<MainViewModel> host)
: RunicWindow<MainViewModel>(host.ViewModel), IAsyncDisposable
{
public DesktopWindow Presentation => host.Presentation;
public ValueTask DisposeAsync() => host.DisposeAsync();
}
Entry points
OpenDesktopWindowAsync<TWindow, TViewModel>creates the Window's DI scope, resolves its ViewModel, opens aDesktopSurfaceand its presentation, and attaches the generated Bridge.DesktopBridgeWindow<TViewModel>owns that scope, surface, and attachment. It exposesViewModel,Surface,Presentation, andCloseAsync, which stops new operations and waits for accepted ones before releasing the scope.DesktopBridgeTransportconnects aDesktopSurfaceto aWindowContentSessiondirectly, for applications that compose a surface themselves.
The surface owns authenticated browser or embedded WebView sessions and
removable capability bindings; the application Window owns its ViewModel scope
and logical View lifetimes. DesktopHostOptions and DesktopWindowOptions
select the browser or embedded backend; the Runic Desktop guide lists the
native prerequisites for each platform.
The package's build targets copy runic-desktop-views.js into www/. Load
webui.js (served by the surface) and runic-desktop-views.js before the
generated client in index.html. The adapter uses the same host-neutral client
contract as the CS-WebUI adapter, and its build defaults match
Runic.Application.CsWebUi, so AddRunicViews() is generated in
<ProjectName>.RunicBridgeComposition.
The First Window on Runic Desktop example is a complete application. See the host selection guide to choose between this host and CS-WebUI.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Web.WebView2 (>= 1.0.4258.31)
- Runic.Application (= 0.6.0-preview.1)
- Runic.Desktop (= 0.6.0-preview.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Runic.Application.Desktop:
| Package | Downloads |
|---|---|
|
Runic.Application.Wpf
Optional WPF child WebView presentation for existing Runic ViewModels. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 0.7.0-preview.6 | 510 | 10/9/2026 | |
| 0.7.0-preview.5 | 161 | 10/9/2026 | |
| 0.7.0-preview.4 | 92 | 10/8/2026 | |
| 0.7.0-preview.3 | 81 | 10/8/2026 | |
| 0.7.0-preview.2 | 85 | 10/7/2026 | |
| 0.7.0-preview.1 | 86 | 10/7/2026 | |
| 0.6.0-preview.1 | 150 | 10/5/2026 | |
| 0.5.0-preview.3 | 78 | 10/1/2026 | |
| 0.5.0-preview.2 | 84 | 9/25/2026 | |
| 0.4.0-preview.1 | 82 | 9/22/2026 | |
| 0.3.0-preview.1 | 93 | 9/11/2026 | |
| 0.2.0-preview.1 | 106 | 9/9/2026 |