Authored by S. Ravi, Technology Advisor
- Which backend language to use,
- Which tools have support for those languages,
- Which SPA (Single Page Application) framework to use in frontend Angular/Vue/React etc.
My recent presentation at Tech Bhubaneshwar was targeted to answer these very points, at the same time addressing ambiguities that exist around these questions.
- JS is not widely accepted because it's a dynamically typed language
- Less integration and feels more like stitching.
- Issues with browser support
- Moves too fast, with many choices for framework which is intimidating
Also, SPA’s are more expensive to maintain because:
- Both front-end and back-end teams need to be maintained
- Training to become a full stack developer and mastering both front-end and backend technologies is difficult
- Use of a different language than JS on the backend
- Duplicate business logic (validation) or just have server
- Lacks IDE/compiler help between backend models + front end making AJAX calls
- Using another tool (GraphQL, TypeScript/C# syncer, etc.)
Blazor framework has component-based architecture:
- Blazor Server: These apps are hosted on an ASP.NET Core server in ASP.NET Razor format. Remote clients act as a thin client, meaning that the bulk of the processing load is on the server. A client's web browser downloads a small page and updates its UI over a SignalR connection. Blazor Server was released as a part of .NET Core 3.
Why would you be interested in this?
- NET Core performance is ranked #7 on TechEmpower Framework Benchmarks It's 8x faster than Node, 1.5x faster than Netty (Java), 47x faster than Django (Python), 7x faster than Kotlin, etc.
- Share logic with existing .NET backend such as Validation logic and Models from Server when retrieving from the Client
- Consolidate frontend and backend teams under one language
Currently Blazor supports so many features mentioned in below Image:
You should use Blazor Server when:
- Creating a thin client application
- Using proprietary code which you don’t want to share with anyone
- Want to use full .Net Core runtime
- Microsoft Support
You should use Blazor Wasm when:
- Giving offline support to user or create a PWA (progressive Web App)
- Want a Zero Latency UI
The Microsoft team is currently working on .NET 5 and has plans to release Blazor WebAssembly in May 2020. Steve Sanderson team is working on framework to Desktop and Native mobile applications using Blazor.
More on Blazor,
Official Blazor Documentation:
Curated resources maintained by Blazor community: