• This repository has been archived on 05/Jun/2023
  • Stars
    star
    1,983
  • Rank 23,367 (Top 0.5 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created about 5 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

.NET Core library to open native OS windows containing web UI on Windows, Mac, and Linux. Experimental.

Important

I'm not directly maintaining or developing WebWindow currently or for the forseeable future. The primary reason is that it's mostly fulfilled its purpose, which is to inspire and kickstart serious efforts to make cross-platform hybrid desktop+web apps with .NET Core a reality. Read more at #86.

People who want to build real cross-platform hybrid desktop+web apps with .NET Core should consider the following alternatives:

  • Photino, which is based on this WebWindow project and is the successor to it. Photino is maintained by the team at CODE Magazine and the project's open source community. It supports Windows, Mac, and Linux, along with UIs built using either Blazor (for .NET Core) or any JavaScript-based framework.
  • Official support for Blazor hybrid desktop apps coming in .NET 6.

WebWindow

For information, see this blog post.

Usage instructions

Unless you want to change the WebWindow library itself, you do not need to build this repo yourself. If you just want to use it in an app, grab the prebuilt NuGet package or follow these 'hello world' example steps.

Samples

For samples, open the WebWindow.Samples.sln solution

These projects reference the prebuilt NuGet package so can be built without building the native code in this repo.

How to build this repo

If you want to build the WebWindow library itself, you will need:

  • Windows, Mac, or Linux
  • Node.js (because WebWindow.Blazor.JS includes TypeScript code, so the build process involves calling Node to perform a Webpack build)
  • If you're on Windows:
    • Use Visual Studio with C++ support enabled. You must build in x64 configuration (not AnyCPU, which is the default).
    • If things don't seem to be updating, try right-clicking one of the testassets projects and choose Rebuild to force it to rebuild the native assets.
  • If you're on macOS:
    • Install Xcode so that you have the whole gcc toolchain available on the command line.
    • From the repo root, run dotnet build src/WebWindow/WebWindow.csproj
    • Then you can cd testassets/HelloWorldApp and dotnet run
  • If you're on Linux (tested with Ubuntu 18.04):
    • Install dependencies: sudo apt-get update && sudo apt-get install libgtk-3-dev libwebkit2gtk-4.0-dev
    • From the repo root, run dotnet build src/WebWindow/WebWindow.csproj
    • Then you can cd testassets/HelloWorldApp and dotnet run
  • If you're on Windows Subsystem for Linux (WSL), then as well as the above, you will need a local X server (example setup).

More Repositories

1

CarChecker

A sample Blazor WebAssembly application that includes authentication, in-browser data storage, offline support, localization, responsive layouts, and more. For a video walkthrough, see this link:
C#
811
star
2

DotNetIsolator

A library for running isolated .NET runtimes inside .NET
C#
598
star
3

BlazeOrbital

Sample application for Blazor WebAssembly on .NET 6
C#
524
star
4

dotnet-wasi-sdk

Packages for building .NET projects as standalone WASI-compliant modules
C#
519
star
5

BlazorDesktop

TypeScript
286
star
6

BlazorInputFile

A file input component for Blazor applications
C#
251
star
7

presentation-2019-06-NDCOslo

NDC Oslo 2019
160
star
8

BlazorElectronExperiment.Sample

HTML
158
star
9

BlazorOnGitHubPages

A simple example of hosting a Blazor WebAssembly app on GitHub pages
HTML
105
star
10

BlazorUnitTestingPrototype

C#
93
star
11

presentation-2020-01-DotNetConf

80
star
12

wasm-component-sdk

Tooling for creating WebAssembly components from C#
C#
77
star
13

presentation-2019-10-NDCSydney

73
star
14

AudioBrowser

A media browser app using Blazor WebAssembly with .NET 7 and 8 features
C#
70
star
15

BlazorGrpcSamples

C#
61
star
16

StatefulReconnection

JavaScript
48
star
17

ProductsManager

Simple Blazor list/editor sample using .NET 7 features
JavaScript
46
star
18

MonacoRazor

A Blazor component that provides the Monaco code editor
HTML
46
star
19

presentation-2020-01-NdcBlazorComponentLibraries

Shell
46
star
20

PictureFixer

C#
44
star
21

presentation-2020-01-NDCLondon

43
star
22

BlazorComponentDemos

JavaScript
27
star
23

MyDotNet8PWA

Sample of a .NET 8 Blazor Web app configured to serve an offline-enabled Blazor PWA
HTML
24
star
24

aspnetcore-in-browser

HTML
23
star
25

presentation-2021-01-NDCLondon

22
star
26

GreenhouseMonitor

Sample application for ASP.NET Core on WASI
C#
21
star
27

RazorComponents.MaterialDesign

JavaScript
21
star
28

MinimalDotNetWasmNativeAOT

Small examples of .NET compiling to wasi-wasm via NativeAOT-LLVM
C#
15
star
29

il2wasm

Do not use
C
15
star
30

ghaction-rewrite-base-href

GitHub action to rewrite the base href in an HTML file
JavaScript
12
star
31

spiderlightning-dotnet

C
12
star
32

CircuitPersisterExample

Sample
HTML
9
star
33

RazorComponentsSentimentAnalysis

Example of combining Razor Components with ML.NET for realtime sentiment analysis while typing
C#
9
star
34

TemporaryBlazorWebNet8TemplateExperiments

Just to try out some different conventions and file structures
CSS
8
star
35

BlazorExtraLinking

Experiment with more linking on a Blazor app
HTML
6
star
36

blazor-benchmarks

JavaScript
5
star
37

AngularBasicTemplate

C#
5
star
38

CurrencyConverter

HTML
5
star
39

BlazorPerfTest

Scenarios to help define perf tuning goals
HTML
4
star
40

BlazorElectronExperiment.Packages

TypeScript
3
star
41

sample-with-caching

CSS
2
star
42

angular2-universal-patch

Updates angular2-universal to support Angular 2.3+. Will no longer be needed when Angular 4 is released.
JavaScript
2
star
43

SignalRFirefoxRepro

HTML
1
star
44

chunktest

HTML
1
star