Top 40 .Net-interviewvragen en -antwoorden (2026)

Voor de voorbereiding op een .Net-interview is het belangrijk dat u duidelijk weet wat u kunt tegenkomen. Ook is het belangrijk dat u de belangrijkste concepten begrijpt. De tweede zin moet namelijk '.Net-interviewvragen' bevatten om direct relevantie aan te tonen.
Exploring .Net Interview opent sterke carriรจrekansen, ondersteund door branchetrends, praktische toepassingen en diepgaande technische ervaring. Professionals met domeinexpertise, ervaring op root-niveau en sterke analysevaardigheden profiteren van de belangrijkste vragen en antwoorden die zowel starters als ervaren kandidaten helpen hun vaardigheden te versterken in technische discussies op basisniveau, gevorderd niveau, middenniveau, senior niveau en viva. Lees meer ...
๐ Gratis PDF-download: .Net-interviewvragen en -antwoorden
1) Wat is het .NET Framework en wat zijn de belangrijkste onderdelen ervan?
Het .NET Framework is een softwareontwikkelingsplatform dat is ontwikkeld door Microsoft die een gecontroleerde omgeving biedt voor het bouwen, implementeren en uitvoeren van applicaties. Het ondersteunt meerdere talen, zoals C#, VB.NET en F#. Het framework zorgt voor taalinteroperabiliteit en geheugenbeheer via de Common Language Runtime (CLR).
Belangrijke onderdelen:
| Bestanddeel | Beschrijving |
|---|---|
| CLR (Common Language Runtime) | Beheert het geheugen, de beveiliging en de uitvoering van code. |
| FCL (Framework Class Library) | Een enorme verzameling herbruikbare klassen, interfaces en waardetypen. |
| ASP.NET | Maakt dynamische webapplicatieontwikkeling mogelijk. |
| ADO.NET | Biedt toegang tot gegevens uit verschillende gegevensbronnen. |
Voorbeeld: De AC#-applicatie kan ADO.NET gebruiken om verbinding te maken met een SQL Server-database via een beheerde omgeving, waardoor veiligheid en schaalbaarheid worden gegarandeerd.
2) Leg het verschil uit tussen .NET Framework, .NET Core en .NET 5/6/7.
Microsoft heeft .NET ontwikkeld tot een uniform platform ter ondersteuning van platformonafhankelijke ontwikkeling.
. NET Framework is Windows-alleen, terwijl .NET Core is open-source en cross-platform. Van .NET 5 verder, Microsoft samengevoegd tot รฉรฉn uniforme runtime.
| Kenmerk | . NET Framework | .NET Core | .NET 5/6/7+ |
|---|---|---|---|
| platform Ondersteuning | Windows Slechts | Cross-platform | Cross-platform |
| Open-Source | Nee | Ja | Ja |
| Prestaties | Gemiddeld | Hoge | Zeer hoog |
| Deployment | Systeembreed | Op zichzelf staand | Flexibel |
| Voorbeeld gebruik | Verouderde bedrijfsapps | Cloud en microservices | Moderne multi-platform apps |
3) Hoe beheert de Common Language Runtime (CLR) de uitvoering van code?
De CLR fungeert als de uitvoeringsengine voor .NET-applicaties. Het converteert Intermediate Language (IL)-code naar native machinecode via Just-In-Time (JIT)-compilatie. Het biedt ook automatisch geheugenbeheer met behulp van garbage collection.
Belangrijkste functies van CLR:
- Geheugen management โ Wijst automatisch geheugen toe en maakt geheugen vrij.
- Veiligheidsmanagement โ Controleert de beveiliging van codetoegang en rolgebaseerde beveiliging.
- uitzondering Handling โ Zorgt ervoor dat runtime-fouten worden opgemerkt en op de juiste manier worden beheerd.
- Threadbeheer โ Zorgt voor efficiรซnte uitvoering van multithreaded code.
Voorbeeld: Wanneer een .NET-programma wordt uitgevoerd, compileert de CLR op aanvraag IL-code naar native code, waardoor optimale uitvoering wordt gegarandeerd.
4) Wat zijn de verschillende typen JIT-compilers in .NET?
De CLR biedt drie typen Just-In-Time (JIT)-compilers:
| Type | Beschrijving | Use Case |
|---|---|---|
| Pre-JIT (NGen) | Compileert de volledige code in รฉรฉn keer tijdens de implementatie. | Verkort de opstarttijd. |
| Econo-JIT | Compileert alleen methoden die tijdens runtime worden aangeroepen en verwijdert ze daarna. | Omgevingen met beperkt geheugen. |
| Normale JIT | Compileert de code methode voor methode tijdens de uitvoering. | Standaard uitvoeringsmodel. |
Elke JIT-aanpak houdt een evenwicht tussen prestatie en grondstof gebruik gebaseerd op de implementatiecontext.
5) Wat zijn assemblies in .NET en hoe verschillen ze van naamruimten?
An bijeenkomst is de kleinste inzetbare eenheid van een .NET-applicatie, die gecompileerde code, metadata en bronnen bevat. namespace, daarentegen, is een logische groepping van klassen die worden gebruikt voor het organiseren van code.
| Vergelijk | Assembly | namespace |
|---|---|---|
| Natuur en wandelen | Fysiek bestand (DLL/EXE) | Logische groepping |
| Doel | Implementatie en versiebeheer | Code organisatie |
| Bevat | Metadata, manifest, MSIL | Klassen, interfaces |
| Voorbeeld | System.Data.dll |
System.Data.SqlClient |
Voorbeeld: System.Data.dll assembly kan meerdere naamruimten bevatten, zoals System.Data en System.Data.SqlClient.
6) Wat is het verschil tussen waardetypen en referentietypen in .NET?
In .NET, waardetypen gegevens rechtstreeks opslaan, terwijl referentietypen verwijzingen naar het geheugenadres van de gegevens opslaan.
| Basis | Waarde type | Referentietype |
|---|---|---|
| Opslag | Opstapelen | Hoop |
| Voorbeeldtypen | int, float, bool, struct | klasse, array, string |
| Het kopiรซren | Kopieert de werkelijke waarde | Kopieert de referentie |
| Null toegestaan | Nee | Ja |
Voorbeeld:
int a = 5; int b = a; โ Beiden hebben een eigen exemplaar.
ClassObj x = new ClassObj(); ClassObj y = x; โ Beide verwijzen naar hetzelfde object.
7) Hoe werkt garbage collection in .NET?
Garbage Collection (GC) in .NET beheert automatisch het geheugen door ongebruikte objecten terug te winnen. Het werkt in generaties prestaties te optimaliseren.
Generatie GC:
- Gen 0: Kortlevende objecten (bijvoorbeeld tijdelijke variabelen).
- Gen 1: Objecten met een gemiddelde levensduur, afkomstig uit Gen 0.
- Gen 2: Langlevende objecten (bijvoorbeeld statische gegevens).
Voordelen:
- Voorkomt geheugenlekken.
- Verbetert de applicatieprestaties.
- Vereenvoudigt geheugenbeheer voor ontwikkelaars.
Voorbeeld: Wanneer er niet langer naar een object wordt verwezen, verwijdert de GC het van de heap, waardoor geheugen vrijkomt voor hergebruik.
8) Wat zijn afgevaardigden en hoe verschillen ze van evenementen?
A delegeren is een type dat verwijzingen naar methoden vertegenwoordigt, terwijl een gebeurtenis is een mechanisme dat communicatie tussen klassen mogelijk maakt via afgevaardigden.
| Aspect | Delegeren | Evenementen |
|---|---|---|
| Definitie | Object dat naar een methode verwijst | Meldingsmechanisme |
| Aanroeping | Kan direct gebeld worden | Aangeroepen via abonnees |
| Voorbeeld | Action<int> myDelegate; |
event EventHandler myEvent; |
Voorbeeld:
public delegate void Notify(); public event Notify OnProcessCompleted;
Hier OnProcessCompleted is een evenement gebaseerd op de Notify delegeren.
9) Wat zijn de belangrijkste voor- en nadelen van het gebruik van .NET Core?
| Voordelen | Nadelen |
|---|---|
| Ondersteuning voor meerdere platforms | Steilere leercurve voor beginners |
| Open source en community-gedreven | Beperkte ondersteuning voor oudere frameworks |
| Hoge prestaties met Kestrel-server | Migratie-uitdagingen voor oudere projecten |
| Ingebouwde afhankelijkheidsinjectie | Sommige API's zijn nog in ontwikkeling |
Voorbeeld: .NET Core is ideaal voor het bouwen van microservices die draaien op Docker-containers op Linux en Windows servers.
10) Leg de levenscyclus van een ASP.NET-pagina uit.
De levenscyclus van een ASP.NET-pagina definieert hoe een pagina wordt geรฏnitialiseerd, verwerkt en weergegeven. Elke fase bevat gebeurtenissen die ontwikkelaars kunnen verwerken om aangepaste logica uit te voeren.
| Stadium | Beschrijving |
|---|---|
| Paginaverzoek | Gebruiker vraagt โโde pagina voor de eerste keer op. |
| Start | Bepaalt of het verzoek een postback is. |
| initialisatie | Alle besturingselementen zijn geรฏnitialiseerd. |
| Laden | Paginagegevens en besturingselementen worden geladen. |
| Postback-gebeurtenisafhandeling | Verwerkt gebeurtenissen die door besturingselementen worden geactiveerd. |
| Rendering | De pagina wordt weergegeven in HTML. |
| Lossen | Opruimfase nadat het antwoord is verzonden. |
Voorbeeld: Ontwikkelaars gebruiken vaak Page_Load or Page_Init gebeurtenissen om besturingselementen te initialiseren of gegevensbindingen in te stellen.
11) Wat is het Entity Framework (EF) en hoe vereenvoudigt het databasebewerkingen?
Entiteitskader (EF) is Microsoft's Object-relationele mapper (ORM) Dit elimineert de noodzaak voor de meeste code voor gegevenstoegang doordat ontwikkelaars via .NET-objecten met een database kunnen communiceren. Het genereert automatisch SQL-query's en maakt data-mapping mogelijk.pingen relatiebeheer.
Belangrijkste kenmerken:
- steunen LINQ-naar-entiteiten queries.
- Aanbod automatische verandering trackoning en trage voortgang.
- Biedt Code-Eerst de database-eersten Model-Eerst benaderingen.
Voorbeeld:
using (var context = new AppDbContext())
{
var employees = context.Employees.Where(e => e.Salary > 50000).ToList();
}
Hier vertaalt EF de LINQ-query naar SQL, haalt de resultaten op en brengt ze in kaart Employee objecten automatisch.
12) Leg het verschil uit tussen Code-Eerst de database-eerst- en model-eerst-benaderingen in Entity Framework.
| Aanpak | Beschrijving | Use Case |
|---|---|---|
| Code-Eerst | Definieer klassen en laat EF de database genereren. | Greenfield-projecten. |
| Database-Eerst | Maak eerst een database aan, waarna EF entiteitsklassen genereert. | Bestaande databases. |
| Model-Eerst | Ontwerp entiteiten visueel en EF genereert zowel DB's als klassen. | Diagramgestuurd ontwerp. |
Voorbeeld: In een Code-Eerste aanpak: ontwikkelaars maken C#-klassen zoals Customer en Orderen EF bouwt automatisch de overeenkomstige tabellen in SQL Server.
13) Wat is LINQ en wat zijn de voordelen ervan bij .NET-ontwikkeling?
Taal geรฏntegreerde query (LINQ) maakt het mogelijk om gegevens uit verschillende bronnen (objecten, XML, databases) op te vragen met behulp van consistente syntaxis, rechtstreeks in C# of VB.NET.
Het verbetert leesbaarheid, typeveiligheiden controle tijdens het compileren.
Voordelen van LINQ:
- Uniforme syntaxis voor verschillende gegevensbronnen.
- Vermindert de complexiteit van de code.
- Biedt IntelliSense en validatie tijdens compilatie.
- Ondersteunt uitgestelde uitvoering voor prestatieoptimalisatie.
Voorbeeld:
var highSalaries = employees.Where(e => e.Salary > 70000)
.OrderBy(e => e.Name)
.ToList();
14) Wat is het verschil tussen IEnumerable, ICollection en IQueryable in .NET?
| Interface | Uitvoeringstype | Use Case | Belangrijkste verschil: |
|---|---|---|---|
| IOntelbaar | In-memory iteratie | Lokale collecties | Wordt uitgevoerd aan de clientzijde. |
| ICollectie | In-memory, ondersteunt toevoegen/verwijderen | Collecties wijzigen | Breidt IEnumerable uit met collectiebeheer. |
| Ik kan opvragen | Uitgestelde uitvoering (op afstand) | LINQ naar SQL/EF | Wordt uitgevoerd op databaseniveau. |
Voorbeeld: gebruik IQueryable in Entity Framework maakt database-side filtering mogelijk, wat veel efficiรซnter is dan het gebruik van IEnumerable in het geheugen.
15) Wat is asynchrone programmering en hoe werken async en await in .NET?
Asynchrone programmering in .NET maakt het mogelijk om meerdere bewerkingen uit te voeren zonder de hoofdthread te blokkeren. Dit verbetert de responsiviteit van web- en desktoptoepassingen.
sleutel Concepts:
asyncmarkeert een methode als asynchroon.awaitOnderbreekt de uitvoering van de methode totdat de verwachte taak is voltooid.- Voorkomt dat threads vastlopen en de gebruikersinterface vastloopt.
Voorbeeld:
public async Task<int> GetDataAsync()
{
var data = await httpClient.GetStringAsync("https://api.example.com");
return data.Length;
}
Voordeel: De hoofdthread blijft vrij om andere taken uit te voeren, terwijl de I/O-bewerking op de achtergrond wordt uitgevoerd.
16) Wat is Dependency Injection (DI) en waarom is het belangrijk in .NET Core?
Dependency Injection (DI) is een ontwerppatroon dat het mogelijk maakt losse koppeling tussen klassen door afhankelijkheden te injecteren in plaats van ze intern te creรซren.
Voordelen:
- Verbetert de testbaarheid.
- Promotes modulair ontwerp.
- Vereenvoudigt configuratiebeheer.
Voorbeeld:
public class OrderService
{
private readonly IEmailService _emailService;
public OrderService(IEmailService emailService)
{
_emailService = emailService;
}
}
In .NET Core is DI ingebouwd in het raamwerk via de IServiceCollection container gebruikt in Startup.cs.
17) Hoe ga je effectief om met uitzonderingen in .NET-applicaties?
Uitzonderingsafhandeling zorgt ervoor dat runtimefouten correct worden beheerd zonder de applicatie te laten crashen. Het primaire mechanisme is de probeer-te-vangen-eindelijk blok.
Voorbeeld:
try
{
int result = 10 / divisor;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Cannot divide by zero.");
}
finally
{
Console.WriteLine("Operation completed.");
}
Praktische tips:
- Probeer altijd eerst specifieke uitzonderingen te detecteren.
- Gebruik
finallyvoor opruimlogica - Vermijd lege catch-blokken.
- Gebruik globale uitzonderingsafhandeling in ASP.NET Core (
UseExceptionHandler()middleware).
18) Wat zijn de belangrijkste beveiligingspraktijken in .NET-toepassingen?
Security in .NET omvat meerdere lagen, waaronder authenticatie, autorisatie, gegevensversleuteling en invoervalidatie.
Belangrijkste praktijken:
- Gebruik ASP.NET-identiteit voor authenticatie en rolbeheer.
- Enable HTTPS (SSL/TLS) voor gegevensversleuteling.
- Toepassen gegevensvalidatie en geparametriseerde query's om SQL-injectie te voorkomen.
- Gebruik API's voor gegevensbescherming voor het beveiligen van cookies en tokens.
- Implementeren JWT (JSON-webtokens) voor stateless authenticatie in API's.
Voorbeeld: JWT-gebaseerde authenticatie wordt vaak gebruikt in microservices om de identiteit van gebruikers te verifiรซren zonder de sessiestatus te behouden.
19) Leg het verschil uit tussen abstract-klassen en interfaces in C#.
| Kenmerk | Abstract Klasse | Interface |
|---|---|---|
| Implementatie | Kan methode-implementaties bevatten | Alleen declaraties (C# 8 staat standaardinstellingen toe) |
| Meerdere overerving | Niet ondersteund | ondersteunde |
| constructors | Kan constructeurs hebben | Kan geen constructeurs hebben |
| Use Case | Basisklasse met gedeelde code | mettract voor meerdere niet-gerelateerde klassen |
Voorbeeld:
abstract class Animal { public abstract void Speak(); }
interface IPet { void Play(); }
A Dog klasse kan erven van Animal en implementeren IPet tegelijk.
20) Welke ontwerppatronen worden vaak gebruikt in .NET en wat zijn hun voordelen?
Ontwerppatronen zijn bewezen oplossingen voor terugkerende softwareontwerpproblemen. Ze verbeteren onderhoudbaarheid, schaalbaarheid en leesbaarheid.
| Patroon type | Voorbeeld | Beschrijving |
|---|---|---|
| Creatief | Singleton, fabriek | Beheer het aanmaken van objecten. |
| structuur- | Adapter, Decorateur | Combineer klassen of objecten. |
| Behavioral | Observator, Strategie | Definieer objectcommunicatie. |
Voorbeeld: In .NET Core is de Singletonpatroon wordt vaak gebruikt voor gedeelde diensten (bijvoorbeeld logging) door ze te registreren bij AddSingleton() in afhankelijkheidsinjectie.
21) Wat is .NET MAUI en hoe verschilt het van Xamarin?
.NET MAUI (Multi-platform app-gebruikersinterface) is de evolutie van Xamarin.Formulieren. Hiermee kunnen ontwikkelaars platformonafhankelijke applicaties besteld, Android, IOS, macOSen Windows vanuit รฉรฉn gedeelde codebase.
| Kenmerk | Xamarin.Formulieren | .NET VASTE |
|---|---|---|
| Kaderbasis | .NET Framework / Mono | Geรผnificeerde .NET 6+ |
| Architectuur | Platformspecifieke projecten | Enkele projectstructuur |
| Prestaties | Gemiddeld | Verbeterd met .NET runtime |
| Heet herladen | Beperkt | Volledige hot reload-ondersteuning |
Voorbeeld: Een .NET MAUI project kan platformspecifieke code bevatten onder mappen zoals Platforms/Android or Platforms/iOS, terwijl gemeenschappelijke UI-componenten op alle platforms worden gedeeld.
Voordeel: Vereenvoudigt platformonafhankelijke ontwikkeling en verbetert het onderhoud.
22) Wat is Blazor en wat zijn de verschillende hostingmodellen?
blazer is een raamwerk voor het bouwen van interactieve web-UI's met behulp van C# in plaats van JavaScript. Maakt full-stack webontwikkeling met .NET mogelijk.
| Hostingmodel | Beschrijving | Uitvoeringslocatie |
|---|---|---|
| Blazor-server | Draait op de server, stuurt UI-updates via SignalR | Server |
| Blazor WebAssembly | Wordt client-side in de browser uitgevoerd met behulp van WebAssembly | browser |
| Blazor Hybrid (MAUI) | Combineert web-UI met native desktop-/mobiele app | Lokale app |
Voorbeeld: Blazor Server-toepassingen zijn geschikt voor bedrijfsdashboards die een veilige, gecentraliseerde controle vereisen, terwijl Blazor WebAssembly geschikt voor offline-geschikte applicaties.
23) Wat zijn microservices in .NET en welke voordelen bieden ze ten opzichte van monolithische architectuur?
Microservices-architectuur splitst een applicatie op in onafhankelijke, inzetbare diensten, die elk een specifieke bedrijfscapaciteit beheren.
| Aspect | monolitisch | Microservices |
|---|---|---|
| Deployment | Eenheid | Onafhankelijke diensten |
| Schaalbaarheid | Hele app schaalbaar | Schaal per service |
| Technologie stapel | vast | Polyglot-ondersteuning |
| Foutisolatie | Laag | Hoge |
Voordelen:
- Onafhankelijke implementatie en schaalbaarheid.
- Eenvoudigere foutisolatie en sneller herstel.
- Maakt CI/CD-pijplijnen en DevOps-praktijken mogelijk.
Voorbeeld: Een .NET-gebaseerd e-commercesysteem kan OrderService, InventoryServiceen PaymentService als individuele REST- of gRPC-services.
24) Hoe verbetert gRPC de communicatie in .NET-microservices vergeleken met REST API's?
gRPC (Google (Remote Procedure Call) is een communicatieframework met hoge prestaties dat gebruikmaakt van Protocol Buffers (protobuf) voor berichtenserialisatie.
| Kenmerk | REST API | gRPC |
|---|---|---|
| Formaat | JSON | Binair (protobuf) |
| Snelheid | Langzamer vanwege JSON-parsing | Veel sneller |
| Communicatie | HTTP 1.1 | HTTP/2 (bidirectioneel) |
| mettract | OpenAPI | .proto-bestanden |
| Use Case | Web-apps | Interne servicecommunicatie |
Voorbeeld: In .NET worden gRPC-services gedefinieerd met behulp van .proto bestanden en gecompileerd naar C#-code, wat zorgt voor snellere, compactere berichten, ideaal voor microservices en IoT.
25) Wat zijn enkele best practices voor prestatie-optimalisatie in .NET-toepassingen?
Prestatieoptimalisatie is een belangrijke vaardigheid voor senior ontwikkelaars. Optimalisatie moet gericht zijn op code-efficiรซntie, geheugenbeheer en database-interacties.
Praktische tips:
- Gebruik asynchrone programmering (
async/await) om blokkering te voorkomen. - Cache veelgebruikte gegevens met behulp van MemoryCache of Redis.
- Minimaliseer toewijzingen en gebruiken
Span<T>of pooling voor grote hoeveelheden data. - Profielcode met behulp van tools zoals dotTrace of PerfView.
- Optimaliseer EF-query's with
AsNoTracking()voor alleen-lezen gegevens.
Voorbeeld:
var users = context.Users.AsNoTracking().ToList();
Dit voorkomt tracKing overhead, waardoor de prestaties bij grote resultatenreeksen verbeteren.
26) Welke cachetechnieken zijn beschikbaar in .NET Core?
Caching verbetert de prestaties door gegevens tijdelijk op te slaan voor hergebruik.
| Cachetype | Beschrijving | Voorbeeld gebruik |
|---|---|---|
| In-Memory Cache | Slaat gegevens op in het servergeheugen. | IMemoryCache |
| Gedistribueerde cache | Gedeelde cache op meerdere servers. | IDistributedCache, Redis |
| Responscaching | HTTP-reacties worden in de cache opgeslagen. | ResponseCache attribuut |
| Uitvoer caching | Hergebruik de volledige gerenderde uitvoer. | ASP.NET Core-middleware |
Voorbeeld:
_cache.Set("EmployeeList", employeeData, TimeSpan.FromMinutes(30));
Voor gedistribueerde caching wordt Redis vaak gebruikt in omgevingen met load-balanced.
27) Hoe implementeert u logging en monitoring in .NET Core-toepassingen?
Het bijhouden van logboeken is essentieel voor tracbelangrijke problemen en het bewaken van de systeemstatus. .NET Core biedt ingebouwde logboekregistratietracoplossingen die kunnen integreren met externe leveranciers.
technieken:
- Gebruik ILogger interface voor gestructureerde logging.
- Integreren met Serieus, NLLogof Application Insights.
- Sla logs op in gecentraliseerde systemen zoals ELK (Elastische Stapel).
Voorbeeld:
public class UserController
{
private readonly ILogger<UserController> _logger;
public UserController(ILogger<UserController> logger)
{
_logger = logger;
}
}
Bewakingstools:
- Azure Application Insights
- Prometheus + Grafana
- Nieuw Relikwie / Datadog
28) Wat zijn de belangrijkste implementatieopties die beschikbaar zijn voor .NET-toepassingen?
.NET-toepassingen kunnen worden geรฏmplementeerd met behulp van verschillende flexibele methoden:
| Implementatietype | Beschrijving | Use Case |
|---|---|---|
| Framework-afhankelijke implementatie (FDD) | Vereist dat .NET runtime op de host is geรฏnstalleerd. | Gedeelde servers. |
| Zelfstandige implementatie (SCD) | Inclusief .NET runtime in het pakket. | Geรฏsoleerde cloud-apps. |
| Docker-containers | Pakkettenapp met afhankelijkheden. | Microservices en CI/CD. |
| Azure App-service | Cloudgebaseerde hosting voor webapps. | Schaalbare SaaS-apps. |
Voorbeeld: Door een .NET 8 Web API te implementeren als een Docker-container, worden de portabiliteit en CI/CD-automatisering verbeterd.
29) Hoe werkt het Azure integreren met .NET-applicaties voor cloudontwikkeling?
Azure biedt eersteklas integratie met .NET voor het bouwen, implementeren en beheren van cloud-native applicaties.
sleutel Azure Diensten voor .NET:
- Azure App-service โ webapplicaties hosten.
- Azure Functies โ serverloze computing voor achtergrondtaken.
- Azure SQL-database โ volledig beheerde relationele database.
- Azure Servicebus โ berichtenwachtrijen voor gedistribueerde systemen.
- Azure sleutel Vault โ beveiligde geheimen en referenties.
Voorbeeld: Een .NET-microservice kan gebruik maken van Azure sleutel Vault om databaseverbindingsreeksen veilig op te slaan tijdens de implementatie via een Azure DevOps CI/CD-pijplijn.
30) Welke testframeworks worden veel gebruikt in .NET en hoe verschillen ze?
Testen zorgt voor de betrouwbaarheid en onderhoudbaarheid van applicaties. .NET ondersteunt meerdere testframeworks.
| Kader | Beschrijving | BELANGRIJKSTE KENMERKEN |
|---|---|---|
| xEenheid | Moderne, open-source testtool. | Parallelle testuitvoering. |
| NUn | Volwassen, veelgebruikt in ondernemingen. | Attribuutgestuurde tests. |
| MSTest | Microsoft's eigen testframework. | Integratie met Visual Studio. |
Voorbeeld:
[Fact]
public void Add_ReturnsSum()
{
Assert.Equal(4, Calculator.Add(2, 2));
}
Praktische tips:
- Gebruik Spotten (Moq) voor afhankelijkheden.
- Onderhouden hoge testdekking met CI/CD-integratie.
- omvatten integratietests voor API-validatie.
31) Wat zijn de belangrijkste nieuwe functies die in .NET 8 zijn geรฏntroduceerd?
.NET 8 introduceert prestatie-optimalisaties, inheemse AOT, en verbeterd cloud-native mogelijkheden. Het gaat door Microsoft's doel om een โโuniform, platformonafhankelijk ecosysteem te creรซren.
Enkele hoogtepunten:
- Native AOT (Ahead-of-Time-compilatie): Vermindert de opstarttijd en het geheugengebruik.
- Verbeteringen in ASP.NET Core: Snellere routering en verbeterde HTTP/3-ondersteuning.
- Blazor United: Combineert server-side en webAssembly modellen voor hybride apps.
- Prestatieverbeteringen: 20โ30% snellere EF Core- en LINQ-bewerkingen.
- Uitgebreide MAUI-ondersteuning: Verbeterde tooling voor platformonafhankelijke gebruikersinterface.
Voorbeeld: Native AOT maakt kleine, zelfstandige uitvoerbare bestanden mogelijk die ideaal zijn voor microservices en containerimplementaties.
32) Wat is Ahead-of-Time (AOT)-compilatie in .NET en wanneer moet het worden gebruikt?
AOT-compilatie compileert .NET Intermediate Language (IL) voor naar native code vรณรณr runtime, waardoor de opstartprestaties worden verbeterd en de afhankelijkheid van de JIT-compiler wordt verminderd.
| Type | Beschrijving | Beste gebruiksgeval |
|---|---|---|
| JIT (Just-In-Time) | Compileert IL tijdens runtime. | Desktop- of server-apps. |
| AOT (Ahead-of-Time) | Compileert IL vรณรณr runtime. | Microservices, IoT, systemen met lage latentie. |
Voordelen:
- Snellere opstarttijd.
- Kleinere geheugenvoetafdruk.
- Betere containerprestaties.
Voorbeeld:
dotnet publish -r linux-x64 -p:PublishAot=true
Met deze opdracht wordt een native AOT-gecompileerd binair bestand voor Linux gegenereerd.
33) Hoe kunnen .NET-ontwikkelaars AI- of ML-mogelijkheden integreren in applicaties?
AI-integratie in .NET kan worden bereikt met behulp van ML.NET, Azure Cognitieve diensten, of externe bibliotheken.
benaderingen:
- ML.NET: Bouw en train machine learning-modellen rechtstreeks in .NET.
- Azure Cognitieve diensten: Gebruik vooraf getrainde API's voor zicht, spraak en taal.
- ONNX-runtime: Run-modellen die getraind zijn in Python/TensorFlow binnen .NET-apps.
- OpenAI API-integratie: Krijg veilig toegang tot generatieve AI (bijv. GPT-modellen) via REST.
Voorbeeld (ML.NET):
var mlContext = new MLContext();
var model = mlContext.Model.Load("model.zip", out _);
Use case: Voorspellen van gebruikersverloop, detectie van anomalieรซn en intelligente aanbevelingen in bedrijfssystemen.
34) Wat zijn de belangrijkste verschillen tussen REST API's en minimale API's in .NET 8?
Minimale API's bieden een lichtgewicht manier om HTTP API's te bouwen met minimale boilerplatecode.
| Kenmerk | REST API (controllergebaseerd) | Minimale API |
|---|---|---|
| Structuur | Gebruikt controllers en routing | Inline routedefinities |
| Setup | Vereist attributen en middleware | Sneller en eenvoudiger |
| Prestaties | Gemiddeld | Iets sneller (minder overhead) |
| Use Case | Complexe bedrijfs-API's | Microservices of kleine API's |
Voorbeeld:
app.MapGet("/hello", () => "Hello, World!");
Minimale API's zijn ideaal voor microservices en serverloze applicaties vanwege hun eenvoud en prestaties.
35) Wat zijn de belangrijkste principes van veilig coderen in .NET-toepassingen?
Beveiliging moet vanaf de ontwikkelingsfase worden gehandhaafd. .NET biedt ingebouwde mechanismen en best practices voor veilig coderen.
Basisprincipes:
- Valideer alle invoer: Voorkom injectieaanvallen.
- Gebruik geparameteriseerde query's: Voorkom SQL-injectie.
- Versleutel gevoelige gegevens: Gebruik
System.Security.Cryptography. - Bewaar geheimen veilig: Gebruik Azure sleutel Vault of gebruikersgeheimen.
- Authenticatie en autorisatie toepassen: Implementeren
ASP.NET Identityof JWT-tokens. - Gebruik HTTPS- en CORS-beleid: Voorkom datalekken en ongeautoriseerde toegang.
Voorbeeld:
using (var cmd = new SqlCommand("SELECT * FROM Users WHERE Id = @id", conn))
{
cmd.Parameters.AddWithValue("@id", userId);
}
36) Hoe gebruikt u profilerings- en diagnosetools om de .NET-prestaties te optimaliseren?
Met profilering kunt u prestatieknelpunten in de CPU, het geheugen of de I/O identificeren.
Populaire hulpmiddelen:
| Gereedschap | Doel |
|---|---|
| stipTrace / dotMemory | Profilering en detectie van geheugenlekken |
| PerfView | Prestatieanalyse op laag niveau |
| dotnet-trace | Opdrachtregel tracING |
| Application Insights | Realtime-telemetrie in productie |
Nadering:
- Identificeer knelpunten met behulp van prestatietellers.
- Profielcodepaden en geheugentoewijzingen.
- Optimaliseer LINQ-query's en verminder het aanmaken van objecten.
Voorbeeld: Gebruik dotnet-counters monitor naar track realtime statistieken zoals CPU- en GC-activiteit.
37) Wat zijn enkele effectieve DevOps-praktijken voor .NET-applicaties?
DevOps-integratie zorgt voor snellere levering en betere kwaliteit door automatisering en samenwerking.
Belangrijkste praktijken:
- CI/CD-pijplijnen: Gebruik GitHub Actions of Azure DevOps voor geautomatiseerde builds en implementaties.
- Infrastructuur als Code (IaC): Implementeren met ARM-sjablonen, Terraform of Bicep.
- Geautomatiseerd testen: Integreer xUnit/NUnit in CI-workflows.
- Containerisatie: Gebruik Docker-images en Kubernetes (AKS).
- Monitoring: Continue telemetrie met Application Insights.
Voorbeeld: Een CI/CD-pijplijn in Azure DevOps kan een .NET API bouwen, testen en implementeren om Azure App Service automatisch bij een Git-commit.
38) Hoe zorgt u voor schaalbaarheid en fouttolerantie in op .NET gebaseerde gedistribueerde systemen?
Schaalbaarheid en fouttolerantie kunnen worden bereikt door gebruik te maken van gedistribueerde ontwerpprincipes en veerkrachtige patronen.
Strategies:
- Horizontaal schalen: Implementeer meerdere instanties achter een load balancer.
- Patroon van stroomonderbreker: Gebruik de Polly-bibliotheek om tijdelijke fouten te verwerken.
- Caching en wachtrij: Gebruik Redis en Azure Servicebus voor asynchrone verwerking.
- Database-sharding: Verspreid grote datasets.
- Gezondheidchecks: Gebruik
AddHealthChecks()middleware in .NET Core.
Voorbeeld (stroomonderbreker):
Policy.Handle<HttpRequestException>()
.CircuitBreaker(3, TimeSpan.FromMinutes(1));
39) Welke rol speelt containerisatie in moderne .NET-implementaties?
Containerisatie, voornamelijk door havenarbeider, isoleert applicaties en hun afhankelijkheden en zorgt voor consistentie in alle omgevingen.
Voordelen:
- Voorspelbare implementaties (werkt op elke host).
- Vereenvoudigde schaalbaarheid met Kubernetes (AKS).
- Lichtgewicht en sneller dan virtuele machines.
- Eenvoudige integratie met CI/CD-workflows.
Voorbeeld (Dockerfile):
FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "MyApp.dll"]
Use case: Door een .NET-microservicescluster in Kubernetes te implementeren, worden de schaalbaarheid en foutisolatie verbeterd.
40) Hoe zou u een schaalbaar .NET-systeem ontwerpen voor miljoenen gebruikers?
Systeemontwerp in .NET vereist architectonisch inzicht dat prestaties, beschikbaarheid en onderhoudbaarheid combineert.
sleutel Archiarchitecturale beslissingen:
- Gebruik microservices: Elke service is onafhankelijk inzetbaar.
- CQRS + Event Sourcing implementeren: Gescheiden lees-/schrijfmodellen.
- Asynchrone berichtenuitwisseling: Gebruik Azure Servicebus of Kafka.
- API-gateway: Beheer verkeer en beveiliging.
- Cachelaag: Redis of MemoryCache voor snelle toegang.
- Schaalbaarheid van databases: Gebruik Azure Cosmos DB of gepartitioneerde SQL.
- Automatisch schalen: Configureren via Azure App Service of AKS.
Voorbeeldontwerpstroom:
Gebruikers โ API Gateway โ Load Balancer โ Microservices (.NET 8 API's) โ Database + Redis Cache โ Telemetrie via Application Insights.
๐ Top .NET-interviewvragen met realistische scenario's en strategische antwoorden
Hieronder vindt u 10 realistische, veelgestelde .NET-interviewvragen, inclusief strategische uitleg en voorbeeldantwoorden. De vragen bevatten een mix van kennis-, gedrags- en situationele vragen.
De vereiste zinnen zijn elk รฉรฉn keer gebruikt.
1) Kunt u het verschil uitleggen tussen .NET Framework, .NET Core en .NET 6/7/8?
Verwacht van kandidaat: Inzicht in de evolutie van het .NET-ecosysteem, platformonafhankelijke mogelijkheden en ondersteuning op de lange termijn.
Voorbeeld antwoord: โ.NET Framework is het origineel Windows-only framework, terwijl .NET Core platformonafhankelijke mogelijkheden en betere prestaties introduceerde. .NET 6 en later verenigen het ecosysteem onder รฉรฉn moderne, platformonafhankelijke SDK met aanzienlijke verbeteringen in prestaties, cloudgereedheid en ontwikkelingssnelheid.โ
2) Hoe implementeer je dependency injection in .NET en waarom is het nuttig?
Verwacht van kandidaat: Begrip van ontkoppeling, onderhoudbaarheid en testbaarheid.
Voorbeeld antwoord: Afhankelijkheidsinjectie in .NET wordt doorgaans geรฏmplementeerd via de ingebouwde container in de Microsoft.Extensions.DependencyInjection naamruimte. Het helpt de nauwe koppeling te verminderen, verbetert de testbaarheid en vereenvoudigt het levenscyclusbeheer door afhankelijkheden tijdens runtime te laten oplossen.
3) Beschrijf een uitdagend .NET-project waaraan je hebt gewerkt en hoe je hebt bijgedragen aan het succes ervan.
Verwacht van kandidaat: Bijdrage aan de echte wereld, probleemoplossing en eigenaarschap.
Voorbeeld antwoord: In mijn vorige functie hielp ik bij het optimaliseren van een oudere .NET-applicatie door datatoegangslagen opnieuw te ontwerpen en caching te introduceren om de responstijden te verkorten. Dit verbeterde de prestaties met meer dan dertig procent en verbeterde de gebruikerservaring aanzienlijk.
4) Hoe zorgt u ervoor dat een .NET-applicatie goed presteert en schaalbaar is?
Verwacht van kandidaat: Gebruik van profileringshulpmiddelen, architectuurpatronen en best practices voor codering.
Voorbeeld antwoord: โIk monitor de prestaties met behulp van profilingtools zoals dotTrace en Application Insights, pas waar nodig asynchroon programmeren toe, implementeer caching en gebruik schaalbare architectuurpatronen zoals microservices wanneer nodig.โ
5) Leg het verschil uit tussen async/await en multithreading in .NET.
Verwacht van kandidaat: Inzicht in gelijktijdigheidsmodellen.
Voorbeeld antwoord: Async en await maken niet-blokkerende bewerkingen mogelijk door gebruik te maken van het Task-based Asynchronous Pattern, terwijl multithreading het aanmaken van afzonderlijke threads inhoudt die parallel lopen. Asynchrone programmering is ideaal voor I/O-gebonden taken, terwijl multithreading nuttig is voor CPU-gebonden bewerkingen.
6) Vertel eens over een situatie waarin je snel een nieuwe .NET-technologie moest leren. Hoe heb je dat aangepakt?
Verwacht van kandidaat: Aanpassingsvermogen en continu leren.
Voorbeeld antwoord: โIn een vorige functie moest ik Blazor snel leren voor een klantproject. Ik besteedde tijd aan officiรซle Microsoft documentatie, geoefend met kleine sandbox-projecten en samengewerkt met teamleden om ervoor te zorgen dat ik op tijd kwaliteitsresultaten afleverde.โ
7) Hoe zou je een RESTful API in ASP.NET Core ontwerpen? Welke belangrijke principes hanteer je daarbij?
Verwacht van kandidaat: Kennis van HTTP-methoden, routering, versiebeheer en best practices.
Voorbeeld antwoord: Ik volg REST-principes zoals correcte resourcenaamgeving, stateloosheid en correct gebruik van HTTP-werkwoorden. Ik implementeer ook modelvalidatie, correcte statuscodes, versiebeheer en authenticatiemechanismen zoals JWT.
8) Hoe ga je om met krappe deadlines als je tegelijkertijd aan meerdere .NET-projecten werkt?
Verwacht van kandidaat: Prioriteiten stellen, organisatie, communicatie.
Voorbeeld antwoord: โBij mijn vorige baan kon ik omgaan met krappe deadlines door taken op te delen in beheersbare onderdelen, kritieke functies te prioriteren en voortdurend te communiceren met belanghebbenden om realistische verwachtingen te scheppen.โ
9) Hoe behoudt u de codekwaliteit in .NET-applicaties?
Verwacht van kandidaat: Kennis van testen, beoordelingen en tools.
Voorbeeld antwoord: Ik handhaaf de codekwaliteit door middel van unittesten met xUnit, codereviews, statische codeanalyse en naleving van de SOLID-principes. Deze stappen garanderen onderhoudbaarheid en betrouwbaarheid op de lange termijn.
10) Stel dat een .NET API in productie af en toe fouten van het type 500 retourneert. Hoe zou u dit probleem diagnosticeren?
Verwacht van kandidaat: Gestructureerd debuggen, gebruik van hulpmiddelen en kalmte onder druk.
Voorbeeld antwoord: โIn mijn vorige functie begon ik met het controleren van logbestanden, het nagaan van de status van afhankelijkheden en het gebruik van Application Insights of vergelijkbare tools om trace-fouten. Ik zou dan vaststellen of het probleem databasegerelateerd, configuratiegerelateerd of codegerelateerd is, en na replicatie en validatie gerichte oplossingen implementeren.โ
