Del 1 av 8

Intro till Blazor & .NET

Vad är Blazor, var passar det i .NET-ekosystemet, och vilka render modes finns det? Vi skapar vårt första Blazor Web App och får syn på projektstrukturen.

Lektion 1 — V1. Vi sätter grunden: skapar projektet, lär oss vad varje mapp gör, och får ett första "Hello World" att fungera med hot reload.

Vad är Blazor?

Blazor är Microsofts ramverk för att bygga interaktiva webbgränssnitt med C# i stället för JavaScript. Det är en del av ASP.NET Core och kom första gången i .NET Core 3.0 (2019). I .NET 8 (2023) introducerades Blazor Web App som samlar alla rendrings­modeller under ett tak. I .NET 10 (november 2025, LTS) har modellen mognat med deklarativ tillståndspersistens ([PersistentState]), förbättrad formulärvalidering (AddValidation()), nytt 404-mönster (NotFoundPage) och passkeys i Identity.

Kärnidé Du skriver komponenter i filer med ändelsen .razor. Komponenten innehåller både HTML-markup och C#-kod. Blazor renderar komponenten till HTML och håller den synkad med C#-tillståndet.

Render modes — översikt

I .NET 10 finns fyra sätt att rendera en Blazor-komponent. Du kan blanda dem i samma app, ner till komponentnivå.

ModeVar körs koden?När passar det?
Static SSRServern, en gång per requestInnehållssidor, SEO, formulär utan interaktivitet
ServerServern, via SignalR-kanalSnabb start, kräver konstant uppkoppling
WebAssemblyI webbläsaren (WASM)Offline-stöd, ingen serverlast efter laddning
AutoServer först, byter till WASM när nedladdatBästa av båda världar för publika appar
I denna kurs Vi använder mallen Blazor Web App och börjar med Server-rendering (enklast att felsöka). På L8 jämför vi alla render modes och förklarar när du väljer vad.

Skapa ditt första projekt

Förutsättningar: .NET 10 SDK (kontrollera med dotnet --version — ska visa 10.x) och Visual Studio 2022 17.14+ eller VS Code med C# Dev Kit. .NET 10 är en LTS-release och stöds till november 2028.

Nytt i .NET 10 för utvecklarupplevelsen
# Skapa en ny katalog och gå in i den
mkdir MinForstaBlazor
cd MinForstaBlazor

# Skapa Blazor Web App-projektet (interaktiv server-rendering)
dotnet new blazor -o BlazorApp --interactivity Server

# Gå in i projektet och starta det
cd BlazorApp
dotnet run

Öppna https://localhost:5001 i webbläsaren — du ser standardmallen med en sidlista och en räknare som ökar när du klickar.

Projektstrukturen

En frisk Blazor Web App ser ut så här:

BlazorApp/
├── Components/
│   ├── Layout/
│   │   ├── MainLayout.razor       # App-skalet (header, sidebar)
│   │   └── NavMenu.razor          # Sidnavigering
│   ├── Pages/
│   │   ├── Home.razor             # Startsida (rutten "/")
│   │   ├── Counter.razor          # Räknarexempel
│   │   └── Weather.razor          # Tabellexempel
│   ├── App.razor                  # Rot-HTML-dokumentet
│   ├── Routes.razor               # Router-konfiguration
│   └── _Imports.razor             # Globala @using-direktiv
├── wwwroot/                       # Statiska filer (CSS, bilder, JS)
├── Program.cs                     # App-start och DI-konfiguration
├── appsettings.json               # Konfiguration
└── BlazorApp.csproj               # Projektfil

Hot Reload — flödet du jobbar i

Starta projektet med dotnet watch i stället för dotnet run. Då laddas ändringar i .razor-filer om automatiskt i webbläsaren när du sparar.

dotnet watch
Tips Hot Reload fungerar för markup, parameterändringar och de flesta C#-ändringar. För större strukturella ändringar (nya tjänster i Program.cs, ändrade rutter) krävs en full omstart — dotnet watch upptäcker oftast detta och startar om automatiskt.

Ditt första "Hello YH"-exempel

Skapa filen Components/Pages/Hello.razor:

@page "/hello"

<PageTitle>Hello YH</PageTitle>

<h1>Hej, @namn!</h1>

<input @bind="namn" placeholder="Ditt namn" />

@code {
    private string namn = "YH-student";
}

Spara filen, gå till /hello i webbläsaren och skriv i fältet — rubriken uppdateras direkt när du klickar utanför fältet. Detta är Blazors grundprincip i miniatyr: markup + C# + reaktiv UI.

Pluralsight som komplement

Genom hela kursen Vi rekommenderar Pluralsight-kursen Blazor Fundamentals av Roland Guijt som parallell videoresurs. Den följer ungefär samma progression som lektionerna och är utmärkt för att repetera ett ämne eller höra det förklarat på ett annat sätt.

Referenser

Elektroniska resurser

Böcker

Övningar

Lös övningarna självständigt. Det finns inget facit — lärandet sker i processen.

  1. Installation och första kör Installera .NET 10 SDK om du inte redan har det. Skapa ett nytt Blazor Web App med interactivity = Server. Starta det med dotnet watch och bekräfta att räknaren fungerar.
  2. Utforska projektstrukturen Öppna varje fil under Components/ och försök beskriva med dina egna ord vad den gör. Vad är skillnaden mellan App.razor och Routes.razor?
  3. Bygg en presentationssida Skapa en sida på rutten /om-mig där du presenterar dig själv. Inkludera bild, kort text och en lista över tre tekniker du är intresserad av. Lägg till sidan i NavMenu.
  4. Jämför render modes Skapa två projekt — ett med --interactivity Server och ett med --interactivity WebAssembly. Notera skillnader i mappstruktur, vad som händer i Program.cs, och hur första-laddningen känns.

Soloprojektor

Projekt 1 — Kursportfölj Skapa ett Blazor Web App som ska följa dig genom hela kursen. Den ska ha en startsida, en sida som beskriver kursens 8 lektioner och en sida med dina anteckningar. Använd dotnet watch som ditt vanliga arbetsflöde och commita projektet till Git redan idag.
Projekt 2 — Render mode-jämförelse (fördjupning) Skapa två minimala appar (Server respektive WebAssembly) som båda visar en knapp och en räknare. Mät hur stor första-laddningen är (Network-fliken i webbläsaren) och skriv en kort sammanfattning på 5–10 rader om vad du observerade.

Nästa: Razor-syntax & komponenter →