Widlet — pet-проект про Server-Driven UI на Dart

Привет, Хабр. Меня зовут Карим, я Flutter разработчик уже 7 лет и последний месяц я делаю фреймворк для server-driven UI на Dart. Зачем еще один SDUI У всех реализаций, которые попадались мне на глаза, есть общая черта - собственный DSL. JSON-схемы, кастомные конфиги. Для каждого решения приходится учить новый язык. При этом Flutter-разработчики уже знают хороший язык описания UI. Он называется Flutter.

https://habr.com/ru/articles/1033978/

#sdui #wasm #flutter #dart #widlet #микрофронтенд #jsinterop

Widlet — pet-проект про Server-Driven UI на Dart

Привет, Хабр. Меня зовут Карим, я Flutter разработчик уже 7 лет и последний месяц я делаю фреймворк для server-driven UI на Dart. Репозиторий пока закрыт, но проект дошел до состояния, когда о нем...

Хабр
I added a sample page demonstrating how to use the AbortController and AbortSignal to cancel JS functions while releasing version 0.2.0 of Blazor.DOM to NuGet.
The new version also adapts to changes made to the IJSWrapper interface from Blazor.WebIDL to enforce that wrappers dispose of their dependent internal object and clarify whether a wrapper will dispose of its IJSObjectReferences.
#blazor #dotnet #jsinterop
Project: https://github.com/KristofferStrube/Blazor.DOM
Demo: https://kristofferstrube.github.io/Blazor.DOM/Aborting
GitHub - KristofferStrube/Blazor.DOM: A Blazor wrapper for the DOM browser API.

A Blazor wrapper for the DOM browser API. Contribute to KristofferStrube/Blazor.DOM development by creating an account on GitHub.

GitHub
So here we go: By using the standard Blazor JS interop, we can make a few assumptions about how we can write our Fable code so it can be consumed.
Blazor will be able to consume exported members in a JS file, which can be done easily by having public let bound members in fsharp modules
Once fable outputs the javascript we will have an exported member which then can be called by the Microsoft.JSInterop API surface

#dotnet #fsharp #fablecompiler #blazor #jsinterop
Has science gone too far? (note the async in the JS function is just to get a promise)

A simple F# service that keeps around a lazy module reference to avoid importing the module on every call

#dotnet #fsharp #wasm #jsinterop

Blogged: Typed exceptions for JSInterop in Blazor

In this article, we look at how the existing error-handling implementation for JSInterop is made in Blazor. We then look at how we can map the error types defined in the standard WebIDL specification to C# exceptions, and in the end, we show some examples of how to use this in practice when making JS invocations.

#Blazor #CSharp #JSInterop #dotnet

https://kristoffer-strube.dk/post/typed-exceptions-for-jsinterop-in-blazor/

Typed exceptions for JSInterop in Blazor - Kristoffer Strube’s Blog

In this article, we look at how the existing error-handling implementation for JSInterop is made in Blazor. We then look at how we can map the error types defined in the standard WebIDL specification to C# exceptions, and in the end, we show some examples of how to use this in practice when making JS invocations.

I've been working on adding typed exceptions to JSInterop in Blazor during the last couple of weeks. With this, we can know what type of error occurred and its message and not have every error be a JSException that simply just contained the stringified version of the JS exceptions.
I'm looking forward to adding this and other quality improvements to all my libraries soon. ✨🚀
#dotnet #blazor #csharp #webidl #jsinterop
Project: https://github.com/KristofferStrube/Blazor.WebIDL
Demo: https://kristofferstrube.github.io/Blazor.WebIDL/
GitHub - KristofferStrube/Blazor.WebIDL: A Blazor wrapper for types and interfaces used in and defined in the standard WebIDL specification.

A Blazor wrapper for types and interfaces used in and defined in the standard WebIDL specification. - KristofferStrube/Blazor.WebIDL

GitHub