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)
jezik
C# – strogo tipiziran, sličan Javi i C++-u
Python
brzina servera
među najbržim web framework-ovima
dovoljna za većinu sajtova
tipična upotreba
firme, poslovni sistemi, API servisi, igre (Unity koristi C#)
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
Alat
Gde
Provera
.NET SDK (8 ili noviji; preporuka: aktuelna LTS verzija)
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
Red
Znač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
Fajl
Uloga
Program.cs
ulaz u aplikaciju: servisi i rute
PrviServer.csproj
opis projekta: verzija .NET-a, paketi (NuGet)
appsettings.json, appsettings.Development.json
podešavanja (npr. adresa baze); drugi fajl važi samo tokom razvoja
Properties/launchSettings.json
port 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).
Uputstvo
Parametar iz putanje se prima kao argument lambde istog imena: (string ime) => .... Slučajan broj: Random.Shared.Next(1, 7) (gornja granica se ne uključuje).
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?
UVOD ASP.NET CORE WEB APLIKACIJE
U ovom poglavlju naći ćete članke o tome šta je web server(HTTP web server), kako se kreira jednostavan web server, a kako web aplikacija. Šta je web servis i primer kreiranja web servisa. Takođe ćete naći članke o Web Api servisima jednostavnim i onim koji čitaju podatke iz baze, npr. SQL Server baze podataka. Kroz primere možete naučiti kako se kreira WEB Api sa kontrolerom i modelom.
Uvod u ASP.NET Core veb aplikacije
ASP.NET Core je moderni framework za razvoj web aplikacija koji omogućava kreiranje brzih, skalabilnih i sigurnih web rešenja. Razvijen od strane Microsofta, ovaj framework nudi sveobuhvatan set alata i funkcionalnosti koje omogućavaju programerima da kreiraju aplikacije visokih performansi. Međutim, da bi se bolje razumelo šta ASP.NET Core može da postigne, važno je pogledati konkretne primene u stvarnom svetu. Na primer, Stack Overflow, jedna od najpopularnijih platformi za postavljanje i odgovaranje na pitanja vezana za programiranje, koristi ASP.NET Core za delove svoje infrastrukture. Ova platforma koristi snagu ASP.NET Core-a kako bi osigurala brze reakcije i efikasno upravljanje velikim količinama podataka i korisnika. Drugi primer je Microsoft Teams, alat za kolaboraciju i komunikaciju unutar kompanija. Iako Teams koristi više tehnologija, ASP.NET Core je korišćen za izgradnju određenih delova aplikacije, omogućavajući skalabilnost i pouzdanost koja je ključna za ovakve vrste softverskih rešenja. Reddit je još jedan primer web aplikacije koja koristi ASP.NET Core za svoje API-je. Ova platforma koristi ASP.NET Core da bi osigurala brzinu i efikasnost pri rukovanju velikim količinama zahteva od korisnika širom sveta. Ovi primeri pokazuju snagu i fleksibilnost ASP.NET Core-a u različitim kontekstima i industrijama. Kroz rad sa ovim framework-om, programeri mogu graditi aplikacije koje su ne samo funkcionalne, već i visoko optimizovane za rad u stvarnom svetu. Neke od ključnih prednosti ASP.NET Core-a uključuju:
Brzina: ASP.NET Core je poznat po brzoj obradi zahteva i optimizovanoj upotrebi memorije, što ga čini idealnim za kreiranje aplikacija visokih performansi.
Podrška za više platformi: Sa ASP.NET Core programeri mogu da prave i pokreću veb aplikacije na Vindovs, macOS i Linuks, pružajući fleksibilnost za različita okruženja.
Modularnost: Prati modularnu strukturu okvira, omogućavajući programerima da izaberu i odaberu komponente koje su im potrebne, minimizirajući naduvanost i složenost aplikacije.
Pogodno za DevOps: Besprekorna integracija sa modernim DevOps praksama, kao što su neprekidna integracija i kontinuirana primena (CI/CD), čini ga odličnim izborom za agilne razvojne timove. Bezbednost: ASP.NET Core pruža napredne funkcije kao što su ugrađena autentifikacija, autorizacija i zaštita podataka, koje su ključne za moderne veb aplikacije. Ovi kvaliteti su pozicionirali ASP.NET Core kao vitalni alat za programere koji žele da izgrade pouzdane, skalabilne veb aplikacije koje su otporne na budućnost.
Arhitektura ASP.NET Core:
Sledeći dijagram ilustruje tipičnu arhitekturu ASP.NET Core aplikacije:
Klijent: Korisnik šalje zahtev putem web pregledača ili aplikacije.
Middleware: Zahtev prolazi kroz niz middleware komponenti koje obavljaju zadatke poput logovanja, autentifikacije i rukovanja greškama.
Rutiranje: Okvir usmerava zahtev ka odgovarajućem kontroleru.
Kontroler: Kontroler obrađuje zahtev i može vratiti prikaz (View) ili pristupiti podacima iz baze.
Pristup podacima: Entity Framework Core omogućava kontroleru da pristupa i manipuliše podacima u bazi podataka.
Video: ASP.NET Core - jednostavna web aplikacija
Šta je to web servis, kako da kreirate web api u asp.net core tehnologiji? Pročitajte više o tome na webstrani: Implementacija web servisa
Šta je to web server?
Web server je aplikacija koja može da komunicira sa web pregledačem (klijentom). Ako pomoću Web klijenta u ovom slučaju pregledač(npr Crome-a) u njegovoj traci za adrese(adress bar engl.) ukucamo neku URL adresu npr. http//localhost:5000 i ako postoji aplikacija ili proces koji će na ovakav zahtev odgovoriti i poslati nazad(pregledaču) neku poruku kao odgovor na to možemo reći da je reč o web serveru(http serveru). Lokacija te aplikacije može biti bilo gde na webu tj. može biti na istom računaru ili na nekom udaljenom računaru, laptopu, mobilnom telefonu ili pravom web serveru, bitno je da ona(web aplikacija) može da komunicira sa web pregledačem i da odgovara na njegove zahteve. Kako bismo kreirali web sajt ili aplikaciju, prvo je potrebno preuzeti i instalirati ASP.NET Core na lokalnom računaru. Može se preuzeti sa web lokacije: https://dotnet.microsoft.com/en-us/download/dotnet
Slika 1. ASP.Net core download- stranica za preuzimanje
Ono što je potrebno je da se sa ove web strane preuzme neka od ponuđenih, najbolje preporučena verzija asp.net core framework-a. Važno je napomenuti da, nakon verzije 3.1, naziv 'core' više nije deo imena, ali tehnologija ostaje ista. Asp.net core je multiplatformska za razliku od asp.net pomoću kojeg se mogu praviti web aplikacije samo na windows operativnom sistemu. Da bi se kreirala dotnet web aplikacija nije potreban dodatni alat za programiranje i ako je mnogo lakše programirati korišćenjem nekog od dostupnih alata. Web aplikacija u dotnet tehnologije može se kreirati pomoću skupa komandi koje se izvršavaju u dotnet tehnologiji poznate kao dotnet CLI(Command Line Interface). Skup potrebnih komandi možete pronaći na sledećoj web lokaciji: docs.microsoft.com/en-us/dotnet/core/tools/dotnet Više o svemu tome pogledajte u priloženom videu.
Sledeće što je poželjno, ali ne i „obavezno je instaliranje nekog od pomoćnih alata npr „VS code“ ili „Microsoft Visual Studio". U ovom tutorijalu će biti korišćen VS Code. Može se preuzeti sa sledećeg linka:
U ovoj sekciji ćemo detaljnije razmotriti dva popularna alata za razvoj u ASP.NET Core: Visual Studio Code i Visual Studio. Ova dva alata, iako slična u funkcionalnosti, nude različite karakteristike koje ih čine pogodnim za različite vrste projekata i potreba. Visual Studio CodeVisual Studio Code (VS Code) je lagan, otvorenog koda editor koji je vrlo popularan među programerima zbog svoje brzine i fleksibilnosti. Ključne karakteristike VS Code uključuju:
Lagan i Brz: Kao editor, VS Code je dizajniran da bude brz i efikasan. Ovo ga čini odličnim za manje projekte i za brzu kodiranje.
Prilagodljivost: VS Code podržava brojne ekstenzije koje možete dodati kako biste prilagodili radno okruženje prema svojim potrebama. To uključuje podršku za različite programske jezike, alate za debagovanje, i još mnogo toga.
Multiplatformski: Dostupan je za Windows, macOS i Linux, što omogućava rad u različitim okruženjima.
Integracija sa Git: Ima ugrađenu podršku za rad sa Git repozitorijumima, što olakšava upravljanje verzijama koda.
Preporučuje se za manje projekte, brzu izmenu koda i za one koji preferiraju minimalističko radno okruženje koje se može lako prilagoditi. Visual StudioVisual Studio je robusna i sveobuhvatna IDE (Integrated Development Environment) koja nudi mnogo više funkcionalnosti u odnosu na Visual Studio Code. Ključne karakteristike Visual Studio uključuju:
Kompletan Razvojni Alat: Visual Studio pruža sveobuhvatne alate za razvoj, uključujući napredne mogućnosti za debagovanje, profilišući alate, i vizuelni dizajner za korisničke interfejse.
Integrisani Alati: Ima integraciju sa brojnim alatima i tehnologijama koje olakšavaju rad na velikim i kompleksnim projektima, kao što su baze podataka, serveri i cloud servisi.
Podrška za Više Jezika: Pored C# i ASP.NET Core, Visual Studio podržava mnoge druge programske jezike i tehnologije, što ga čini pogodnim za raznovrsne projekte.
Opcije za Profesionalce: Verzija Visual Studio Professional i Enterprise dolazi sa dodatnim alatima i podrškom koja je korisna za velike timove i složene projekte.
Preporučuje se za velike projekte, timski rad i za profesionalce koji zahtevaju sveobuhvatne alate i funkcionalnosti za razvoj. ZaključakIzbor između Visual Studio Code i Visual Studio zavisi od vaših potreba i vrste projekta na kojem radite. Ako tražite lagan i prilagodljiv editor za brzi razvoj, Visual Studio Code je odličan izbor. S druge strane, ako vam je potrebna sveobuhvatna IDE sa naprednim funkcijama, Visual Studio će vam pružiti sve što vam je potrebno.
Da bi smo kreirali aplikaciju pomoću dotnet core kreirajmo prvo folder aplikacije npr. na putanji c://aspdotnetcore/Products
Slika 2: aspdotnet core-Command Prompt
Da bi ste proverili koja je verzija dotnet core instalirana:
Slika 3: Aspdotnet core-Command Prompt. Provera instalirane verzije
Na slici se vidi da je instalirana verzija 5.0, ali u slučaju da nije ni jedna potrebno je neku od asp.net core verzija instalirati. Da bi kreirali veb sajt pod imenom Products, u okviru istoimenog foldera treba otkucati:
dotnet new web
što se može videti na sledećoj slici:
Slika 4: Aspdotnet core-Kreiranje nove web aplikacije
Kreiraće se struktura potrebnih fajlova unutar root foldera aplikacije:
Slika 5: Aspdotnet core-Struktura potrebnih fajlova u root folderu
Da bi se startovala upravo kreirana aplikacija potrebno je u okviru command prompt-a otkucati: dotnet run , kao što se može videti na sledećoj slici:
Slika 6: Aspdotnet core-Startovanje kreirane aplikacije sa komandom: "dotnet-run"
Na prethodnoj slici se može videti i URL koji treba otvoriti u pregledaču da bi se pokrenula aplikacija „Products“. Posle pokretanja u pregledaču će se prikazati poruka „Hello World“:
Da bi se promenio kod u okviru aplikacije potrebno je prvo isljučiti aplikaciju, kucanjem ctrl+C, a zatim pokrenuti VS Code, pomoću komande:
code .
Posle pokretanja videće se sadržaj projekta, što je prikazano na slici:
Slika 7: Aspdotnet core-Sadržaj projekta u VS Code okruženju
Da bi smo npr. prikazali sistemsko vreme umesto poruke „Hello World“, potrebno je izmeniti MapGet metodu:
Slika 8: Aspdotnet core-Sadržaj projekta u VS Code okruženju-drugi deo
Da bi smo npr prikazali sistemsko vreme umesto poruke „Hello World“, potrebno je izmeniti MapGet() metodu:
Slika 7: Aspdotnet core aplikacija primer-Prikaz sistemskog vremena
Detaljnije objašnjenje Web Api-ja
ASP.NET Core pruža moćan okvir za razvoj RESTful Web API-ja, što omogućava kreiranje aplikacija koje mogu da komuniciraju sa drugim aplikacijama putem HTTP protokola. U ovom delu ćemo detaljnije razmotriti kako se ASP.NET Core koristi za razvoj Web API-ja, fokusirajući se na ključne komponente kao što su kontroleri, modeli i CRUD operacije.
Kontroleri
U ASP.NET Core, kontroleri su centralni deo za upravljanje HTTP zahtevima. Oni služe kao most između korisničkog interfejsa i podataka koji se obrađuju. Kontroleri u ASP.NET Core su klase koje nasledjuju ControllerBase klasu i koriste atribute kao što su [ApiController] i [Route] za definisanje rute i pravila za obrada zahteva.
Modeli su klase koje predstavljaju podatke koje vaš API koristi. Oni često odražavaju strukturu podataka u bazi podataka ili druge podatke koje vaša aplikacija koristi. Modeli se obično koriste za primanje i slanje podataka između klijenta i servera.
Primer modela
public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } public string Description { get; set; } }
CRUD operacije
CRUD operacije (Create, Read, Update, Delete) su osnovne funkcionalnosti koje svaki Web API treba da podržava. Ove operacije omogućavaju kreiranje novih zapisa, čitanje postojećih zapisa, ažuriranje i brisanje podataka.
Create (Post): Dodaje nove podatke u sistem.
Read (Get): Dohvata podatke iz sistema.
Update (Put): Ažurira postojeće podatke.
Delete (Delete): Briše podatke iz sistema.
Svaka od ovih operacija se mapira na HTTP metode i koriste se u kontrolerima za interakciju sa modelima i servisima.
Zaključak
Korišćenje ASP.NET Core za razvoj Web API-ja omogućava efikasno upravljanje podacima i omogućava aplikacijama da komuniciraju preko HTTP-a. Razumevanje kako da pravilno koristite kontrolere i modele, kao i kako da implementirate CRUD operacije, ključno je za izgradnju robusnih i skalabilnih Web API-ja.
Primeri koda: ToDo kontroler
// Primer kontrolera za upravljanje korisnicima [ApiController] [Route("api/[controller]")] public class UsersController : ControllerBase { private readonly ApplicationDbContext _context;
public UsersController(ApplicationDbContext context) { _context = context; }
[HttpGet] public async Task<ActionResult<IEnumerable<User>>> GetUsers() { return await _context.Users.ToListAsync(); }
[HttpPost] public async Task<ActionResult<User>> PostUser(User user) { _context.Users.Add(user); await _context.SaveChangesAsync(); return CreatedAtAction(nameof(GetUsers), new { id = user.Id }, user); } }TodoController Primer U ovom primeru koristimo ASP.NET Core za kreiranje jednostavnog API kontrolera koji upravlja listom zadataka (TodoItem). TodoController omogućava osnovne operacije: čitanje, dodavanje, ažuriranje i brisanje zadataka.
Detaljno Objašnjenje:
[ApiController] Atribut: Ovaj atribut označava da je klasa API kontroler i omogućava automatsko model binding i validaciju. Takođe omogućava da se rezultati automatski formatiraju u JSON.
[Route("api/[controller]")] Atribut: Ovaj atribut definiše putanju URL-a za pristup kontroleru. U ovom slučaju, api/todo je putanja koja vodi do TodoController.
GetTodos Metoda: Ova metoda vraća sve zadatke iz liste. Koristi IActionResult kao povratni tip koji omogućava vraćanje različitih HTTP status kodova.
GetTodoById Metoda: Ova metoda vraća zadatak sa specifičnim ID-jem. Ako zadatak nije pronađen, vraća NotFound() status.
CreateTodo Metoda: Ova metoda dodaje novi zadatak u listu. Koristi Post atribut da označi da prihvata POST zahteve. Ako je model validan, novi zadatak se dodaje i vraća CreatedAtAction sa statusom 201 Created.
UpdateTodo Metoda: Ova metoda ažurira postojeći zadatak. Ako zadatak sa datim ID-jem nije pronađen, vraća NotFound() status.
DeleteTodo Metoda: Ova metoda briše zadatak sa specifičnim ID-jem. Ako zadatak nije pronađen, vraća NotFound() status.
Svi primeri koda prikazuju kako ASP.NET Core omogućava brzo i efikasno kreiranje RESTful API-ju, sa jednostavnim pristupom osnovnim operacijama na podacima.
Preporuke za dalje učenje
Na kraju stranice, uključivanje linkova ka korisnim resursima može pomoći čitateljima da prodube svoje znanje o ASP.NET Core-u. Preporučeni resursi mogu uključivati:
Koristimo kolačiće da bismo vam pružili najbolje moguće iskustvo. Takođe nam omogućavaju da analiziramo ponašanje korisnika kako bismo stalno poboljšavali veb lokaciju za vas.