# Blazor — Build Interactive Web UIs with C# Instead of JavaScript > Microsoft's web framework for building interactive client-side and server-side web applications using C# and .NET instead of JavaScript. ## Install Save as a script file and run: # Blazor — Build Interactive Web UIs with C# ## Quick Use ```bash dotnet new blazor -o MyApp cd MyApp dotnet run ``` Open `https://localhost:5001` to see the app running. ## Introduction Blazor is a framework within ASP.NET Core that lets developers build interactive web UIs using C# instead of JavaScript. It supports both server-side rendering with real-time SignalR connections and client-side execution via WebAssembly, giving teams a single-language stack for full-stack web development. ## What Blazor Does - Renders interactive UI components written in C# and Razor syntax - Runs client-side in the browser via WebAssembly (Blazor WASM) or server-side with SignalR (Blazor Server) - Supports hybrid rendering modes mixing SSR, streaming, and interactivity per component - Integrates with the full .NET ecosystem including EF Core, authentication, and dependency injection - Enables code sharing between client and server with shared .NET libraries ## Architecture Overview Blazor uses a component model where each `.razor` file defines a reusable UI component with C# logic and HTML markup. In Server mode, UI events travel over a SignalR WebSocket to the server, which computes diffs and sends minimal DOM updates back. In WASM mode, the .NET runtime runs directly in the browser sandbox. .NET 8+ introduced unified rendering that lets each component choose its own render mode. ## Self-Hosting & Configuration - Install the .NET SDK (8.0+) from `dotnet.microsoft.com` - Create a project with `dotnet new blazor` for the unified template - Configure render modes in `App.razor` using `@rendermode` directives - Deploy as a standard ASP.NET Core app behind Nginx, IIS, or in a container - Publish WASM apps as static files to any CDN or static host ## Key Features - Full-stack C# eliminates the need for a separate JavaScript framework - Component-based architecture with strong typing and IntelliSense - Hot reload during development for rapid iteration - Built-in form validation, authentication, and authorization - AOT compilation for WebAssembly improves runtime performance ## Comparison with Similar Tools - **React** — JavaScript ecosystem with larger community; Blazor uses C# with smaller but growing ecosystem - **Angular** — TypeScript-based with similar component model; Blazor integrates natively with .NET backend - **Svelte** — Compiler-based approach with smaller bundles; Blazor WASM has larger initial download - **Leptos** — Rust-based WASM framework; Blazor has broader enterprise adoption and tooling ## FAQ **Q: Does Blazor replace JavaScript entirely?** A: For most UI scenarios yes, but you can still call JavaScript via JS interop when needed for browser APIs or third-party JS libraries. **Q: How large is the Blazor WASM download?** A: The initial download is around 2-5 MB for the .NET runtime, but subsequent loads are cached. AOT compilation and trimming can reduce this. **Q: Can Blazor be used for mobile apps?** A: Yes, Blazor Hybrid with .NET MAUI lets you embed Blazor components in native iOS, Android, and desktop apps. **Q: Is Blazor production-ready?** A: Yes, Blazor has been stable since .NET Core 3.1 and is used in production by many enterprises. ## Sources - https://github.com/dotnet/aspnetcore - https://learn.microsoft.com/aspnet/core/blazor --- Source: https://tokrepo.com/en/workflows/asset-93cad652 Author: Script Depot