40 najboljih pitanja i odgovora za intervju za .Net (2026.)

Pitanja i odgovori za intervju za .Net

Priprema za .Net intervju zahtijeva jasnoću o tome s čime se možete susresti, a razumijevanje ključnih koncepata je bitno jer druga rečenica mora sadržavati „Pitanja za .Net intervju“ kako bi se uspostavila neposredna relevantnost.

Istraživanje .Net intervjua otvara snažne karijerne mogućnosti podržane trendovima u industriji, praktičnim primjenama i dubokim tehničkim iskustvom. Stručnjaci s domenskim znanjem, iskustvom na osnovnoj razini i snažnim analitičkim vještinama imaju koristi od vrhunskih pitanja i odgovora koji pomažu i početnicima i iskusnim kandidatima da ojačaju svoje vještine u osnovnim, naprednim, srednjim, višim i direktnim tehničkim raspravama.
Čitaj više…

👉 Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za .Net

1) Što je .NET Framework i koje su njegove ključne komponente?

.NET Framework je platforma za razvoj softvera koju je razvio Microsoft koji pruža kontrolirano okruženje za izgradnju, implementaciju i pokretanje aplikacija. Podržava više jezika poput C#, VB.NET i F#. Okvir osigurava interoperabilnost jezika i upravljanje memorijom putem svog Common Language Runtime (CLR).

Ključne komponente:

Sastavni Description
CLR (Common Language Runtime) Upravlja memorijom, sigurnošću i izvršavanjem koda.
FCL (Biblioteka klasa okvira) Opsežna kolekcija klasa, sučelja i vrijednosnih tipova za višekratnu upotrebu.
ASP.NET Omogućuje razvoj dinamičkih web aplikacija.
ADO.NET Omogućuje pristup podacima iz različitih izvora podataka.

Primjer: AC# aplikacija može koristiti ADO.NET za povezivanje s SQL Server bazom podataka putem upravljanog okruženja, osiguravajući sigurnost i skalabilnost.


2) Objasnite razliku između .NET Frameworka, .NET Corea i .NET 5/6/7.

Microsoft je razvio .NET u ujedinjenu platformu za podršku razvoju na više platformi.

. NET Framework is Windows-samo, dok .NET jezgra je otvorenog koda i višeplatformski. Od .NET 5 pa nadalje, Microsoft spojili su ih u jedno ujedinjeno okruženje za izvođenje.

svojstvo . NET Framework .NET jezgra .NET 5/6/7+
Podrška platformi Windows samo Cross-platforma Cross-platforma
Open Source Ne Da Da
Izvođenje Umjereno visok Vrlo visoko
razvoj U cijelom sustavu Samostalan Fleksibilno
Primjer upotrebe Naslijeđene poslovne aplikacije Oblak i mikroservisi Moderne višeplatformske aplikacije

3) Kako Common Language Runtime (CLR) upravlja izvršavanjem koda?

CLR djeluje kao izvršni mehanizam za .NET aplikacije. Pretvara Intermediate Language (IL) kod u izvorni strojni kod putem Just-In-Time (JIT) kompilacije. Također omogućuje automatsko upravljanje memorijom pomoću sakupljanja smeća.

Ključne funkcije CLR-a:

  1. Upravljanje memorijom – Automatski dodjeljuje i oslobađa memoriju.
  2. Upravljanje sigurnošću – Provjerava sigurnost pristupa kodu i sigurnost temeljenu na ulogama.
  3. iznimka Rukovanje – Osigurava da se pogreške tijekom izvođenja uočavaju i pravilno upravljaju.
  4. Upravljanje nitima – Omogućuje učinkovito izvršavanje višenitnog koda.

Primjer: Kada se .NET program izvršava, CLR kompajlira IL kod u izvorni kod na zahtjev, osiguravajući optimalno izvršavanje.


4) Koje su različite vrste JIT kompajlera u .NET-u?

CLR nudi tri vrste Just-In-Time (JIT) kompajlera:

Tip Description Koristite slučaj
Pre-JIT (NGen) Kompajlira cijeli kod odjednom prilikom implementacije. Smanjuje vrijeme pokretanja.
Econo-JIT Kompajlira samo metode pozvane za vrijeme izvođenja i odbacuje ih nakon toga. Okruženja s ograničenom memorijom.
Normalni JIT Kompajlira kod metodu po metodu tijekom izvršavanja. Standardni model izvršenja.

Svaki JIT pristup balansira između predstava i korištenje resursa na temelju konteksta implementacije.


5) Što su sklopovi u .NET-u i kako se razlikuju od imenskih prostora?

An skupština je najmanja implementacijska jedinica .NET aplikacije koja sadrži kompilirani kod, metapodatke i resurse. imenski prostor, s druge strane, je logička grupaping klasa koje se koriste za organizaciju koda.

usporedba Assembly Prostor
Priroda Fizička datoteka (DLL/EXE) Logička grupaping
Svrha Implementacija i verzioniranje Code organizacija
sadrži Metapodaci, manifest, MSIL Klase, sučelja
Primjer System.Data.dll System.Data.SqlClient

Primjer: System.Data.dll sklop može sadržavati više imenskih prostora kao što su System.Data i System.Data.SqlClient.


6) Koja je razlika između vrijednosnih tipova i referentnih tipova u .NET-u?

U .NET-u, vrste vrijednosti pohranjuje podatke izravno, dok tipovi referenci pohraniti reference na memorijsku adresu podataka.

Temelj Vrsta vrijednosti Referentni tip
Čuvanje Stog gomila
Primjeri tipova int, float, bool, struktura klasa, niz, niz
Kopiranje Kopira stvarnu vrijednost Kopira referencu
Null dopušteno Ne Da

Primjer:

int a = 5; int b = a; → Oba imaju odvojene kopije.

ClassObj x = new ClassObj(); ClassObj y = x; → Oba se odnose na isti objekt.


7) Kako funkcionira sakupljanje smeća u .NET-u?

Sakupljanje smeća (GC) u .NET-u automatski upravlja memorijom vraćanjem nekorištenih objekata. Radi u generacije optimizirati performanse.

Generacijski GC:

  1. Post 0: Kratkotrajni objekti (npr. privremene varijable).
  2. Post 1: Srednježivući objekti promovirani iz Gen 0.
  3. Post 2: Dugotrajni objekti (npr. statički podaci).

Prednosti:

  • Sprječava curenje memorije.
  • Poboljšava performanse aplikacije.
  • Pojednostavljuje rukovanje memorijom za programere.

Primjer: Kada se na objekt više ne referencira, GC ga uklanja iz hrpe, oslobađajući memoriju za ponovnu upotrebu.


8) Što su delegati i po čemu se razlikuju od događaja?

A delegat je tip koji predstavlja reference na metode, dok je događaj je mehanizam koji omogućuje komunikaciju između razreda putem delegata.

Aspekt Delegat događaj
Definicija Objekt koji pokazuje na metodu Mehanizam obavještavanja
prizivanje Može se izravno pozvati Pozvano putem pretplatnika
Primjer Action<int> myDelegate; event EventHandler myEvent;

Primjer:

public delegate void Notify();  
public event Notify OnProcessCompleted;

Ovdje, OnProcessCompleted je događaj zasnovan na Notify delegat.


9) Koje su glavne prednosti i nedostaci korištenja .NET Core-a?

Prednosti Nedostaci
Podrška na više platformi Strmija krivulja učenja za početnike
Otvoreni kod i vođen zajednicom Ograničena podrška za naslijeđene okvire
Visoke performanse s Kestrel serverom Izazovi migracije za starije projekte
Ugrađena injekcija ovisnosti Neki API-ji se još uvijek razvijaju

Primjer: .NET Core je idealan za izgradnju mikroservisa koji se pokreću na Docker kontejnerima na Linuxu i Windows poslužiteljima.


10) Objasnite životni ciklus ASP.NET stranice.

Životni ciklus ASP.NET stranice definira kako se stranica inicijalizira, obrađuje i prikazuje. Svaka faza pruža događaje koje programeri mogu obraditi kako bi izvršili prilagođenu logiku.

Stadij Description
Zahtjev za stranicu Korisnik prvi put traži stranicu.
Start Određuje je li zahtjev povratni.
Inicijalizacija Sve kontrole su inicijalizirane.
Opterećenje Podaci i kontrole stranice su učitani.
Obrada događaja povratne objave Obrađuje događaje koje pokreću kontrole.
vraćanje Stranica se renderira u HTML.
Istovariti Faza čišćenja nakon slanja odgovora.

Primjer: Programeri često koriste Page_Load or Page_Init događaje za inicijalizaciju kontrola ili postavljanje vezanja podataka.


11) Što je Entity Framework (EF) i kako pojednostavljuje operacije s bazom podataka?

Entity Framework (EF) je Microsoft'S Objektno-relacijski maper (ORM) što eliminira potrebu za većinom koda za pristup podacima omogućujući programerima interakciju s bazom podataka pomoću .NET objekata. Automatski obrađuje generiranje SQL-a, mapiranje podatakapingi upravljanje odnosima.

Ključne značajke:

  • Podržava LINQ-to-Entiteti upita.
  • Ponude automatska promjena trackralj i lijeno učitavanje.
  • Pruža Code-Prvo, baza podataka prvoi Model-First pristupi.

Primjer:

using (var context = new AppDbContext())
{
    var employees = context.Employees.Where(e => e.Salary > 50000).ToList();
}

Ovdje EF prevodi LINQ upit u SQL, dohvaća rezultate i mapira ih na Employee objekti automatski.


12) Objasnite razliku između Code-Prvo, Database-First i Model-First pristupi u Entity Frameworku.

Pristup Description Koristite slučaj
Code-Prvi Definirajte klase i pustite EF da generira bazu podataka. Greenfield projekti.
Baza podataka - prvo Prvo kreirajte bazu podataka, a EF generira klase entiteta. Postojeće baze podataka.
Model-First Vizualno dizajnirajte entitete, a EF generira i bazu podataka i klase. Dizajn vođen dijagramima.

Primjer: U Code-Prvi pristup, programeri stvaraju C# klase kao što su Customer i Order, a EF automatski gradi odgovarajuće tablice u SQL Serveru.


13) Što je LINQ i koje su njegove prednosti u .NET razvoju?

Jezični integrirani upit (LINQ) omogućuje upite podataka iz različitih izvora (objekti, XML, baze podataka) korištenjem konzistentne sintakse izravno unutar C# ili VB.NET-a.

Pojačava čitljivost, sigurnost tipovai provjera za vrijeme kompajliranja.

Prednosti LINQ-a:

  1. Ujednačena sintaksa za različite izvore podataka.
  2. Smanjuje složenost koda.
  3. Pruža IntelliSense i validaciju tijekom kompajliranja.
  4. Podržava odgođeno izvršavanje za optimizaciju performansi.

Primjer:

var highSalaries = employees.Where(e => e.Salary > 70000)
                            .OrderBy(e => e.Name)
                            .ToList();

14) Koja je razlika između IEnumerable, ICollection i IQueryable u .NET-u?

Sučelje Vrsta izvršenja Koristite slučaj Ključna razlika
Nebrojeno Iteracija u memoriji Lokalne zbirke Izvršava se na strani klijenta.
ICollection U memoriji, podržava dodavanje/uklanjanje Izmijeni zbirke Proširuje IEnumerable upravljanjem kolekcijama.
IQueryable Odgođeno izvršenje (udaljeno) LINQ prema SQL/EF-u Izvršava se na razini baze podataka.

Primjer: Korištenje IQueryable u Entity Frameworku omogućuje filtriranje na strani baze podataka, što je daleko učinkovitije od korištenja IEnumerable u sjećanju.


15) Što je asinhrono programiranje i kako async i await funkcioniraju u .NET-u?

Asinkrono programiranje u .NET-u omogućuje izvršavanje više operacija bez blokiranja glavne niti, poboljšavajući responzivnost u web i desktop aplikacijama.

Ključ Concepts:

  • async označava metodu kao asinhronu.
  • await obustavlja izvršavanje metode dok se očekivani zadatak ne završi.
  • Sprječava gladovanje niti i zamrzavanje korisničkog sučelja.

Primjer:

public async Task<int> GetDataAsync()
{
    var data = await httpClient.GetStringAsync("https://api.example.com");
    return data.Length;
}

Korist: Glavna nit ostaje slobodna za obavljanje drugih zadataka dok se I/O operacije izvršavaju u pozadini.


16) Što je Dependency Injection (DI) i zašto je važan u .NET Coreu?

Ubrizgavanje ovisnosti (DI) je obrazac dizajna koji omogućuje labava veza između klasa ubrizgavanjem ovisnosti umjesto njihovog internog stvaranja.

Prednosti:

  • Poboljšava mogućnost testiranja.
  • Promomodularni dizajn testa.
  • Pojednostavljuje upravljanje konfiguracijom.

Primjer:

public class OrderService
{
    private readonly IEmailService _emailService;
    public OrderService(IEmailService emailService)
    {
        _emailService = emailService;
    }
}

U .NET Coreu, DI je ugrađen u okvir putem IServiceCollection spremnik koji se koristi u Startup.cs.


17) Kako učinkovito rješavate iznimke u .NET aplikacijama?

Obrada iznimaka osigurava da se pogreške tijekom izvođenja ispravno upravljaju bez rušenja aplikacije. Primarni mehanizam je pokušaj-uhvati-napokon blok.

Primjer:

try
{
    int result = 10 / divisor;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Cannot divide by zero.");
}
finally
{
    Console.WriteLine("Operation completed.");
}

Najbolje prakse:

  • Uvijek prvo uhvatite specifične iznimke.
  • Koristiti finally za logiku čišćenja
  • Izbjegavajte prazne blokove za hvatanje.
  • Koristite globalno rukovanje iznimkama u ASP.NET Core-u (UseExceptionHandler() međuprogram).

18) Koje su ključne sigurnosne prakse u .NET aplikacijama?

Sigurnost u .NET-u obuhvaća više slojeva, uključujući autentifikaciju, autorizaciju, šifriranje podataka i validaciju unosa.

Ključne prakse:

  1. Koristiti ASP.NET identitet za autentifikaciju i upravljanje ulogama.
  2. Omogući HTTPS (SSL/TLS) za šifriranje podataka.
  3. Korak po korak do prijave validacija podataka i parametrizirani upiti kako bi se spriječilo SQL injection.
  4. Koristiti API-ji za zaštitu podataka za osiguranje kolačića i tokena.
  5. Implementirati JWT (JSON web tokeni) za autentifikaciju bez stanja u API-jima.

Primjer: JWT-bazirana autentifikacija se često koristi u mikroservisima za provjeru identiteta korisnika bez održavanja stanja sesije.


19) Objasnite razliku između trbušnih mišićatract klase i sučelja u C#.

svojstvo Kormilartract klasa Sučelje
Izvršenje Može sadržavati implementacije metoda Samo deklaracije (C# 8 dopušta zadane vrijednosti)
Višestruko nasljeđivanje Nije podržano Podržano
Konstruktori Može imati konstruktore Ne može imati konstruktore
Koristite slučaj Osnovna klasa s dijeljenim kodom stract za više nepovezanih klasa

Primjer:

abstract class Animal { public abstract void Speak(); }
interface IPet { void Play(); }

A Dog klasa može nasljeđivati ​​od Animal i provesti IPet istovremeno.


20) Koji se obrasci dizajna obično koriste u .NET-u i koje su njihove prednosti?

Obrasci dizajna su dokazana rješenja za ponavljajuće probleme dizajna softvera. Oni poboljšavaju održivost, skalabilnost i čitljivost.

tip uzorka Primjer Description
stvaralačka Singleton, Tvornica Upravljajte stvaranjem objekata.
Strukturalan Adapter, Dekorater Kombinirajte klase ili objekte.
bihevioralna Promatrač, Strategija Definirajte komunikaciju objekata.

Primjer: U .NET Coreu, Singleton uzorak često se koristi za dijeljene usluge (npr. bilježenje) registrirajući ih kod AddSingleton() u injekciji ovisnosti.


21) Što je .NET MAUI i kako se razlikuje od Xamarin?

.NET MAUI (Višeplatformsko korisničko sučelje aplikacije) je evolucija Xamarin.Forms. Omogućuje programerima izradu višeplatformske aplikacije za Android, IOS, macOSi Windows iz jedne zajedničke baze koda.

svojstvo XamarinObrasci .NET FIKSNO
Okvirna baza .NET Framework / Mono Ujedinjeni .NET 6+
Architektura Projekti specifični za platformu Struktura jednog projekta
Izvođenje Umjereno Poboljšano s .NET runtime okruženjem
Vruće ponovno učitavanje ograničen Potpuna podrška za vruće ponovno punjenje

Primjer: Jedan sam .NET MAUI projekt može uključivati ​​kod specifičan za platformu pod mapama poput Platforms/Android or Platforms/iOS, a istovremeno dijeli zajedničke komponente korisničkog sučelja na različitim platformama.

Korist: Pojednostavljuje razvoj na više platformi i poboljšava održavanje.


22) Što je Blazor i koji su njegovi različiti modeli hostinga?

blejzer je okvir za izgradnju interaktivnih web korisničkih sučelja pomoću C# umjesto JavaSkripta. Omogućuje full-stack web razvoj s .NET-om.

Model hostinga Description Mjesto izvršenja
Blazor poslužitelj Radi na poslužitelju, šalje ažuriranja korisničkog sučelja putem SignalR Server
Blazor WebAssembly Izvodi se na strani klijenta u pregledniku koristeći WebAssembly preglednik
Blazor hibrid (MAUI) Kombinira web sučelje s izvornom aplikacijom za stolna računala/mobilne uređaje Lokalna aplikacija

Primjer: Blazor Server aplikacije su prikladne za poslovne nadzorne ploče koje zahtijevaju sigurnu, centraliziranu kontrolu, dok Blazor WebAssembly odgovara aplikacijama koje rade izvan mreže.


23) Što su mikroservisi u .NET-u i koje prednosti nude u odnosu na monolitnu arhitekturu?

Arhitektura mikroservisa dekomponira aplikaciju na neovisne, implementabilne usluge, pri čemu svaki obrađuje određenu poslovnu sposobnost.

Aspekt monolitan Microservices
razvoj Pojedinačna jedinica Neovisne usluge
skalabilnost Skaliranje cijele aplikacije Skaliranje po usluzi
Tehnološki stog fiksni Podrška za poliglote
Pronalazak pogreške Nizak visok

Prednosti:

  • Neovisno postavljanje i skaliranje.
  • Lakše izoliranje kvara i brži oporavak.
  • Omogućuje CI/CD cjevovode i DevOps prakse.

Primjer: Sustav e-trgovine temeljen na .NET-u mogao bi odvojiti OrderService, InventoryServicei PaymentService kao pojedinačne REST ili gRPC usluge.


24) Kako gRPC poboljšava komunikaciju u .NET mikroservisima u usporedbi s REST API-jima?

gRPC (Google Poziv udaljene procedure) je visokoučinkovit komunikacijski okvir koji koristi Protokol Buffers (protobuf) za serijalizaciju poruka.

svojstvo REST API gRPC
Format JSON Binarni (protobuf)
Brzina Sporije zbog parsiranja JSON-a Puno brže
komunikacija HTTP 1.1 HTTP/2 (dvosmjerno)
stract OpenAPI .proto datoteke
Koristite slučaj Web aplikacije Interna komunikacija u službi

Primjer: U .NET-u, gRPC usluge su definirane pomoću .proto datoteke i kompajlirane u C# kod, nudeći brže i kompaktnije poruke idealne za mikroservise i IoT.


25) Koje su neke najbolje prakse za optimizaciju performansi u .NET aplikacijama?

Optimizacija performansi ključna je vještina za starije programere. Optimizacija bi se trebala usredotočiti na učinkovitost koda, upravljanje memorijom i interakcije s bazom podataka.

Najbolje prakse:

  1. Koristite asinkrono programiranje (async/await) kako bi se spriječilo blokiranje.
  2. Keširanje često korištenih podataka korištenjem MemoryCachea ili Redisa.
  3. Minimizirajte alokacije I koristiti Span<T> ili objedinjavanje za velike količine podataka.
  4. Kôd profila korištenje alata poput točkeTrace ili PerfView.
  5. Optimizirajte EF upite sa AsNoTracking() za podatke samo za čitanje.

Primjer:

var users = context.Users.AsNoTracking().ToList();

Ovim se izbjegava tracking overhead, poboljšavajući performanse za velike skupove rezultata.


26) Koje su tehnike keširanja dostupne u .NET Coreu?

Predmemoriranje poboljšava performanse privremenim pohranjivanjem podataka za ponovnu upotrebu.

Vrsta predmemorije Description Primjer upotrebe
Predmemorija u memoriji Pohranjuje podatke u memoriju poslužitelja. IMemoryCache
Distribuirana predmemorija Dijeljena predmemorija na više poslužitelja. IDistributedCache, Redis
Keširanje odgovora Sprema HTTP odgovore u predmemoriju. ResponseCache atribut
Predmemoriranje izlaza Ponovno koristi puni renderirani izlaz. ASP.NET Core middleware

Primjer:

_cache.Set("EmployeeList", employeeData, TimeSpan.FromMinutes(30));

Za distribuirano keširanje, Redis se često koristi za okruženja s uravnoteženim opterećenjem.


27) Kako implementirate zapisivanje i praćenje u .NET Core aplikacijama?

Vođenje evidencije je neophodno za tracproblemi s kraljem i praćenje zdravlja sustava. .NET Core pruža ugrađene alate za evidentiranjetraccije koje se mogu integrirati s pružateljima usluga trećih strana.

Tehnike:

  • Koristiti ILogger sučelje za strukturirano bilježenje.
  • Integrirajte s Serilog, NLog, ili Uvid u aplikaciju.
  • Pohranite zapisnike u centralizirane sustave kao što su ELK (Elastični sloj).

Primjer:

public class UserController
{
    private readonly ILogger<UserController> _logger;
    public UserController(ILogger<UserController> logger)
    {
        _logger = logger;
    }
}

Alati za praćenje:

  • Azure Uvid u aplikaciju
  • Prometej + Grafana
  • Nova relikvija / Datadog

28) Koje su glavne opcije implementacije dostupne za .NET aplikacije?

.NET aplikacije mogu se implementirati pomoću nekoliko fleksibilnih metoda:

Vrsta postavljanja Description Koristite slučaj
Implementacija ovisno o okviru (FDD) Zahtijeva .NET runtime instaliran na hostu. Dijeljeni serveri.
Samostalno raspoređivanje (SCD) Uključuje .NET runtime u paketu. Izolirane aplikacije u oblaku.
Docker kontejneri Paketi aplikacije s ovisnostima. Mikroservisi i CI/CD.
Azure Usluga aplikacija Hosting u oblaku za web aplikacije. Skalabilne SaaS aplikacije.

Primjer: Implementacija .NET 8 Web API-ja kao Docker kontejnera poboljšava prenosivost i automatizaciju CI/CD-a.


29) Kako se Azure integrirati s .NET aplikacijama za razvoj u oblaku?

Azure pruža prvoklasnu integraciju s .NET-om za izgradnju, implementaciju i upravljanje cloud-native aplikacijama.

Ključ Azure Usluge za .NET:

  1. Azure Usluga aplikacija – hostirati web aplikacije.
  2. Azure Funkcije – računanje bez servera za pozadinske zadatke.
  3. Azure SQL baze podataka – potpuno upravljana relacijska baza podataka.
  4. Azure Servisni autobus – redovi čekanja poruka za distribuirane sustave.
  5. Azure Ključ Vault – sigurne tajne i vjerodajnice.

Primjer: .NET mikroservis može koristiti Azure Ključ Vault sigurno pohranjivanje nizova za povezivanje s bazom podataka tijekom implementacije putem Azure DevOps CI/CD cjevovod.


30) Koji se okviri za testiranje obično koriste u .NET-u i po čemu se razlikuju?

Testiranje osigurava pouzdanost i održivost aplikacije. .NET podržava više okvira za testiranje.

Okvir Description Glavne značajke
xJedinica Moderni alat za testiranje otvorenog koda. Paralelno izvršavanje testova.
NUjedinica Zrelo, široko korišteno u poduzećima. Testiranje vođeno atributima.
MSTest Microsoftizvorni okvir za testiranje. Integracija s Visual Studiom.

Primjer:

[Fact]
public void Add_ReturnsSum()
{
    Assert.Equal(4, Calculator.Add(2, 2));
}

Najbolje prakse:

  • Koristiti Ismijavanje (Moq) za ovisnosti.
  • Održavati visoka pokrivenost testovima s CI/CD integracijom.
  • Uključivati testovi integracije za validaciju API-ja.

31) Koje su ključne nove značajke uvedene u .NET 8?

.NET 8 uvodi optimizacije performansi, izvorni AOT, i poboljšana oblak-native mogućnosti. Nastavlja se Microsoftcilj stvaranja jedinstvenog, višeplatformskog ekosustava.

Ključni dijelovi:

  1. Izvorni AOT (kompilacija unaprijed): Smanjuje vrijeme pokretanja i memorijski otisak.
  2. Poboljšanja ASP.NET Core-a: Brže usmjeravanje i poboljšana podrška za HTTP/3.
  3. Blazor United: Kombinira serversku stranu i webAssembly modeli za hibridne aplikacije.
  4. Poboljšanja performansi: 20–30% brže EF Core i LINQ operacije.
  5. Proširena podrška za MAUI: Poboljšani alati za višeplatformsko korisničko sučelje.

Primjer: Izvorni AOT omogućuje male, samostalne izvršne datoteke idealne za mikroservise i kontejnerizirane implementacije.


32) Što je kompilacija unaprijed (AOT) u .NET-u i kada se treba koristiti?

AOT kompilacija Prekompilira .NET Intermediate Language (IL) u izvorni kod prije izvođenja, poboljšavajući performanse pokretanja i smanjujući ovisnost o JIT kompajleru.

Tip Description Najbolji slučaj upotrebe
JIT (Just-In-Time) Kompajlira IL za vrijeme izvođenja. Aplikacije za stolna računala ili poslužitelje.
AOT (Unaprijed vremena) Kompajlira IL prije izvođenja. Mikroservisi, IoT, sustavi s niskom latencijom.

Prednosti:

  • Brže vrijeme pokretanja.
  • Manji memorijski otisak.
  • Bolje performanse kontejnera.

Primjer:

dotnet publish -r linux-x64 -p:PublishAot=true

Ova naredba stvara izvornu AOT-kompiliranu binarnu datoteku za Linux.


33) Kako .NET programeri mogu integrirati AI ili ML mogućnosti u aplikacije?

Integracija umjetne inteligencije u .NET može se postići korištenjem ML.NET, Azure Kognitivne uslugeili vanjske biblioteke.

Pristupi:

  1. ML.NET: Izradite i trenirajte modele strojnog učenja izravno u .NET-u.
  2. Azure Kognitivne usluge: Koristite unaprijed obučene API-je za vid, govor i jezik.
  3. ONNX vrijeme izvođenja: Pokrenite modele obučene u Python/TensorFlow unutar .NET aplikacija.
  4. Integracija OpenAI API-ja: Sigurno pristupite generativnoj umjetnoj inteligenciji (npr. GPT modelima) putem REST-a.

Primjer (ML.NET):

var mlContext = new MLContext();
var model = mlContext.Model.Load("model.zip", out _);

Slučaj upotrebe: Predviđanje odljeva korisnika, otkrivanje anomalija ili inteligentne preporuke u poslovnim sustavima.


34) Koje su glavne razlike između REST API-ja i Minimal API-ja u .NET 8?

Minimalni API-ji pružaju jednostavan način za izgradnju HTTP API-ja s minimalnim standardnim kodom.

svojstvo REST API (baziran na kontroleru) Minimalni API
Struktura Koristi kontrolere i usmjeravanje Definicije umetnutih ruta
Postavljanje Zahtijeva atribute i middleware Brže i jednostavnije
Izvođenje Umjereno Nešto brže (manje troškova)
Koristite slučaj Složeni poslovni API-ji Mikroservisi ili mali API-ji

Primjer:

app.MapGet("/hello", () => "Hello, World!");

Minimalni API-ji su idealni za mikroservise i serverless aplikacije zbog svoje jednostavnosti i performansi.


35) Koji su glavni principi sigurnog kodiranja u .NET aplikacijama?

Sigurnost se mora provoditi od faze razvoja. .NET pruža ugrađene mehanizme i najbolje prakse za sigurno kodiranje.

Ključna načela:

  1. Potvrdi sve unose: Spriječite napade injekcijom.
  2. Koristite parametrizirane upite: Izbjegavajte SQL injekcije.
  3. Šifriranje osjetljivih podataka: Koristiti System.Security.Cryptography.
  4. Sigurno pohranite tajne: Koristiti Azure Ključ Vault ili korisničke tajne.
  5. Primijeni autentifikaciju i autorizaciju: Implementirati ASP.NET Identity ili JWT tokene.
  6. Koristite pravila HTTPS-a i CORS-a: Spriječite curenje podataka i neovlašteni pristup.

Primjer:

using (var cmd = new SqlCommand("SELECT * FROM Users WHERE Id = @id", conn))
{
    cmd.Parameters.AddWithValue("@id", userId);
}

36) Kako koristite alate za profiliranje i dijagnostiku za optimizaciju performansi .NET-a?

Profiliranje pomaže u identificiranju uskih grla u performansama CPU-a, memorije ili I/O-a.

Popularni alati:

Oruđe Svrha
točkaTrace / dotMemory Profiliranje i otkrivanje curenja memorije
PerfView Analiza performansi niske razine
dotnet-trace Naredbeni redak tracing.
Uvid u aplikaciju Telemetrija u stvarnom vremenu u produkciji

Pristup:

  1. Identificirajte uska grla pomoću brojača performansi.
  2. Putanje profilnog koda i alokacije memorije.
  3. Optimizirajte LINQ upite i smanjite stvaranje objekata.

Primjer: Koristiti dotnet-counters monitor do track metrike u stvarnom vremenu poput aktivnosti CPU-a i GC-a.


37) Koje su neke učinkovite DevOps prakse za .NET aplikacije?

DevOps integracija osigurava bržu isporuku i bolju kvalitetu kroz automatizaciju i suradnju.

Ključne prakse:

  • Cjevovodi CI/CD: Koristite GitHub akcije ili Azure DevOps za automatizirane izgradnje i implementacije.
  • Infrastruktura kao Code (IaC): Implementirajte s ARM predlošcima, Terraformom ili Bicepom.
  • Automatizirano testiranje: Integrirajte xUnit/NUnit u CI tijekove rada.
  • Kontejnerizacija: Koristite Docker slike i Kubernetes (AKS).
  • Praćenje: Kontinuirana telemetrija s Application Insights.

Primjer: CI/CD cjevovod u Azure DevOps stručnjaci mogu izgraditi, testirati i implementirati .NET API za Azure Usluga aplikacije automatski nakon Git commita.


38) Kako osiguravate skalabilnost i toleranciju grešaka u distribuiranim sustavima temeljenim na .NET-u?

Skalabilnost i tolerancija grešaka mogu se postići korištenjem principa distribuiranog dizajna i otpornih obrazaca.

Strategije:

  1. Horizontalno skaliranje: Implementirajte više instanci iza uravnoteživača opterećenja.
  2. Uzorak prekidača: Koristite Polly biblioteku za rješavanje prolaznih grešaka.
  3. Predmemoriranje i stavljanje u red: Koristite Redis i Azure Servisna sabirnica za asinhronu obradu.
  4. Dijeljenje baze podataka: Distribuirajte velike skupove podataka.
  5. Zdravstveni pregledi: Koristiti AddHealthChecks() middleware u .NET Coreu.

Primjer (prekidač):

Policy.Handle<HttpRequestException>()
      .CircuitBreaker(3, TimeSpan.FromMinutes(1));

39) Kakvu ulogu kontejnerizacija igra u modernim .NET implementacijama?

Kontejnerizacija, prvenstveno putem Lučki radnik, izolira aplikacije i njihove ovisnosti, osiguravajući dosljednost u različitim okruženjima.

Prednosti:

  • Predvidljive implementacije (radi na bilo kojem hostu).
  • Pojednostavljeno skaliranje s Kubernetesom (AKS).
  • Lagan i brži od virtualnih strojeva.
  • Lako se integrira s CI/CD tijekovima rada.

Primjer (Dockerfile):

FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "MyApp.dll"]

Slučaj upotrebe: Implementacija .NET mikroservisnog klastera u Kubernetes poboljšava skalabilnost i izolaciju grešaka.


40) Kako biste dizajnirali skalabilni .NET sustav za milijune korisnika?

Dizajn sustava u .NET-u zahtijeva arhitektonsko predviđanje koje kombinira performanse, dostupnost i održivost.

Ključ ArchiTekturalne odluke:

  1. Koristite mikroservise: Svaka usluga se može samostalno implementirati.
  2. Usvojite CQRS + Event Sourcing: Odvojeni modeli čitanja/pisanja.
  3. Asinkrono slanje poruka: Koristiti Azure Servisni autobus ili Kafka.
  4. API pristupnik: Upravljajte prometom i sigurnošću.
  5. Sloj predmemorije: Redis ili MemoryCache za brzi pristup.
  6. Skalabilnost baze podataka: Koristiti Azure Cosmos DB ili particionirani SQL.
  7. Automatsko skaliranje: Konfiguriraj putem Azure Usluga aplikacija ili AKS.

Primjer tijeka dizajna:

Korisnici → API pristupnik → Uravnoteživač opterećenja → Mikroservisi (.NET 8 API-ji) → Baza podataka + Redis predmemorija → Telemetrija putem Application Insightsa.


🔍 Najčešća pitanja za .NET intervju sa stvarnim scenarijima i strateškim odgovorima

U nastavku slijedi 10 realističnih, često postavljanih pitanja za intervju za .NET, zajedno sa strateškim objašnjenjima i primjerima odgovora. Uključena je kombinacija pitanja temeljenih na znanju, ponašanju i situaciji.

Obavezne fraze su korištene po jednom.

1) Možete li objasniti razliku između .NET Frameworka, .NET Corea i .NET 6/7/8?

Očekivano od kandidata: Razumijevanje evolucije .NET ekosustava, mogućnosti više platformi i dugoročne podrške.

Primjer odgovora: „.NET Framework je originalni Windows-only framework, dok je .NET Core uveo višeplatformske mogućnosti i bolje performanse. .NET 6 i novije verzije ujedinjuju ekosustav pod jednim, modernim, višeplatformskim SDK-om sa značajnim poboljšanjima performansi, spremnosti za oblak i brzine razvoja.”


2) Kako implementirati ubrizgavanje ovisnosti u .NET i zašto je to korisno?

Očekivano od kandidata: Razumijevanje razdvajanja, održivosti i testiranja.

Primjer odgovora: „Ubrizgavanje ovisnosti u .NET-u se obično implementira putem ugrađenog kontejnera u Microsoft.Extensions.DependencyInjection prostor imena. Pomaže u smanjenju čvrstog povezivanja, poboljšava mogućnost testiranja i pojednostavljuje upravljanje životnim ciklusom omogućujući rješavanje ovisnosti tijekom izvođenja.


3) Opišite zahtjevan .NET projekt na kojem ste radili i kako ste doprinijeli njegovom uspjehu.

Očekivano od kandidata: Doprinos u stvarnom svijetu, rješavanje problema i odgovornost.

Primjer odgovora: „U svojoj prethodnoj ulozi pomogao sam optimizirati naslijeđenu .NET aplikaciju redizajniranjem slojeva za pristup podacima i uvođenjem predmemorije kako bi se smanjilo vrijeme odziva. To je poboljšalo performanse za više od trideset posto i značajno poboljšalo korisničko iskustvo.“


4) Kako osiguravate performanse i skalabilnost .NET aplikacije?

Očekivano od kandidata: Korištenje alata za profiliranje, arhitektonskih obrazaca i najboljih praksi kodiranja.

Primjer odgovora: „Pratim performanse pomoću alata za profiliranje kao što je dot“Trace i Application Insights, primijenite asinhrono programiranje gdje je to prikladno, implementirajte predmemoriranje i koristite skalabilne arhitektonske obrasce poput mikroservisa kada je to potrebno.”


5) Objasnite razliku između async/await i multithreadinga u .NET-u.

Očekivano od kandidata: Razumijevanje modela konkurentnosti.

Primjer odgovora: „Asinkroni i await omogućuju operacije bez blokiranja korištenjem asinkronog uzorka temeljenog na zadacima, dok višenitnost uključuje stvaranje zasebnih niti koje se izvode paralelno. Asinkrono programiranje idealno je za zadatke vezane uz ulazno/izlazne operacije, dok je višenitnost korisna za operacije vezane uz procesor.“


6) Recite mi o situaciji u kojoj ste morali brzo naučiti novu .NET tehnologiju. Kako ste tome pristupili?

Očekivano od kandidata: Prilagodljivost i kontinuirano učenje.

Primjer odgovora: „Na prethodnoj poziciji, trebao sam brzo naučiti Blazor za klijentski projekt. Posvetio sam vrijeme službenim Microsoft dokumentaciju, vježbao s malim sandbox projektima i surađivao s članovima tima kako bih osigurao da na vrijeme isporučim kvalitetne rezultate.”


7) Kako biste dizajnirali RESTful API u ASP.NET Coreu? Kojih ključnih principa se pridržavate?

Očekivano od kandidata: Poznavanje HTTP metoda, usmjeravanja, verzija i najboljih praksi.

Primjer odgovora: „Pridržavam se REST principa kao što su pravilno imenovanje resursa, odsutnost stanja i ispravna upotreba HTTP glagola. Također implementiram validaciju modela, ispravne statusne kodove, verzioniranje i mehanizme autentifikacije kao što je JWT.“


8) Kako se nosite s kratkim rokovima kada radite na više .NET projekata istovremeno?

Očekivano od kandidata: Prioritizacija, organizacija, komunikacija.

Primjer odgovora: „Na prethodnom poslu rješavao sam kratke rokove tako što sam zadatke dijelio na upravljive komponente, davao prioritet ključnim značajkama i održavao kontinuiranu komunikaciju sa zainteresiranim stranama kako bih postavio realna očekivanja.“


9) Kako održavate kvalitetu koda u .NET aplikacijama?

Očekivano od kandidata: Poznavanje testiranja, recenzija i alata.

Primjer odgovora: „Kvalitet koda održavam jediničnim testiranjem s xUnitom, pregledima koda, statičkom analizom koda i pridržavanjem SOLID principa. Ovi koraci osiguravaju dugoročnu održivost i pouzdanost.“


10) Pretpostavimo da produkcijski .NET API počne povremeno vraćati 500 pogrešaka. Kako biste pristupili dijagnosticiranju problema?

Očekivano od kandidata: Strukturirano otklanjanje pogrešaka, korištenje alata i smirenost pod pritiskom.

Primjer odgovora: „U svojoj posljednjoj ulozi, započeo bih pregledom logova, provjerom stanja ovisnosti i korištenjem Application Insightsa ili sličnih alata za…“ trace kvarova. Zatim bih izolirao je li problem povezan s bazom podataka, konfiguracijom ili kodom te bih nakon replikacije i validacije implementirao ciljane ispravke.”

Sažmite ovu objavu uz: