.NET Blazor

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • h5

    ๐Ÿš€ The next generation C# to JavaScript compiler

  • Or similar for c# with https://h5.rocks (disclaimer: author here)

  • BlazorDiffusionVue

    Blazor Diffusion with Server Rendering and Vue

  • I take the opposite view as a recent Blazor convert since .NET 8 that was just released.

    I was short on Blazor before .NET 8 and could only seriously recommend it for Internal Apps since the compromises for using either Server or WASM Interactivity had pretty poor UX for initial load of Intranet Apps.

    However that's changed in .NET 8 with Blazor Static Rendering which is now the default where you're effectively able to develop traditional Server Rendered Apps like Razor Pages/MVC but with Blazor's superior component model, advanced features like Streaming Rendering and its built-in Enhanced Navigation which gives simple Server Rendered App's SPA-like responsiveness without any of npm's build tool complexity, need to manage separate client routing or heavy client state, etc.

    Even better is that you no longer need to use Blazor Interactivity for any features, e.g. which we avoid in our "Blazor Vue" Tailwind template that progressively enhances statically rendered Blazor content with Vue.js. I cover this approach in detail in our ".NET 8's Best Blazor" [1] blog post.

    As it embraces the simplicity of "NoBuild" JavaScript Modules (i.e. instead of npm deps) it's now become my preferred approach for most Web Apps. Blazor Diffusion is an example App built using this template, which was originally developed in Blazor Server, deployed as WASM but now converted to "Blazor SSR + Vue", source code available from [2],

    https://blazordiffusion.com

    [1] https://servicestack.net/posts/net8-best-blazor

    [2] https://github.com/NetCoreApps/BlazorDiffusionVue

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • openapi-generator

    OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

  • Yep. For frontend use, I think https://www.npmjs.com/package/openapi-typescript is the most widely-used/well-regarded, though https://www.npmjs.com/package/orval seems to me to have some nicer features like react-query support.

    There are other options too, I'd just stay away from "_the_ openapi generator" (https://openapi-generator.tech/) which does a pretty poor job IMO.

    Disclaimer: I'm the founder of a company doing SDKs commercially, but we don't focus on the frontend right now, and our free plan is still in beta.

  • SharpKit

    C# to JavaScript Compiler

  • At the very end of the blogpost the author asks why not compile C# to JavaScript, like F# (Fable) does? The author thinks that would be the best solution overall, and is surprised it has not happened yet.

    In fact that has happened, see JSIL (http://jsil.org/, which compiles .NET bytecode to JS) and also SharpKit (https://github.com/SharpKit/SharpKit which is built on Roslyn).

    But this will not necessarily be any better than compiling to wasm. It avoids the .NET interpreter, which decreases the download, but it will still need to bundle a lot of library support code. And getting the language semantics exactly right - including features like C# finalizers which do not have direct support in JS - is tricky, unlike with wasm. And it won't benefit from the speed of the wasm implementation in AOT mode (which Blazor supports), which can be much faster than JS.

    Compiling to JS definitely still makes sense in some cases, but it isn't an idea that Microsoft or the .NET community has somehow overlooked. It has been done and it has its own tradeoffs.

  • sdk

    Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI (by dotnet)

  • I do the same.

    I have a small write-up here: https://chrlschn.dev/blog/2023/10/end-to-end-type-safety-wit...

    You get end-to-end type safety (even better once you connect it to EF Core since you get it all ways to your DB).

    With this setup with hot-reload (currently broken in .NET 8 [0]), productivity is really, really good. Like tRPC but with one of the most powerful ORMs out there right now.

    [0] https://github.com/dotnet/sdk/issues/36918

  • .NET Runtime

    .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

  • Wasm-GC isnโ€™t compatible with .NET allowing references to fields among other issues. So I doubt that it will help along

    https://github.com/dotnet/runtime/issues/82992

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts