ASP.NET Core: uvod i prvi web server u C#-u

Lekcija 1 od 7 · ASP.NET Core

ASP.NET Core je Microsoft-ov framework za web aplikacije u jeziku C#: besplatan, otvorenog koda i radi na Windows-u, Linux-u i macOS-u. U ovoj lekciji instaliramo .NET, pravimo najmanji web server od nekoliko redova i dodajemo mu prvu dinamičku stranu.

Pre nego što počneš: potrebno predznanje – kako radi web server, osnove C#-a.
Kako da učiš: radi u svom projektu korak po korak i posle svake izmene pokreni aplikaciju; zadatak na kraju prvo uradi sam/a. Kod je u C#-u za .NET 8 ili noviji (preporuka: aktuelna LTS verzija); naziv fajla je u komentaru na vrhu svakog primera.

Šta je ASP.NET Core i kada ga izabrati

ASP.NET Core (C#)Django (Python)
jezikC# – strogo tipiziran, sličan Javi i C++-uPython
brzina serverameđu najbržim web framework-ovimadovoljna za većinu sajtova
tipična upotrebafirme, poslovni sistemi, API servisi, igre (Unity koristi C#)škole, startapi, nauka i AI
alatiVisual Studio, VS Code + C# Dev KitVS Code, PyCharm
na ovom sajtuova grana (projekat Prodavnica)Django projekat Logo kreator

Ako već znaš C#, ASP.NET Core je prirodan izbor za backend. Pojmovi zahtev, odgovor, ruta i statusni kod objašnjeni su u lekcijama Kako radi web server i HTTP protokol.

Instalacija

AlatGdeProvera
.NET SDK (8 ili noviji; preporuka: aktuelna LTS verzija)dotnet.microsoft.com/downloaddotnet --version
VS Code + dodatak C# Dev KitMarketplace u VS Code-u–
ili Visual Studio Communitybesplatan za učenike–

LTS (Long Term Support) verzije izlaze svake druge godine u novembru (.NET 8 – 2023, .NET 10 – 2025) i imaju podršku tri godine. Kod u ovim lekcijama radi od .NET 8 naviše.

Prvi server: dotnet new web

:: cmd – u folderu za projekte
dotnet new web -o PrviServer
cd PrviServer
dotnet run

U konzoli piše adresa, npr. Now listening on: http://localhost:5123 (broj porta je različit kod svakog projekta). Otvori je u pregledaču – vidi se „Hello World!“. Server se zaustavlja sa Ctrl+C. Ceo program je u fajlu Program.cs:

// Program.cs
var builder = WebApplication.CreateBuilder(args);   // podešavanja i servisi
var app = builder.Build();                          // aplikacija (web server)

app.MapGet("/", () => "Zdravo iz ASP.NET Core-a!");             // GET / → tekst
app.MapGet("/vreme", () => $"Sada je {DateTime.Now:HH:mm:ss}");  // GET /vreme → trenutno vreme

app.Run();                                          // pokreni i čekaj zahteve
RedZnačenje
WebApplication.CreateBuilder(args)pravi „graditelja“ aplikacije: čita podešavanja (appsettings.json) i registruje servise
app.MapGet("/vreme", ...)ruta: GET zahtev na /vreme poziva datu funkciju (lambda izraz)
app.Run()pokreće web server Kestrel, koji je deo ASP.NET Core-a

Ovo se zove minimal API: rute se pišu direktno u Program.cs. Za veće aplikacije koriste se kontroleri (lekcija 3).

Brži rad: dotnet watch

dotnet watch

Umesto dotnet run pokreni dotnet watch: posle svake sačuvane izmene server se sam ažurira (hot reload), a pregledač se osvežava. Ako izmena ne može da se primeni uživo, u konzoli pita da li da ponovo pokrene aplikaciju – odgovori Y ili A (uvek).

Fajlovi projekta

FajlUloga
Program.csulaz u aplikaciju: servisi i rute
PrviServer.csprojopis projekta: verzija .NET-a, paketi (NuGet)
appsettings.json, appsettings.Development.jsonpodešavanja (npr. adresa baze); drugi fajl važi samo tokom razvoja
Properties/launchSettings.jsonport i okruženje pri pokretanju sa računara
bin/, obj/prevedeni program – ne menjaju se ručno i ne idu na GitHub

Videi iz prve verzije lekcije

Napomena uz video: snimljen je za prvu verziju lekcija (.NET 5/6, klasa Startup, SQL Server i Dapper). Ideje su iste, ali je kod na ovoj strani pisan za današnji .NET (sve u Program.cs) – kada se razlikuju, važi kod sa strane.

Zadaci za vežbu

Za svaki zadatak postoji primer, uputstvo i rešenje.

ZADATAK 01Težina: lako

Tri nove rute

Dodaj rute: /datum (današnji datum u obliku 06.11.2026.), /kocka (slučajan broj od 1 do 6) i /zdravo/{ime} (vraća „Zdravo, Ana!“ za /zdravo/Ana).

Česte greške i saveti
  • Komande se pokreću u folderu u kome je .csproj fajl.
  • Ako pregledač upozori na sertifikat za https://localhost, jednom pokreni dotnet dev-certs https --trust.
  • Primeri sa interneta koji imaju klasu Startup i metode ConfigureServices/Configure pisani su za .NET 5 ili stariji – danas je sve u Program.cs.

Proveri znanje

Otvori kviz

Uvod u ASP.NET Core

1. Koja komanda pravi prazan ASP.NET Core projekat?




2. Šta radi app.MapGet("/vreme", ...)?




3. Kako se zove web server koji je deo ASP.NET Core-a?