DEV Community

rt2800
rt2800

Posted on

First step towards Blazor goodness

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

I will discuss more details about blazor in future articles

Discussion (0)