I'm potentially the only one being skeptical. Don't get me wrong, it's nicely done (for an experiment), but we also did similar experiments several years ago. At the fundamental level such an approach works, but it brings several issues that are not addressed with it (in contrast to, e.g., Electron). The most pressing one being "I don't want any browser - I want a browser that I know is capable of doing what I want".
WebWindow, a cross-platform webview library for .NET Core
21–30 of 55 posts
Re: WebWindow, a cross-platform webview library for .NET Core
#22this is really interesting! i'm wondering if there's a variant of this project out there that still uses node/javascript, but similarly avoids the chromium packaging and leans on the OS's rendering engine.
Re: WebWindow, a cross-platform webview library for .NET Core
#23Has anyone experience with Blazor in production? I would like to jump into it but it still feels a little immature to me.
No but I agree, it seems a little risky. I would wait for the next generation of web assembly changes to come down the pipe before investing in this too heavily. Very interesting experiment though.
Of course this is still an experiment so it's very risky to use it, but it's cool and shows promise.
Edit: Looks like maybe this thread is talking about using Blazor at all instead of within the context of the post, but I what I said still applies so I'll leave it up.
Re: WebWindow, a cross-platform webview library for .NET Core
#24Re: WebWindow, a cross-platform webview library for .NET Core
#25Has anyone experience with Blazor in production? I would like to jump into it but it still feels a little immature to me.
Our long term plans (aka by end of 2020) are to rewrite all of our internal tooling from SPA (RiotJS) w/ JSON APIs to server-side Blazor. The principal motivations here are productivity gains. It is a LOT faster to write a razor view in C# with direct invocation of your business logic from view logic, than it is to determine what a clean JSON API contract looks like, write all the boilerplate for controllers, and then play the back-and-forth game between chrome devtools and visual studio with 2 separate debugging contexts. After you write your first LINQ .Where().Select() to populate a table in Blazor, you will truly understand what I am getting at in terms of productivity if you have ever tried to do the same sort of filter->map stuff in JS.
With Blazor, I only need to know C#, HTML, CSS and just enough JS to write a blazorhelper.js interop which reads and writes my session cookies. I set 1 breakpoint in visual studio and it gets hit when I press some button in the browser.
With SPA, I have to be at the top of my JS game, and also pull some SPA framework into my mental context which must then be shared with all of the other C# business logic in scope. I have to manage breakpoints in the browser as well as in visual studio. I have to deal with 10-100x the amount of JS code.
Additionally, we don't even want to move to client-side variants of Blazor for our use case. First request latency and security are the 2 largest motivators for us here. Server-side exposes precisely zero things to the client you didn't want to, as opposed to SPA which makes even unauthenticated clients download your entire application. Also, "the server" is substantially faster these days (even more so going into 2020 on AMD's warpath). For the number of concurrent clients we are anticipating, server-side Blazor is actually our best option in terms of UX.
I would be curious what aspect of Blazor feels immature to you. It is certainly a new(ish) thing, but the fundamental aspects of it (especially server-side mode) have been around for decades and microsoft has leveraged a lot of existing or otherwise proven ideas here. I would agree on the client-side aspect being "immature" relative to server-side, mostly due to WASM and the need to push a very large payload to the client upon first request.
Re: WebWindow, a cross-platform webview library for .NET Core
#26My biggest problem is that WKWebview on Mac just seems so slow compared to Chrome. I have a canvas in my application and it just doesn't seem to render as efficiently as it should or with ease as it does in Chrome. Does anyone experience similar issues?
Edit: Also check out devicePixelRatio, that might be causing the issue as well.
Re: WebWindow, a cross-platform webview library for .NET Core
#27This looks amazing - can you please add a license file so others can actually use it? (Hoping for MIT or if not then Apache 2.0 or BSD or whatever reflects your intent and preferences)
Re: WebWindow, a cross-platform webview library for .NET Core
#28My biggest problem is that WKWebview on Mac just seems so slow compared to Chrome. I have a canvas in my application and it just doesn't seem to render as efficiently as it should or with ease as it does in Chrome. Does anyone experience similar issues?
Re: WebWindow, a cross-platform webview library for .NET Core
#29I'm potentially the only one being skeptical. Don't get me wrong, it's nicely done (for an experiment), but we also did similar experiments several years ago. At the fundamental level such an approach works, but it brings several issues that are not addressed with it (in contrast to, e.g., Electron). The most pressing one being "I don't want any browser - I want a browser that I know is capable of doing what I want".
So most of these techniques used to have the problem that on Windows "any browser" was always "Internet Explorer"; but while I don't disagree that this is still an issue, it is much much much less of an issue now that Internet Explorer is Edge and Edge is Chromium (which I am not saying is a good state of affairs for the web as a whole, but makes this use case not fall as easily to this complaint).
Re: WebWindow, a cross-platform webview library for .NET Core
#30Alternatives: 1. Webview: https://github.com/zserge/webview 2. Lorca (Chrome): https://github.com/zserge/lorca 3. Carlo (js/Chrome): https://github.com/GoogleChromeLabs/carlo