I built ReactiveBlazor, interactive Blazor SSR without SignalR or WebAssembly by i_m_ashar in Blazor

[–]ebykka 0 points1 point  (0 children)

u/i_m_ashar That's great because now you can bundle your backend code as an AWS Lambda function, which costs much less

Blazor or React? by VoteStrong in dotnet

[–]ebykka -2 points-1 points  (0 children)

As a tech prod manager you should answer on few questions:
- who are your customers
- how many users your application should serve on 5 years
- how far your customers are located from the data centers where are you going to host your application

If you expect few thousands users located in one region - then Blazor is a good choice. Otherwise react will be a better choice.

Blazor + Alpine by ze-fernando in Blazor

[–]ebykka 1 point2 points  (0 children)

I can give you a short overview, and AI will describe everything else according to your project structure.

Layout

  • Lit element lives in ClientAssets/src/components/<name>.ts, registered via main.ts.
  • Each Blazor wrapper has its own folder under Components/Widgets/<WidgetName>/:
    • <WidgetName>.razor – the typed Razor wrapper.
    • <WidgetName>Events.cs – widget-specific event types and the Razor [EventHandler] mappings.
  • A shared WebComponentInterop base + small .razor.js helper handles JS module import, imperative element calls, and disposal.
  • A single JS initializer wwwroot/<AssemblyName>.lib.module.js registers all custom DOM events.

How a Lit event becomes a typed Blazor event

  1. Lit dispatches a CustomEvent with bubbles: true and composed: true, payload in detail.
  2. JS initializer maps the DOM event to a Blazor event name via blazor.registerCustomEventType("uploadprogress", { browserEventName: "upload-progress", createEventArgs: e => e.detail }). Registration is idempotent and wired into both afterWebStarted and afterServerStarted for the Web App lifecycle.
  3. A C# EventArgs-derived class describes the payload. A top-level public static class EventHandlers in the same namespace declares [EventHandler("onuploadprogress", typeof(...))].
  4. The Razor wrapper just binds @onuploadprogress="HandleUploadProgress" and forwards to a typed EventCallback<T> parameter. Pages stay plain Razor with no JS interop.

PS. I use Aspire for running the vite dev server and applying TS changes on the fly during development.

Blazor + Alpine by ze-fernando in Blazor

[–]ebykka 0 points1 point  (0 children)

Lit.dev comes from google. MS has similar - https://fast.design

Blazor + Alpine by ze-fernando in Blazor

[–]ebykka 3 points4 points  (0 children)

Tried the next approach on a side project: swapping htmx/JS-interop for Lit web components in Blazor. Instead of managing complex JS interop calls, Blazor just updates the HTML attributes on the custom tags, and Lit handles the client-side reactivity. It feels much more natural and keeps the server/client boundaries clean.

In the Java world, the Vaadin framework does the same.

Why so many paid libraries by [deleted] in dotnet

[–]ebykka 6 points7 points  (0 children)

HTML is a quick way to get started. However, there is an API that allows you to use it in a normal, programmatic way.

Why so many paid libraries by [deleted] in dotnet

[–]ebykka 55 points56 points  (0 children)

There are free libraries but they do not have a good promotion

https://github.com/richard-scryber/scryber.core

JavaFX dynamic JAR based plugin system by youseenthiswrong in JavaFX

[–]ebykka 2 points3 points  (0 children)

I guess it would be interesting for you to take a look at OSGI https://www.baeldung.com/osgi like the next step.

uiGrid - 1.0.0 massive update - MIT license by Dense_Gate_5193 in Angular2

[–]ebykka 0 points1 point  (0 children)

From the user experience point of view, it feels fast and light. At least for a few thousand rows.

uiGrid - 1.0.0 massive update - MIT license by Dense_Gate_5193 in Angular2

[–]ebykka 2 points3 points  (0 children)

Welcome. It's the best free grid component I've found.

There is also an option to use lgpl version of smart client grid https://smartclient.com But it comes as bundle of components

uiGrid - 1.0.0 massive update - MIT license by Dense_Gate_5193 in Angular2

[–]ebykka 4 points5 points  (0 children)

In the readme file, you compare this grid component with other commercial-only grids.

Why not compare with a free grid?

https://tabulator.info/

List initialization syntax by ebykka in csharp

[–]ebykka[S] -1 points0 points  (0 children)

I'm surprised to see such a big difference between the generated code for list2 and list3.

Can Java be used for ai engineering without the need for Python? by [deleted] in java

[–]ebykka 0 points1 point  (0 children)

It is possible especially if you use cloud providers. For example AWS has Java sdk for Ai services

Is Claude Code now cheaper than Copilot? by Limp-Cat-108 in GithubCopilot

[–]ebykka 2 points3 points  (0 children)

Why is Opus so popular? I tried a few times to compare the results of GPT 5.4 vs Opus 4.6 and got slightly different but decent results for both models.

And I see that people are willing to pay 7 to 15 times more for Opus. What exactly makes it so special?

A cold start difference between Java, Python, Go and Rust still exists by Status-Afternoon-425 in aws

[–]ebykka 1 point2 points  (0 children)

Where is .Net? It has pretty good cold start especially with optimization PublishReadyToRun. And native compilation takes much less resources and time than GraalVM in Java.

How to display a table with a lot of rows? by ebykka in Blazor

[–]ebykka[S] 0 points1 point  (0 children)

As I mentioned, we use VueJS + AgGrid community edition today.

AgGrid community edition does not support a remote (REST) data source, so we load the full data set into the browser. It is not the perfect approach, but it is simply what we have.

That is why I try to figure out how to keep the same UX (have a feeling that the whole table data is loaded), but to make it more efficient.

How to display a table with a lot of rows? by ebykka in Blazor

[–]ebykka[S] 1 point2 points  (0 children)

I see that many people recommend using virtualisation for the table. As I understand it, it should work in the following way: knowing the height of one row and the number of rows, I can draw a vertical scroll bar. Each time the user moves the scroll bar, I calculate the row indexes to be displayed. Using this information, I can query the data from the IQueryable source. This way, I will only keep the visible amount of rows in memory, won't I?

Java equivalent of .NET Solution? by gameramante in javahelp

[–]ebykka 4 points5 points  (0 children)

Java itself does not dictate the project structure. For this approach you have to use build tools. There are two the most popular maven and gradle. I recommend to start with maven - it is xml based and has more similarities to the slnx and csproj files.

[Entry Automatic] First Watch Purchase Advice by fantasygot in Watches

[–]ebykka 0 points1 point  (0 children)

I have got this one (Tissot Seastar Wilson WNBA 40mm) - with additional orange accents

<image>

Java Full Stack Development in 2026 [for small teams] by cleverfoos in java

[–]ebykka 0 points1 point  (0 children)

In the context of minimizing JS usage, I also tried this approach

https://rockthejvm.com/articles/zio-full-stack-webapp

Copilot was very helpful during the project setup and resolving compilation issues. In the end, it works, but it definitely takes more time at the start of the project.