Welche .NET-Interviewfragen sollte ich erwarten?

Von Aaron Cao · Aktualisiert am

Welche .NET-Interviewfragen sollte ich erwarten?
Erwarten Sie Fragen zur Laufzeitumgebung (CLR, Garbage Collection, Werttypen gegenüber Referenztypen), zur Sprache (async und await, LINQ, Generics, Records), zu Frameworks (ASP.NET Core Middleware und Dependency Injection, EF Core) sowie Szenarien wie ein Speicherleck in einem langlebigen Dienst oder ein langsamer API-Endpunkt. Bewertet wird Ihre Argumentation.

Erwarten Sie Fragen zur Laufzeitumgebung (CLR, Garbage Collection, Werttypen gegenüber Referenztypen), zur Sprache (async und await, LINQ, Generics, Records), zu Frameworks (ASP.NET Core Middleware und Dependency Injection, EF Core) sowie Szenarien wie ein Speicherleck in einem langlebigen Dienst oder ein langsamer API-Endpunkt. Bewertet wird Ihre Argumentation.

Welche Laufzeit- und Sprachfragen eröffnen ein .NET-Interview?

Interviewende beginnen dort, wo auch das Framework beginnt: bei der Laufzeitumgebung. Sie sollten erklären können, was die Common Language Runtime leistet (Assemblies laden, Zwischensprache just-in-time kompilieren, Speicher verwalten), und anschließend bei der Garbage Collection eine Ebene tiefer gehen. Die Folgefragen sind vorhersehbar: Warum arbeitet der Collector mit Generationen, wodurch überlebt ein Objekt bis zu einer späteren Generation, wozu dient der Large Object Heap und warum gibt es IDisposable und using überhaupt, wenn der Speicher verwaltet wird? Beantworten Sie die letzte Frage mit nicht verwalteten Ressourcen wie Datei-Handles und Verbindungen, die der Collector nicht zeitnah freigeben kann.

  • Werttypen und Referenztypen. Wo sie jeweils gespeichert werden, was Kopieren jeweils bedeutet und welche Kosten Boxing verursacht.
  • async und await. Erklären Sie, dass eine erwartete Task den aufrufenden Thread freigibt, statt ihn zu blockieren, warum async void Ereignishandlern vorbehalten ist und welcher Deadlock gemeint ist, wenn vor .Result gewarnt wird.
  • LINQ. Die verzögerte Ausführung ist die Falle: Eine IEnumerable-Abfrage läuft bei der Enumeration, nicht beim Schreiben, und eine Abfrage an einen Datenbankprovider wird nur für Ausdrücke in SQL übersetzt, die der Provider versteht.
  • Generics, Interfaces und Records. Einschränkungen, warum Interfaces für die Testbarkeit besser als Basisklassen geeignet sind und welchen Nutzen die Wertgleichheit eines Records bietet.

Erklären Sie jeweils den Mechanismus und eine Folge. Die Aussage, dass eine Sammlung der jüngsten Generation günstig ist, weil die meisten Objekte früh verschwinden, entspricht dem erwarteten Niveau; nur die Generationen ohne Begründung zu nennen, reicht nicht.

Wie sehen Fragen zu ASP.NET Core und EF Core aus?

Sie schreiben Controller sicher, befürchten aber Fragen zur Infrastruktur, mit der Sie selten direkt arbeiten. Diese Sorge ist berechtigt, denn genau dort liegen die Framework-Fragen. Daher folgt die Infrastruktur in der üblichen Reihenfolge, jeweils mit der typischen Anschlussfrage.

  • Die Request-Pipeline. Middleware läuft in der Reihenfolge ihrer Registrierung; jede Komponente entscheidet, ob sie die nächste aufruft. Anschlussfrage: Wo steht die Authentifizierung im Verhältnis zur Autorisierung, und was geschieht, wenn beide in umgekehrter Reihenfolge registriert werden?
  • Lebensdauern bei der Dependency Injection. Ein Singleton besteht während der gesamten Anwendung, Scoped während einer Anfrage und Transient wird bei jeder Auflösung neu erstellt. Die klassische Falle ist, einen Scoped-Dienst wie einen Datenbankkontext in ein Singleton zu injizieren; erklären Sie, warum das ein Fehler ist.
  • Konfiguration und Options. Mehrschichtige Quellen, umgebungsspezifische Überschreibungen und das Options-Pattern für typisierte Einstellungen.
  • EF Core. Change Tracking und wann es für schreibgeschützte Abfragen deaktiviert werden sollte, das N+1-Problem und wie Eager Loading oder Projektion es verhindert, Migrationen und der ehrliche Punkt, an dem eine handgeschriebene Abfrage LINQ überlegen ist.
  • Tests. Wie Interfaces und der DI-Container einen Dienst testbar machen und was ein In-Memory-Provider über eine echte Datenbank beweist beziehungsweise nicht beweist.

Die stärksten Bewerber verknüpfen diese Themen: Ein Scoped-Kontext, der innerhalb eines Singleton-Hintergrunddienstes aufgelöst wird, ist keine Trivia-Frage, sondern ein Speicher- und Korrektheitsfehler, den Interviewende tatsächlich schon ausgeliefert haben. Sie möchten hören, dass Sie ausdrücklich einen Scope erstellen würden.

Wie laufen die Szenariofragen ab?

In Interviewrunden für Senior-Positionen wird ein Symptom präsentiert und Ihr Vorgehen beobachtet. Ein typisches Beispiel: Ein Backend-Entwickler bewirbt sich bei einem Logistikunternehmen auf eine Senior-Stelle und erfährt, dass der Speicherverbrauch einer ASP.NET Core API tagelang steigt, bis der Container neu startet. Eine überzeugende Antwort rät nicht. Sie fragt, was sich geändert hat, prüft auf Objekte, die von statischen Caches oder langlebigen Ereignisabonnements festgehalten werden, sucht nach Scoped-Diensten in Singletons, untersucht das Wachstum des Large Object Heap und zieht einen Speicher-Snapshot heran, bevor sie eine Lösung vorschlägt. Bewertet wird die Reihenfolge der Untersuchung.

Weitere wiederkehrende Szenarien: ein Endpunkt, der nur unter Last langsam ist, wobei die Analyse von synchronen Datenbankaufrufen zu async, erschöpften Verbindungspools und Caching führt; eine Race Condition in einer gemeinsam genutzten Collection und die Kosten nebenläufiger Collections sowie verschiedener Sperroptionen; eine Anfrage, die drei nachgelagerte Dienste aufrufen muss, einschließlich des Umgangs mit Zeitüberschreitungen, Wiederholungsversuchen und Teilausfällen; sowie eine Migration, die ohne Ausfallzeit eine Spalte hinzufügen muss. Nennen Sie jeweils die Einschränkung, wählen Sie einen Mechanismus und sprechen Sie den Kompromiss aus.

Das fällt wesentlich leichter, wenn Sie solche Szenarien laut und mit Anschlussfragen geübt haben. Genau dafür wurde der Modus Probeinterview entwickelt; weitere Fragenkataloge nach Sprache und Rolle finden Sie unter Interviewfragen nach Rolle und Thema.

Kann ein KI-Interviewassistent bei .NET-Fragen helfen?

In Gesprächsrunden ja, innerhalb klarer Grenzen. Die native Desktop-App von SubcueAI für macOS und Windows erfasst Systemaudio und Mikrofon und zeigt kurze Antwortvorschläge in einem lokalen Overlay. Fragt das Gegenüber also, warum ein Scoped-Kontext innerhalb eines Singletons ein Fehler ist, sehen Sie den Mechanismus auf dem Bildschirm und können ihn mit eigenen Worten erklären. Die Browsererweiterung unterstützt Anrufe in Browser-Tabs unter Chrome und Edge, indem sie ausschließlich das Audio des Meeting-Tabs erfasst. Kein Bot tritt dem Anruf bei, und nichts wird in die Meeting-Seite eingeschleust; die Einrichtung wird auf der Seite Anleitung erklärt.

Die Grenzen: Eine beaufsichtigte Prüfung, eine Bildschirmaufzeichnung, ein vom Unternehmen verwalteter Laptop oder eine Live-Coding-Aufgabe, bei der Sie unter Beobachtung C# eingeben, liegen außerhalb des vorgesehenen Einsatzbereichs. Gerade beim Schreiben von Code ist der Assistent am schwächsten. Seine Stärken liegen bei den oben genannten Fragen zu Laufzeitumgebung, Frameworks und Abwägungen. Geben Sie ihm zuerst Ihren Lebenslauf, damit die Vorschläge die Systeme widerspiegeln, die Sie tatsächlich entwickelt haben; dieses Profil befindet sich im Lebenslauf-Builder.

FAQ

Warum verwendet der .NET-Garbage-Collector Generationen?

Die meisten Objekte verschwinden früh. Deshalb gewinnt das häufige und kostengünstige Bereinigen der jüngsten Generation den Großteil des Speichers zurück, ohne den gesamten Heap zu durchsuchen. Überlebende Objekte werden hochgestuft und seltener bereinigt, wodurch Pausen bei typischen Allokationsmustern kurz bleiben.

Was unterscheidet Singleton, Scoped und Transient in ASP.NET Core?

Ein Singleton wird einmal für die Anwendung erstellt, Scoped einmal pro Anfrage und Transient bei jeder Auflösung. Wird ein Scoped-Dienst in ein Singleton injiziert, bleibt er für die gesamte Lebensdauer der Anwendung erhalten, was bei Datenbankkontexten ein häufiger Fehler ist.

Was bewirkt await tatsächlich?

Es registriert den Rest der Methode als Fortsetzung und gibt die Kontrolle an den Aufrufer zurück, sodass der Thread frei ist, während die erwartete Arbeit abgeschlossen wird. Wird stattdessen mit .Result oder .Wait auf eine Task blockiert, kann das in Kontexten, die diesen Thread wieder benötigen, zu einem Deadlock führen.

Was ist das N+1-Problem in EF Core?

Dabei wird eine Liste übergeordneter Objekte geladen und anschließend für jedes davon eine eigene Abfrage nach seinen untergeordneten Objekten ausgeführt. Eager Loading mit Include oder eine Projektion ausschließlich der benötigten Felder macht daraus eine oder zwei Abfragen.

Kann SubcueAI bei einem beaufsichtigten .NET-Programmiertest helfen?

Nein. Beaufsichtigte und aufgezeichnete Prüfungen liegen außerhalb des vorgesehenen Einsatzbereichs, und Live-Coding unter Beobachtung ist Ihre eigene Arbeit. Der Assistent ist für Gesprächsrunden gedacht; der Probeinterview-Modus dient zur Vorbereitung darauf.

Verwandte Fragen

← Mehr zu Interviewfragen nach Rolle & Thema