Hopp til innhold
Personlig Roadmap
Læringsspor · Spor A

C# og .NET

C#-grunnlaget og .NET-økosystemet behandlet sammen, fra konsollprogram til fullstack-app.

C#-grunnlag

Variabler og datatyper

Senere

Hva: int, string, bool, double og typesikkerhet.

Hvorfor: Grunnleggende byggeklosser i alt C#-kode.

Bør kunne: Velge riktig type for riktig data.

If/else

Senere

Hva: Betinget kjøring av kode.

Hvorfor: Kjernen i all forgrening i programlogikk.

Bør kunne: Skrive lesbare betingelser uten dyp nesting.

Løkker

Senere

Hva: for, foreach, while.

Hvorfor: Nødvendig for å behandle samlinger og gjentakende logikk.

Bør kunne: Velge riktig løkketype for situasjonen.

Metoder

Senere

Hva: Gjenbrukbare kodeblokker med parametere og returverdi.

Hvorfor: Grunnlaget for å strukturere logikk.

Bør kunne: Skrive små metoder med ett tydelig ansvar.

Klasser

Senere

Hva: Definisjoner av objekter med tilstand og oppførsel.

Hvorfor: C# er grunnleggende objektorientert.

Bør kunne: Modellere domenet ditt som klasser med riktig innkapsling.

Objekter

Senere

Hva: Instanser av klasser.

Hvorfor: Slik data og logikk faktisk brukes i kjørende kode.

Bør kunne: Forstå forskjellen på referanse- og verditype.

Interfaces

Senere

Hva: Kontrakter som klasser kan implementere.

Hvorfor: Muliggjør løs kobling og testbarhet.

Bør kunne: Programmere mot interfaces, ikke konkrete klasser.

Arv

Senere

Hva: Gjenbruk og spesialisering av klasser.

Hvorfor: Reduserer duplisering mellom relaterte typer.

Bør kunne: Vite når arv passer bedre enn komposisjon.

Generics

Senere

Hva: Typeparametrisert kode som fungerer på tvers av typer.

Hvorfor: Gir typesikkerhet uten å duplisere logikk per type.

Bør kunne: Skrive egne generiske metoder og klasser.

LINQ

Senere

Hva: Spørrespråk integrert i C# for samlinger og data.

Hvorfor: Gjør datatransformasjon kortfattet og lesbar.

Bør kunne: Bruke Where, Select og GroupBy fremfor manuelle løkker.

Async/await

Senere

Hva: Asynkron programmering i C#.

Hvorfor: Nødvendig for skalerbare I/O-tunge applikasjoner.

Bør kunne: Skrive async-kode uten å blokkere tråder unødvendig.

Exception handling

Senere

Hva: try/catch/finally og egne unntakstyper.

Hvorfor: Forutsigbar håndtering av feilsituasjoner.

Bør kunne: Fange spesifikke unntak, ikke generiske Exception overalt.

Nullable types

Senere

Hva: Eksplisitt håndtering av verdier som kan mangle.

Hvorfor: Reduserer NullReferenceException i produksjon.

Bør kunne: Bruke nullable reference types bevisst, ikke undertrykke advarsler.

.NET

.NET SDK

Senere

Hva: Verktøysettet for å bygge og kjøre .NET-applikasjoner.

Hvorfor: Forutsetning for alt .NET-arbeid.

Bør kunne: Bruke dotnet CLI til å opprette og kjøre prosjekter.

Prosjektstruktur

Senere

Hva: Standard mappeoppsett for .NET-løsninger.

Hvorfor: Gjenkjennelig struktur gjør prosjekter lettere å navigere.

Bør kunne: Organisere løsninger med tydelig lagdeling.

NuGet

Senere

Hva: Pakkebehandleren for .NET.

Hvorfor: Slik du henter inn eksterne biblioteker.

Bør kunne: Administrere avhengigheter og versjoner bevisst.

Dependency injection

Senere

Hva: Innebygd IoC-container i .NET.

Hvorfor: Standardmåten å koble sammen tjenester løst i ASP.NET Core.

Bør kunne: Registrere og injisere tjenester med riktig levetid.

Configuration

Senere

Hva: appsettings.json, miljøvariabler og Options-mønsteret.

Hvorfor: Skiller konfigurasjon fra kode per miljø.

Bør kunne: Bruke strongly-typed configuration fremfor rå strenger.

Logging

Senere

Hva: Innebygd logging-abstraksjon i .NET.

Hvorfor: Nødvendig for feilsøking i produksjon.

Bør kunne: Logge med riktig LogLevel og strukturerte data.

Testing

Senere

Hva: Enhets- og integrasjonstesting med xUnit eller NUnit.

Hvorfor: Gir trygghet ved endringer i forretningslogikk.

Bør kunne: Skrive tester for kjernelogikk og API-endepunkter.

Entity Framework Core

Senere

Hva: ORM for .NET.

Hvorfor: Standardverktøyet for databasetilgang i .NET-økosystemet.

Bør kunne: Modellere entiteter, relasjoner og migrasjoner.

ASP.NET Core

Senere

Hva: Rammeverket for web-API-er og webapplikasjoner i .NET.

Hvorfor: Kjernen i backend-utvikling med C#.

Bør kunne: Bygge og strukturere web-API-er idiomatisk.

Minimal APIs

Senere

Hva: Lettvektig måte å definere endepunkter uten controllers.

Hvorfor: Raskt å komme i gang med for mindre API-er.

Bør kunne: Vite når Minimal API er nok, og når controllers passer bedre.

Controllers

Senere

Hva: Klassebasert organisering av endepunkter.

Hvorfor: Bedre struktur for større API-er med mye logikk.

Bør kunne: Organisere controllers etter ressurs.

Middleware

Senere

Hva: Pipeline av komponenter som behandler hver forespørsel.

Hvorfor: Håndterer tverrgående bekymringer som logging og feilhåndtering.

Bør kunne: Skrive egen middleware når innebygde ikke strekker til.

Authentication

Senere

Hva: Bekreftelse av brukeridentitet i ASP.NET Core.

Hvorfor: Forutsetning for beskyttede endepunkter.

Bør kunne: Sette opp JWT-basert autentisering.

Authorization

Senere

Hva: Rolle- og policy-basert tilgangskontroll.

Hvorfor: Bestemmer hva autentiserte brukere får gjøre.

Bør kunne: Bruke [Authorize]-attributter og policies riktig.

Swagger/OpenAPI

Senere

Hva: Automatisk generert API-dokumentasjon.

Hvorfor: Gjør API-et utforskbart og testbart uten ekstern dokumentasjon.

Bør kunne: Holde Swagger-annotasjoner oppdatert med faktisk oppførsel.

Prosjektstige

1

Konsollkalkulator

Grunnleggende syntaks, metoder og kontrollflyt uten UI eller I/O-kompleksitet.

2

Budsjettprogram i konsollen

Enkel datamodellering, samlinger og LINQ for beregninger.

3

SQLite-app

Første møte med persistens og enkel databasetilgang.

4

REST API

Bygg et første API med Minimal APIs eller controllers.

5

ASP.NET Core Web API

Strukturert API med lagdeling, DI og konfigurasjon.

6

API med PostgreSQL

Entity Framework Core mot en ekte relasjonsdatabase.

7

Autentisering

JWT-basert innlogging og beskyttede endepunkter.

8

Fullstack-app med Next.js-frontend

Koble et ASP.NET Core-API til en Next.js-frontend i produksjon.

Anbefalt prosjektstruktur for et ASP.NET Core API

MinApp/
MinApp/
├── src/
│   ├── MinApp.Api/
│   │   ├── Controllers/
│   │   ├── Middleware/
│   │   ├── Program.cs
│   │   └── appsettings.json
│   ├── MinApp.Application/
│   │   ├── Services/
│   │   └── DTOs/
│   ├── MinApp.Domain/
│   │   └── Entities/
│   └── MinApp.Infrastructure/
│       ├── Data/
│       └── Repositories/
└── tests/
    └── MinApp.Tests/