As a learning activity, I wanted to work with Microsoft framework called Blazor (combination of two technologies, Browser and Razor). Blazor is based on W3C standard called "WebAssembly".
As per W3C, "WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications"
Looking at the formal description from W3C above, one can list following characteristics of wasm
- It is a binary instruction format for a virtual machine. Similar to single physical machine hosting multiple virtual machines(VMs), multiple wasm software modules can be hosted in single browser
- wasm is a portable target indicating any wasm module can run on multiple browsers (like chrome, firefox, edge) on multiple OSs without any modifications/recompilations
- wasm is target for compilation of high-level languages like C/C++/Rust, indicating developers can use any high-level language for development as long as it produces software module adhering to wasm binary instruction format
- wasm software modules can be run at client and server and this opens up possibilities for code sharing
Following are major features of Microsoft provided blazor framework.
- Component model for UI development using razor based syntax
- Routing, Forms and validations
- Dependency injection
- Javascript interop for exchanging data+messages from javascript to DOTNET and vice versa
- NET standard 2.0 compliant namespaces, APIs and services that allow code sharing between client and server
- Server-side rendering for SEO and quick first page load
- Mono based runtime to run software modules developed using DOTNET framework
- Ability to run on older (non-WebAssembly) browsers via asm.js
For details about Microsoft version of wasm and blazor, you can follow below articles and websites
- blazor-university: All things blazor
- Blazor server -vs- client comparison: Comparison between client side and server side blazor in simple language
I will discuss more details about blazor in future articles
Top comments (0)