What is Blazor?
Blazor is a single-page app framework for building interactive client-side Web apps with .NET. Blazor uses open web standards without plugins or code transpilation. Blazor works in all modern web browsers, including mobile browsers. (from Microsoft ASP.NET Website)
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. (from WebAssembly official website)
WebAssemblyis an open web standard and supported in web browsers without plugins.
WebAssembly and .NET
When a Blazor app is built and run in a browser:
Razor, Blazor and Razor Components
(Update: In the most recently Blazor Preview releasing, Server Component was named back to Server-side Blazor, the client Blazor is named to Client-side Blazor - check here )
Razor is a template markup syntax for .NET, it is also a syntax for combining HTML markup with C# code.
Blazor (now named Client-side Blazor) is a .NET based web framework which can run on the client using WebAssembly;
Razor Components (now named Server-side Blazor) is the Blazor framework running on the server (formally known as server-side Blazor). (Note: in the most recent releasing, its name was changed back to Server-side Blazor).
A Razor Component is a piece of UI, such as a page, dialog, or data entry form. Components handle user events and define flexible UI rendering logic. Components can be nested and reused.
Components are .NET classes built into .NET assemblies that can be shared and distributed as NuGet packages. The class can either be written in the form of a Razor markup page (.cshtml) or as a C# class (.cs).