PeakSWC.RemoteBlazorWebView.Wpf
6.0.21-preview7
See the version list below for details.
dotnet add package PeakSWC.RemoteBlazorWebView.Wpf --version 6.0.21-preview7
NuGet\Install-Package PeakSWC.RemoteBlazorWebView.Wpf -Version 6.0.21-preview7
<PackageReference Include="PeakSWC.RemoteBlazorWebView.Wpf" Version="6.0.21-preview7" />
paket add PeakSWC.RemoteBlazorWebView.Wpf --version 6.0.21-preview7
#r "nuget: PeakSWC.RemoteBlazorWebView.Wpf, 6.0.21-preview7"
// Install PeakSWC.RemoteBlazorWebView.Wpf as a Cake Addin #addin nuget:?package=PeakSWC.RemoteBlazorWebView.Wpf&version=6.0.21-preview7&prerelease // Install PeakSWC.RemoteBlazorWebView.Wpf as a Cake Tool #tool nuget:?package=PeakSWC.RemoteBlazorWebView.Wpf&version=6.0.21-preview7&prerelease
RemoteBlazorWebViewTutorial
Microsoft has recently introduced two Blazor WebView Controls in .NET 6 Preview 3. One Blazor WebView control (Microsoft.AspNetCore.Components.WebView.Wpf) targets Windows Presentation Foundation (WPF) apps and the other (Microsoft.AspNetCore.Components.WebView.WindowsForms) targets Windows Form (WinForms) apps. The Microsoft controls allow developers to create user interfaces for desktop apps using Blazor web technology. The desktop apps using Blazor have the full feature set and performance of .NET 6 and are not contrained like a Blazor WebAssembly app.
The remoteable versions of the Blazor WebView Controls (PeakSWC.RemoteBlazorWebView.Wpf and PeakSWC.RemoteBlazorWebView.WindowsForms) act as a drop-in replacement for the Microsoft controls along with the ability to share the user interface over a secure connection to a public server using a web browser. This is accomplished by setting up a secure server (RemoteableWebWindowService) in the cloud and pointing your browser to it. With a couple of minimal changes you will be able to either run your app locally or remotely control your application.
Use Cases
The primary use case is to be able to share a desktop application controlling hardware with an external service technician. Typically, the application is behind a corporate firewall and is not easily accessed by the technician. The Remote Blazor controls allow the desktop application to be started in "Remote" mode which generates a unique Url for the technician to access the user interface.
Another use case is to be able to monitor data that is behind a firewall or on a private network without the cost and complexity to store the data externally. For example, if a brewer wanted to monitor fermentation data such as PH, Gravity, and Pressure they could build an app showing real-time graphical data using Blazor components and, with only a couple of changes, be able to view the user interface with a web browser from outside of the firewall.
How it works
RemoteBlazorWebView.Wpf has two modes of operation. In the first default mode, it works just like the Microsoft BlazorWebView Controls (see BlazorDesktopWPF). In the second mode, a url is specified on the control's properties. In this mode, all GUI interactions are sent to a server which can be accessed with a browser. Hosting the server (RemotableWebViewService.exe) in the cloud allows you to remotely control an application which is behind a firewall or does not have a static IP address.
Demo Quick Start
Install the RemotableWebViewService
dotnet tool update -g PeakSWC.RemoteableWebViewService --version 6.*-* --ignore-failed-sources
Start the server
RemoteableWebViewService
Open the RemoteBlazorWebViewTutorial.sln with Visual Studio
Run the Local Profile using the Run button
Make sure the RemoteBlazorWebViewTutorial.WppfApp is set as Startup Project
Next we will run the application remotely
Run the Remote Profile using the Run button
A main window will come up with a URL. Click on it
At this point the sample blazor app will be running in a web browser!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0-windows7.0 is compatible. net7.0-windows was computed. net8.0-windows was computed. |
-
net6.0-windows7.0
- Microsoft.AspNetCore.Components.WebView.Wpf (>= 6.0.100-preview.7.1345)
- PeakSWC.RemoteableWebView (>= 6.0.21-preview7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 96 | 11/14/2024 |
9.0.0-rc2 | 59 | 10/26/2024 |
9.0.0-preview7 | 229 | 8/19/2024 |
9.0.0-preview6 | 51 | 7/29/2024 |
9.0.0-preview5 | 71 | 6/23/2024 |
8.0.11 | 82 | 11/14/2024 |
8.0.10 | 409 | 10/10/2024 |
8.0.8 | 249 | 8/20/2024 |
8.0.7 | 101 | 7/29/2024 |
8.0.6 | 225 | 6/19/2024 |
8.0.4 | 125 | 6/19/2024 |
8.0.3 | 134 | 4/20/2024 |
8.0.2 | 623 | 2/23/2024 |
8.0.1 | 129 | 2/16/2024 |
8.0.0 | 194 | 12/30/2023 |
8.0.0-rc2 | 83 | 10/14/2023 |
8.0.0-preview5 | 103 | 6/15/2023 |
8.0.0-preview4 | 104 | 5/24/2023 |
8.0.0-preview3 | 113 | 4/21/2023 |
8.0.0-preview2 | 112 | 3/29/2023 |
7.0.16 | 142 | 2/25/2024 |
7.0.14 | 157 | 12/29/2023 |
7.0.12 | 270 | 10/14/2023 |
7.0.9 | 195 | 8/15/2023 |
7.0.7 | 212 | 6/14/2023 |
7.0.5 | 1,834 | 4/20/2023 |
7.0.4 | 348 | 3/24/2023 |
7.0.3 | 241 | 3/17/2023 |
7.0.2 | 326 | 1/29/2023 |
7.0.0 | 416 | 11/13/2022 |
7.0.0-rc1 | 132 | 10/9/2022 |
7.0.0-pre6 | 205 | 7/14/2022 |
7.0.0-pre5 | 214 | 7/2/2022 |
7.0.0-pre4 | 157 | 5/11/2022 |
6.3.9 | 701 | 2/11/2023 |
6.3.8 | 311 | 2/1/2023 |
6.3.7 | 300 | 1/31/2023 |
6.3.6 | 411 | 11/13/2022 |
6.3.5 | 446 | 10/11/2022 |
6.3.4 | 1,303 | 7/13/2022 |
6.3.3 | 654 | 7/3/2022 |
6.3.2 | 464 | 6/15/2022 |
6.3.1 | 681 | 5/25/2022 |
6.3.0 | 183 | 5/21/2022 |
6.2.0 | 215 | 5/8/2022 |
6.1.2-pre | 154 | 4/7/2022 |
6.1.1-pre | 484 | 2/19/2022 |
6.1.0-pre | 224 | 2/7/2022 |
6.0.38-pre | 177 | 2/1/2022 |
6.0.37-pre | 192 | 1/25/2022 |
6.0.36 | 254 | 1/4/2022 |
6.0.35 | 191 | 1/1/2022 |
6.0.34 | 175 | 12/30/2021 |
6.0.33 | 166 | 12/29/2021 |
6.0.32 | 245 | 12/12/2021 |
6.0.31 | 261 | 12/4/2021 |
6.0.30 | 774 | 12/3/2021 |
6.0.29 | 249 | 11/17/2021 |
6.0.28-rc2 | 221 | 10/14/2021 |
6.0.27-rc1 | 197 | 10/11/2021 |
6.0.26-rc1 | 156 | 10/7/2021 |
6.0.25-rc1 | 206 | 10/4/2021 |
6.0.24-rc1 | 239 | 10/1/2021 |
6.0.23-rc1 | 202 | 9/26/2021 |
6.0.22-rc1 | 187 | 9/15/2021 |
6.0.21-preview7 | 207 | 9/7/2021 |
6.0.20-preview7 | 187 | 8/26/2021 |
6.0.16-preview7 | 159 | 8/25/2021 |
6.0.15-preview7 | 182 | 8/13/2021 |
6.0.13-preview6 | 164 | 8/9/2021 |
6.0.12-preview6 | 234 | 8/1/2021 |
6.0.11-preview6 | 157 | 7/16/2021 |
6.0.10-preview5 | 285 | 7/10/2021 |
6.0.9-preview5 | 246 | 6/29/2021 |
6.0.8-preview5 | 246 | 6/22/2021 |
6.0.7-preview4 | 167 | 6/17/2021 |
6.0.6-preview4 | 161 | 6/1/2021 |
6.0.5-preview4 | 199 | 5/28/2021 |
6.0.4-preview4 | 199 | 5/28/2021 |
6.0.3-preview4 | 185 | 5/26/2021 |
6.0.2-preview3 | 157 | 5/26/2021 |
6.0.1-preview3 | 175 | 5/22/2021 |
0.1.7-pre | 253 | 5/25/2021 |
0.1.6-pre | 255 | 2/21/2021 |
0.1.4-pre | 390 | 11/1/2020 |