Die 40 wichtigsten .NET-Interviewfragen und -antworten (2026)

Die Vorbereitung auf ein .NET-Interview erfordert Klarheit darüber, was Sie erwarten kann, und das Verständnis der wichtigsten Konzepte ist unerlässlich, da der zweite Satz „.NET-Interviewfragen“ enthalten muss, um die sofortige Relevanz herzustellen.
Die Vorbereitung auf .NET-Interviews eröffnet hervorragende Karrierechancen, die auf Branchentrends, praktischen Anwendungen und fundierter technischer Erfahrung basieren. Fachkräfte mit Domänenexpertise, praktischer Erfahrung und ausgeprägten analytischen Fähigkeiten profitieren von Top-Fragen und -Antworten, die sowohl Berufseinsteigern als auch erfahrenen Kandidaten helfen, ihre Kompetenzen in technischen Diskussionen auf allen Ebenen – von Grundlagen bis zu fortgeschrittenen Themen und im Rahmen von mündlichen Prüfungen – zu stärken. Lese mehr ...
👉 Kostenloser PDF-Download: .NET-Interviewfragen und -antworten
1) Was ist das .NET Framework und was sind seine wichtigsten Komponenten?
Das .NET Framework ist eine Softwareentwicklungsplattform, die von Microsoft Es bietet eine kontrollierte Umgebung zum Erstellen, Bereitstellen und Ausführen von Anwendungen. Es unterstützt mehrere Sprachen wie C#, VB.NET und F#. Das Framework gewährleistet Sprachinteroperabilität und Speichermanagement durch seine Common Language Runtime (CLR).
Schlüsselkomponenten:
| Komponente | Beschreibung |
|---|---|
| CLR (Common Language Runtime) | Verwaltet Speicher, Sicherheit und Codeausführung. |
| FCL (Framework Class Library) | Eine umfangreiche Sammlung wiederverwendbarer Klassen, Schnittstellen und Werttypen. |
| ASP.Netto | Ermöglicht die Entwicklung dynamischer Webanwendungen. |
| ADO.Netto | Ermöglicht den Datenzugriff aus verschiedenen Datenquellen. |
Ejemplo: Eine AC#-Anwendung kann ADO.NET verwenden, um über eine verwaltete Umgebung eine Verbindung zu einer SQL Server-Datenbank herzustellen und so Sicherheit und Skalierbarkeit zu gewährleisten.
2) Erläutern Sie den Unterschied zwischen .NET Framework, .NET Core und .NET 5/6/7.
Microsoft hat .NET zu einer einheitlichen Plattform weiterentwickelt, die die plattformübergreifende Entwicklung unterstützt.
. NET Framework is Windows-nur während .Netto-Kern ist Open Source und plattformübergreifend. Von .NET 5 ab sofort, Microsoft Sie wurden zu einer einheitlichen Laufzeitumgebung zusammengeführt.
| Merkmal | . NET Framework | .Netto-Kern | .NET 5/6/7+ |
|---|---|---|---|
| Plattformunterstützung | Windows einzige | Plattformübergreifende Backups möglich | Plattformübergreifende Backups möglich |
| Open Source | Nein | Ja | Ja |
| Leistung | Moderat | Hoch | Sehr hoch |
| Einsatz | Systemweit | In sich geschlossen | Flexibel |
| Anwendungsbeispiel | Legacy-Unternehmensanwendungen | Cloud & Microservices | Moderne Multiplattform-Apps |
3) Wie verwaltet die Common Language Runtime (CLR) die Codeausführung?
Die CLR fungiert als Ausführungs-Engine für .NET-Anwendungen. Sie wandelt IL-Code (Intermediate Language) mittels Just-In-Time-Kompilierung (JIT) in nativen Maschinencode um. Zudem bietet sie automatische Speicherverwaltung durch Garbage Collection.
Hauptfunktionen von CLR:
- Speicherverwaltung – Speicher wird automatisch zugewiesen und freigegeben.
- Sicherheitsmanagement – Überprüft die Zugriffssicherheit des Codes und die rollenbasierte Sicherheit.
- Ausnahmebehandlung – Stellt sicher, dass Laufzeitfehler erkannt und ordnungsgemäß behandelt werden.
- Thread-Verwaltung – Gewährleistet die effiziente Ausführung von Multithread-Code.
Ejemplo: Wenn ein .NET-Programm ausgeführt wird, kompiliert die CLR den IL-Code bei Bedarf in nativen Code und gewährleistet so eine optimale Ausführung.
4) Welche verschiedenen Arten von JIT-Compilern gibt es in .NET?
Die CLR bietet drei Arten von Just-In-Time (JIT)-Compilern:
| Typ | Beschreibung | Luftüberwachung |
|---|---|---|
| Vor-JIT (NGen) | Kompiliert den gesamten Code auf einmal zum Zeitpunkt der Bereitstellung. | Verkürzt die Startzeit. |
| Econo-JIT | Es werden nur die zur Laufzeit aufgerufenen Methoden kompiliert und anschließend verworfen. | Umgebungen mit begrenztem Speicher. |
| Normales JIT | Kompiliert den Code Methode für Methode während der Ausführung. | Standardausführungsmodell. |
Jeder JIT-Ansatz gleicht ab zwischen Leistung mit einem Ressourcenverwendung basierend auf dem Einsatzkontext.
5) Was sind Assemblies in .NET und wie unterscheiden sie sich von Namespaces?
An Versammlung ist die kleinste bereitstellbare Einheit einer .NET-Anwendung und enthält kompilierten Code, Metadaten und Ressourcen. Namensraumist hingegen eine logische Gruppierung von Klassen, die zur Codeorganisation verwendet wird.
| Vergleich | Assembly | Namespace |
|---|---|---|
| Natur | Physische Datei (DLL/EXE) | Logische Gruppierung |
| Zweck | Bereitstellung und Versionierung | Code-Organisation |
| Enthält | Metadaten, Manifest, MSIL | Klassen, Schnittstellen |
| Beispiel | System.Data.dll |
System.Data.SqlClient |
Ejemplo: System.Data.dll Eine Assembly kann mehrere Namensräume enthalten, wie zum Beispiel System.Data mit einem System.Data.SqlClient.
6) Worin besteht der Unterschied zwischen Werttypen und Referenztypen in .NET?
In .NET, Werttypen Daten direkt speichern, während Referenztypen Speichert Verweise auf die Speicheradresse der Daten.
| Verpflegung | Werttyp | Referenztyp |
|---|---|---|
| Lagerung | Stapeln | Heap |
| Beispieltypen | int, float, bool, struct | Klasse, Array, Zeichenkette |
| Kopieren | Kopiert den tatsächlichen Wert | Kopiert die Referenz |
| Nullwert zulässig | Nein | Ja |
Ejemplo:
int a = 5; int b = a; → Beide enthalten separate Kopien.
ClassObj x = new ClassObj(); ClassObj y = x; → Beide beziehen sich auf dasselbe Objekt.
7) Wie funktioniert die automatische Speicherbereinigung in .NET?
Die automatische Speicherbereinigung (Garbage Collection, GC) in .NET verwaltet den Speicher, indem sie nicht verwendete Objekte freigibt. Sie funktioniert in Generationen um die Leistung zu optimieren.
Generationenübergreifende GC:
- Gen 0: Kurzlebige Objekte (z. B. temporäre Variablen).
- Gen 1: Mittellanglebige Objekte, die von der Generation 0 befördert wurden.
- Gen 2: Langlebige Objekte (z. B. statische Daten).
Vorteile:
- Verhindert Speicherlecks.
- Verbessert die Anwendungsleistung.
- Vereinfacht die Speicherverwaltung für Entwickler.
Ejemplo: Wenn ein Objekt nicht mehr referenziert wird, entfernt der Garbage Collector es aus dem Heap und gibt so Speicher zur Wiederverwendung frei.
8) Was sind Delegierte und wie unterscheiden sie sich von Veranstaltungen?
A delegieren ist ein Typ, der Verweise auf Methoden repräsentiert, während ein Event ist ein Mechanismus, der die Kommunikation zwischen Klassen über Delegaten ermöglicht.
| Aspekt | Aufgaben delegieren, um Ressourcen optimal zu nutzen | Event |
|---|---|---|
| Definition | Objekt, das auf eine Methode verweist | Benachrichtigungsmechanismus |
| Aufruf | Kann direkt angerufen werden | Wird über Abonnenten aufgerufen |
| Beispiel | Action<int> myDelegate; |
event EventHandler myEvent; |
Ejemplo:
public delegate void Notify(); public event Notify OnProcessCompleted;
Dabei steht: OnProcessCompleted ist eine Veranstaltung, die auf der Notify delegieren.
9) Was sind die wichtigsten Vor- und Nachteile der Verwendung von .NET Core?
| Vorteile | Nachteile |
|---|---|
| Plattformübergreifende Unterstützung | Steilere Lernkurve für Anfänger |
| Open-Source und Community-gesteuert | Eingeschränkte Unterstützung für ältere Frameworks |
| Hohe Leistung mit dem Kestrel-Server | Migrationsherausforderungen für ältere Projekte |
| Integrierte Abhängigkeitsinjektion | Einige APIs befinden sich noch in der Entwicklung |
Ejemplo: .NET Core eignet sich ideal zum Erstellen von Microservices, die in Docker-Containern unter Linux und Linux laufen. Windows Servers
10) Erläutern Sie den Lebenszyklus einer ASP.NET-Seite.
Der ASP.NET-Seitenlebenszyklus definiert, wie eine Seite initialisiert, verarbeitet und gerendert wird. Jede Phase stellt Ereignisse bereit, die Entwickler behandeln können, um benutzerdefinierte Logik auszuführen.
| Praktikum | Beschreibung |
|---|---|
| Seitenanforderung | Der Benutzer ruft die Seite zum ersten Mal auf. |
| Start | Ermittelt, ob es sich um eine Postback-Anfrage handelt. |
| Initialisierung | Alle Steuerelemente sind initialisiert. |
| Laden Sie | Seitendaten und Steuerelemente werden geladen. |
| Postback-Ereignisbehandlung | Verarbeitet Ereignisse, die durch Steuerelemente ausgelöst werden. |
| Wiedergabe | Die Seite wird in HTML gerendert. |
| abladen | Aufräumphase nach dem Absenden der Antwort. |
Ejemplo: Entwickler verwenden oft Page_Load or Page_Init Ereignisse zum Initialisieren von Steuerelementen oder zum Festlegen von Datenbindungen.
11) Was ist das Entity Framework (EF) und wie vereinfacht es Datenbankoperationen?
Entity Framework (EF) ist Microsoft Objektrelationaler Mapper (ORM) Dadurch entfällt der Bedarf an einem Großteil des Datenzugriffscodes, da Entwickler über .NET-Objekte mit einer Datenbank interagieren können. Die SQL-Generierung, das Datenmapping und die Beziehungsverwaltung werden automatisch übernommen.
Hauptmerkmale
- Unterstützt LINQ-to-Entities Abfragen.
- Angebote automatische Änderungsverfolgung mit einem faul laden.
- Bietet Code-First, Database-First und Modell-First Ansätze.
Ejemplo:
using (var context = new AppDbContext())
{
var employees = context.Employees.Where(e => e.Salary > 50000).ToList();
}
Hier übersetzt EF die LINQ-Abfrage in SQL, ruft die Ergebnisse ab und ordnet sie den entsprechenden Tabellen zu. Employee Objekte automatisch.
12) Erläutern Sie den Unterschied zwischen den Ansätzen Code-First, Database-First und Model-First im Entity Framework.
| Ansatz | Beschreibung | Luftüberwachung |
|---|---|---|
| Code zuerst | Definiere Klassen und lass EF die Datenbank generieren. | Greenfield-Projekte. |
| Datenbank-First | Erstellen Sie zuerst eine Datenbank, und EF generiert Entitätsklassen. | Vorhandene Datenbanken. |
| Modell-First | Entwerfen Sie Entitäten visuell, und EF generiert sowohl Datenbanken als auch Klassen. | Diagrammbasiertes Design. |
Ejemplo: Beim Code-First-Ansatz erstellen Entwickler C#-Klassen wie zum Beispiel Customer mit einem OrderEF erstellt die entsprechenden Tabellen in SQL Server automatisch.
13) Was ist LINQ und welche Vorteile bietet es bei der .NET-Entwicklung?
Sprachintegrierte Abfrage (LINQ) ermöglicht das Abfragen von Daten aus verschiedenen Quellen (Objekte, XML, Datenbanken) unter Verwendung einer einheitlichen Syntax direkt in C# oder VB.NET.
Es verbessert Lesbarkeit, Typensicherheit und Überprüfung zur Kompilierzeit.
Vorteile von LINQ:
- Einheitliche Syntax für verschiedene Datenquellen.
- Reduziert die Codekomplexität.
- Bietet IntelliSense und Validierung zur Kompilierzeit.
- Unterstützt verzögerte Ausführung zur Leistungsoptimierung.
Ejemplo:
var highSalaries = employees.Where(e => e.Salary > 70000)
.OrderBy(e => e.Name)
.ToList();
14) Worin besteht der Unterschied zwischen IEnumerable, ICollection und IQueryable in .NET?
| Interface | Ausführungsart | Luftüberwachung | Hauptunterschied |
|---|---|---|---|
| IEzählbar | In-Memory-Iteration | Lokale Sammlungen | Wird clientseitig ausgeführt. |
| IKollektion | Im Arbeitsspeicher, unterstützt Hinzufügen/Entfernen | Sammlungen bearbeiten | Erweitert IEnumerable um die Sammlungsverwaltung. |
| Abfragbar | Verzögerte Ausführung (remote) | LINQ to SQL/EF | Wird auf Datenbankebene ausgeführt. |
Ejemplo: Die Verwendung von IQueryable Das Entity Framework ermöglicht datenbankseitiges Filtern, was wesentlich effizienter ist als die Verwendung von IEnumerable in Erinnerung.
15) Was ist asynchrone Programmierung und wie funktionieren async und await in .NET?
Die asynchrone Programmierung in .NET ermöglicht die Ausführung mehrerer Operationen, ohne den Hauptthread zu blockieren, wodurch die Reaktionsfähigkeit von Web- und Desktop-Anwendungen verbessert wird.
Wesentliche Concepts:
asynckennzeichnet eine Methode als asynchron.awaitDie Methodenausführung wird so lange ausgesetzt, bis die erwartete Aufgabe abgeschlossen ist.- Verhindert Thread-Starre und das Einfrieren der Benutzeroberfläche.
Ejemplo:
public async Task<int> GetDataAsync()
{
var data = await httpClient.GetStringAsync("https://api.example.com");
return data.Length;
}
Nutzen: Der Hauptthread bleibt frei, um andere Aufgaben zu erledigen, während die E/A-Operation im Hintergrund ausgeführt wird.
16) Was ist Dependency Injection (DI) und warum ist sie in .NET Core wichtig?
Dependency Injection (DI) ist ein Entwurfsmuster, das Folgendes ermöglicht lose Kopplung zwischen Klassen durch das Einfügen von Abhängigkeiten anstatt deren interner Erstellung.
Vorteile:
- Verbessert die Testbarkeit.
- Promotes modulares Design.
- Vereinfacht die Konfigurationsverwaltung.
Ejemplo:
public class OrderService
{
private readonly IEmailService _emailService;
public OrderService(IEmailService emailService)
{
_emailService = emailService;
}
}
In .NET Core ist Dependency Injection (DI) durch die Implementierung in das Framework integriert. IServiceCollection Behälter, der verwendet wird Startup.cs.
17) Wie behandelt man Ausnahmen in .NET-Anwendungen effektiv?
Die Ausnahmebehandlung stellt sicher, dass Laufzeitfehler ordnungsgemäß behandelt werden, ohne dass die Anwendung abstürzt. Der primäre Mechanismus ist die try-catch-finally blockieren.
Ejemplo:
try
{
int result = 10 / divisor;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Cannot divide by zero.");
}
finally
{
Console.WriteLine("Operation completed.");
}
Best Practices:
- Spezielle Ausnahmen sollten immer zuerst abgefangen werden.
- Nutzen Sie
finallyfür die Bereinigungslogik - Vermeide leere Fangblöcke.
- Globale Ausnahmebehandlung in ASP.NET Core verwenden (
UseExceptionHandler()Middleware).
18) Was sind die wichtigsten Sicherheitspraktiken bei .NET-Anwendungen?
Sicherheit In .NET umfasst dies mehrere Schichten, darunter Authentifizierung, Autorisierung, Datenverschlüsselung und Eingabevalidierung.
Schlüsselpraktiken:
- Nutzen Sie ASP.NET Identity zur Authentifizierung und Rollenverwaltung.
- Ermöglichen HTTPS (SSL/TLS) zur Datenverschlüsselung.
- Bewerben Datenvalidierung und parametrisierte Abfragen um SQL-Injection zu verhindern.
- Nutzen Sie Datenschutz-APIs zur Sicherung von Cookies und Tokens.
- Implementierung JWT (JSON-Web-Token) für die zustandslose Authentifizierung in APIs.
Ejemplo: Die JWT-basierte Authentifizierung wird häufig in Microservices verwendet, um die Identität des Benutzers zu überprüfen, ohne den Sitzungsstatus aufrechtzuerhalten.
19) Erläutern Sie den Unterschied zwischen abstrakten Klassen und Schnittstellen in C#.
| Merkmal | Abstrakte Klasse | Interface |
|---|---|---|
| Umsetzung | Kann Methodenimplementierungen enthalten | Nur Deklarationen (C# 8 erlaubt Standardwerte) |
| Mehrfachvererbung | Nicht unterstützt | Unterstützte |
| Konstruktoren | Kann Konstruktoren haben | Kann keine Konstruktoren haben |
| Luftüberwachung | Basisklasse mit gemeinsam genutztem Code | Vertrag für mehrere voneinander unabhängige Kurse |
Ejemplo:
abstract class Animal { public abstract void Speak(); }
interface IPet { void Play(); }
A Dog Klasse kann erben von Animal und implementieren IPet gleichzeitig.
20) Welche Entwurfsmuster werden häufig in .NET verwendet und welche Vorteile bieten sie?
Entwurfsmuster sind bewährte Lösungen für wiederkehrende Probleme im Software-Design. Sie verbessern Wartbarkeit, Skalierbarkeit und Lesbarkeit.
| Muster-Art | Beispiel | Beschreibung |
|---|---|---|
| Kreation | Singleton, Fabrik | Objekterstellung verwalten. |
| Strukturell | Adapter, Dekorator | Kombinieren Sie Klassen oder Objekte. |
| Verhaltens- | Beobachter, Strategie | Objektkommunikation definieren. |
Ejemplo: In .NET Core ist die Singleton-Muster wird häufig für gemeinsam genutzte Dienste (z. B. Protokollierung) verwendet, indem diese registriert werden bei AddSingleton() bei der Abhängigkeitsinjektion.
21) Was ist .NET MAUI und wie unterscheidet es sich von Xamarin?
.NET MAUI (Multiplattform-App-Benutzeroberfläche) ist die Evolution von Xamarin.Forms. Es ermöglicht Entwicklern, Formulare zu erstellen. plattformübergreifende Anwendungen für Android, IOS, macOS und Windows aus einer einzigen gemeinsamen Codebasis.
| Merkmal | Xamarin.Formulare | .NET-MAUI |
|---|---|---|
| Framework-Basis | .NET Framework / Mono | Vereinheitlichtes .NET 6+ |
| Architektur | Plattformspezifische Projekte | Einzelprojektstruktur |
| Leistung | Moderat | Verbessert mit der .NET-Laufzeitumgebung |
| Heißes Nachladen | Begrenzt | Volle Hot-Reload-Unterstützung |
Ejemplo: Ein einzelner .NET MAUI Das Projekt kann plattformspezifischen Code in Ordnern wie diesen enthalten. Platforms/Android or Platforms/iOS, während gleichzeitig gemeinsame UI-Komponenten plattformübergreifend genutzt werden.
Nutzen: Vereinfacht die plattformübergreifende Entwicklung und verbessert die Wartbarkeit.
22) Was ist Blazor und welche verschiedenen Hosting-Modelle gibt es?
Blasor ist ein Framework zum Erstellen interaktiver Web-UIs mit C# anstelle von JavaSkript. Es ermöglicht die vollständige Webentwicklung mit .NET.
| Hosting-Modell | Beschreibung | Ausführungsort |
|---|---|---|
| Blazor-Server | Läuft auf dem Server und sendet UI-Aktualisierungen über SignalR | Server |
| Blazor WebAssembly | Wird clientseitig im Browser mit Web ausgeführtAssembly | Browser |
| Blazor Hybrid (MAUI) | Kombiniert Web-UI mit nativer Desktop-/Mobil-App | Lokale App |
Ejemplo: Blazor Server-Anwendungen eignen sich für Unternehmens-Dashboards, die eine sichere, zentrale Steuerung erfordern, während Blazor WebAssembly Geeignet für Offline-fähige Anwendungen.
23) Was sind Microservices in .NET und welche Vorteile bieten sie gegenüber einer monolithischen Architektur?
Die Microservices-Architektur zerlegt eine Anwendung in unabhängige, einsetzbare Dienste, wobei jede von ihnen eine spezifische Geschäftsfunktion übernimmt.
| Aspekt | Monolithisch | Microservices |
|---|---|---|
| Einsatz | Einheit | Unabhängige Dienstleistungen |
| Skalierbarkeit | Die gesamte App skaliert | Skala pro Dienstleistung |
| Technologie-Stapel | Behoben | Unterstützung für mehrere Sprachen |
| Fehleranalyse | Niedrig | Hoch |
Vorteile:
- Unabhängige Bereitstellung und Skalierung.
- Einfachere Fehlerisolierung und schnellere Fehlerbehebung.
- Ermöglicht CI/CD-Pipelines und DevOps-Praktiken.
Ejemplo: Ein .NET-basiertes E-Commerce-System könnte trennen OrderService, InventoryService und PaymentService als einzelne REST- oder gRPC-Dienste.
24) Wie verbessert gRPC die Kommunikation in .NET-Microservices im Vergleich zu REST-APIs?
gRPC (Google Remote Procedure Call) ist ein leistungsstarkes Kommunikationsframework, das verwendet Protokoll Buffers (protobuf) zur Nachrichtenserialisierung.
| Merkmal | REST API | gRPC |
|---|---|---|
| Format | JSON | Binär (Protobuf) |
| Schnelligkeit | Langsamer aufgrund der JSON-Analyse | Viel schneller |
| Kommunikation | HTTP 1.1 | HTTP/2 (bidirektional) |
| Contract | OpenAPI | .proto-Dateien |
| Luftüberwachung | Web-Apps | Interne Servicekommunikation |
Ejemplo: In .NET werden gRPC-Dienste wie folgt definiert: .proto Die Dateien werden in C#-Code kompiliert, was eine schnellere und kompaktere Nachrichtenübermittlung ermöglicht – ideal für Microservices und IoT.
25) Was sind einige bewährte Methoden zur Leistungsoptimierung in .NET-Anwendungen?
Performance-Optimierung ist eine Schlüsselkompetenz für erfahrene Entwickler. Die Optimierung sollte sich auf Codeeffizienz, Speichermanagement und Datenbankinteraktionen konzentrieren.
Best Practices:
- Asynchrone Programmierung verwenden (
async/awaitum ein Blockieren zu verhindern. - Zwischenspeichern häufig verwendeter Daten unter Verwendung von MemoryCache oder Redis.
- Minimieren Sie die Zuteilungen Und verwenden
Span<T>oder das Pooling großer Datenmengen. - Profilcode mithilfe von Tools wie dotTrace oder PerfView.
- EF-Abfragen optimieren mit
AsNoTracking()für schreibgeschützte Daten.
Ejemplo:
var users = context.Users.AsNoTracking().ToList();
Dadurch wird der zusätzliche Aufwand für die Nachverfolgung vermieden und die Leistung bei großen Ergebnismengen verbessert.
26) Welche Caching-Techniken stehen in .NET Core zur Verfügung?
Caching verbessert die Leistung, indem Daten temporär zur Wiederverwendung gespeichert werden.
| Cache-Typ | Beschreibung | Beispielanwendung |
|---|---|---|
| In-Memory-Cache | Speichert Daten im Serverspeicher. | IMemoryCache |
| Verteilter Cache | Gemeinsamer Cache über mehrere Server hinweg. | IDistributedCache, Redis |
| Antwort-Caching | Speichert HTTP-Antworten im Cache. | ResponseCache Attribut |
| Ausgabe-Caching | Verwendet die vollständige gerenderte Ausgabe wieder. | ASP.NET Core Middleware |
Ejemplo:
_cache.Set("EmployeeList", employeeData, TimeSpan.FromMinutes(30));
Für verteiltes Caching wird Redis häufig in Umgebungen mit Lastausgleich eingesetzt.
27) Wie implementiert man Protokollierung und Überwachung in .NET Core-Anwendungen?
Die Protokollierung ist unerlässlich, um Probleme zu verfolgen und den Systemzustand zu überwachen. .NET Core bietet integrierte Protokollierungsabstraktionen, die sich mit Drittanbieterlösungen integrieren lassen.
Techniken:
- Nutzen Sie ILogger Schnittstelle für strukturierte Protokollierung.
- Integrieren mit Serilog, NLog oder Anwendungserkenntnisse.
- Protokolle in zentralisierten Systemen speichern, wie zum Beispiel ELK (Elastic Stack).
Ejemplo:
public class UserController
{
private readonly ILogger<UserController> _logger;
public UserController(ILogger<UserController> logger)
{
_logger = logger;
}
}
Überwachungstools:
- Azure Anwendungserkenntnisse
- Prometheus + Grafana
- Neues Relikt / Datadog
28) Welche Hauptbereitstellungsoptionen stehen für .NET-Anwendungen zur Verfügung?
.NET-Anwendungen können mit verschiedenen flexiblen Methoden bereitgestellt werden:
| Bereitstellungstyp | Beschreibung | Luftüberwachung |
|---|---|---|
| Frameworkabhängige Bereitstellung (FDD) | Erfordert die Installation der .NET-Laufzeitumgebung auf dem Host. | Gemeinsam genutzte Server. |
| Autarke Bereitstellung (SCD) | Enthält die .NET-Laufzeitumgebung im Paket. | Isolierte Cloud-Anwendungen. |
| Docker Container | Pakete für die App mit Abhängigkeiten. | Microservices & CI/CD. |
| Azure App Service | Cloudbasiertes Hosting für Webanwendungen. | Skalierbare SaaS-Anwendungen. |
Ejemplo: Die Bereitstellung einer .NET 8 Web-API als Docker-Container verbessert die Portabilität und die CI/CD-Automatisierung.
29) Wie funktioniert das? Azure Integration mit .NET-Anwendungen für die Cloud-Entwicklung?
Azure bietet erstklassige Integration mit .NET für die Entwicklung, Bereitstellung und Verwaltung cloudnativer Anwendungen.
Wesentliche Azure Dienste für .NET:
- Azure App Service – Webanwendungen hosten.
- Azure Funktionen – Serverloses Computing für Hintergrundaufgaben.
- Azure SQL-Datenbank – vollständig verwaltete relationale Datenbank.
- Azure Linienbus – Message Queuing für verteilte Systeme.
- Azure Wesentliche Vault – Geheimnisse und Zugangsdaten schützen.
Ejemplo: Ein .NET-Mikrodienst könnte verwenden Azure Wesentliche Vault um Datenbankverbindungszeichenfolgen während der Bereitstellung sicher zu speichern Azure DevOps CI/CD-Pipeline.
30) Welche Testframeworks werden üblicherweise in .NET verwendet und wie unterscheiden sie sich?
Tests gewährleisten die Zuverlässigkeit und Wartbarkeit der Anwendung. .NET unterstützt mehrere Testframeworks.
| Unser Ansatz | Beschreibung | Hauptfunktionen |
|---|---|---|
| xEinheit | Modernes Open-Source-Testtool. | Parallele Testausführung. |
| NUnit | Ausgereift, weit verbreitet in Unternehmen. | Attributgesteuertes Testen. |
| MSTest | Microsoftdas native Testframework. | Integration mit Visual Studio. |
Ejemplo:
[Fact]
public void Add_ReturnsSum()
{
Assert.Equal(4, Calculator.Add(2, 2));
}
Best Practices:
- Nutzen Sie Spott (Moq) für Abhängigkeiten.
- Hilft dabei hohe Testabdeckung mit CI/CD-Integration.
- Umfassen Integrationstests zur API-Validierung.
31) Was sind die wichtigsten neuen Funktionen, die in .NET 8 eingeführt wurden?
.NET 8 führt ein Leistungsoptimierungen, native AOT, und verbessert Cloud-native Fähigkeiten. Es geht weiter MicrosoftZiel ist die Schaffung eines einheitlichen, plattformübergreifenden Ökosystems.
Schlüssel-Höhepunkte:
- Native AOT (Ahead-of-Time-Kompilation): Reduziert Startzeit und Speicherbedarf.
- ASP.NET Core-Erweiterungen: Schnelleres Routing und verbesserte HTTP/3-Unterstützung.
- Blazor United: Kombiniert serverseitige und Web-AnwendungenAssembly Modelle für Hybrid-Apps.
- Leistungssteigerungen: 20–30 % schnellere EF Core- und LINQ-Operationen.
- Erweiterte MAUI-Unterstützung: Verbesserte Werkzeuge für plattformübergreifende Benutzeroberflächen.
Ejemplo: Native AOT ermöglicht kleine, in sich geschlossene ausführbare Dateien, die ideal für Microservices und containerisierte Bereitstellungen sind.
32) Was ist Ahead-of-Time (AOT)-Kompilierung in .NET und wann sollte sie verwendet werden?
AOT-Zusammenstellung .NET Intermediate Language (IL) wird vor der Laufzeit in nativen Code vorkompiliert, wodurch die Startleistung verbessert und die Abhängigkeit vom JIT-Compiler verringert wird.
| Typ | Beschreibung | besten Use Case |
|---|---|---|
| JIT (Just-In-Time) | Kompiliert IL zur Laufzeit. | Desktop- oder Serveranwendungen. |
| AOT (Vorzeitig) | Kompiliert IL vor der Laufzeit. | Mikrodienste, IoT, Systeme mit geringer Latenz. |
Vorteile:
- Schnellere Startzeit.
- Geringerer Speicherbedarf.
- Bessere Container-Performance.
Ejemplo:
dotnet publish -r linux-x64 -p:PublishAot=true
Dieser Befehl erzeugt eine native AOT-kompilierte Binärdatei für Linux.
33) Wie können .NET-Entwickler KI- oder ML-Funktionen in Anwendungen integrieren?
Die KI-Integration in .NET kann erreicht werden durch ML.NET, Azure Kognitive Diensteoder externen Bibliotheken.
Nähert sich:
- ML.NET: Maschinelles Lernen lässt sich direkt in .NET entwickeln und trainieren.
- Azure Kognitive Dienste: Nutzen Sie vorkonfigurierte APIs für Bild-, Sprach- und Datenverarbeitung.
- ONNX-Laufzeitumgebung: Führen Sie in Python/TensorFlow innerhalb von .NET-Anwendungen.
- OpenAI-API-Integration: Sicherer Zugriff auf generative KI (z. B. GPT-Modelle) über REST.
Beispiel (ML.NET):
var mlContext = new MLContext();
var model = mlContext.Model.Load("model.zip", out _);
Anwendungsfall: Vorhersage von Nutzerabwanderung, Anomalieerkennung oder intelligente Empfehlungen in Unternehmenssystemen.
34) Was sind die Hauptunterschiede zwischen REST-APIs und Minimal-APIs in .NET 8?
Minimale APIs bieten eine unkomplizierte Möglichkeit, HTTP-APIs mit minimalem Boilerplate-Code zu erstellen.
| Merkmal | REST-API (Controller-basiert) | Minimale API |
|---|---|---|
| Struktur | Verwendet Controller und Routing | Inline-Routendefinitionen |
| Einrichtung | Erfordert Attribute und Middleware | Schneller und einfacher |
| Leistung | Moderat | Etwas schneller (geringerer Aufwand) |
| Luftüberwachung | Komplexe Unternehmens-APIs | Mikrodienste oder kleine APIs |
Ejemplo:
app.MapGet("/hello", () => "Hello, World!");
Minimale APIs eignen sich aufgrund ihrer Einfachheit und Leistungsfähigkeit ideal für Microservices und serverlose Anwendungen.
35) Was sind die wichtigsten Prinzipien der sicheren Programmierung in .NET-Anwendungen?
Sicherheit muss bereits in der Entwicklungsphase gewährleistet sein. .NET bietet integrierte Mechanismen und bewährte Verfahren für sichere Programmierung.
Schlüsselprinzipien:
- Alle Eingaben validieren: Spritzenangriffe verhindern.
- Parametrisierte Abfragen verwenden: Vermeiden Sie SQL-Injection.
- Sensible Daten verschlüsseln: Nutzen Sie
System.Security.Cryptography. - Geheimnisse sicher aufbewahren: Nutzen Sie Azure Wesentliche Vault oder Benutzergeheimnisse.
- Authentifizierung und Autorisierung anwenden: Implementierung
ASP.NET Identityoder JWT-Token. - HTTPS- und CORS-Richtlinien verwenden: Verhindern Sie Datenlecks und unbefugten Zugriff.
Ejemplo:
using (var cmd = new SqlCommand("SELECT * FROM Users WHERE Id = @id", conn))
{
cmd.Parameters.AddWithValue("@id", userId);
}
36) Wie nutzen Sie Profiling- und Diagnosetools zur Optimierung der .NET-Performance?
Profiling hilft dabei, Leistungsengpässe bei CPU, Speicher oder E/A zu identifizieren.
Beliebte Tools:
| Werkzeug | Zweck |
|---|---|
| dotTrace / dotMemory | Profilerstellung und Erkennung von Speicherlecks |
| PerfView | Leistungsanalyse auf niedriger Ebene |
| dotnet-trace | Befehlszeilenverfolgung |
| Anwendungserkenntnisse | Echtzeit-Telemetrie in der Produktion |
Ansatz:
- Identifizieren Sie Engpässe mithilfe von Leistungsindikatoren.
- Profil-Codepfade und Speicherzuweisungen.
- LINQ-Abfragen optimieren und die Objekterzeugung reduzieren.
Ejemplo: Nutzen Sie dotnet-counters monitor um Echtzeit-Metriken wie CPU- und GC-Aktivität zu verfolgen.
37) Welche effektiven DevOps-Praktiken gibt es für .NET-Anwendungen?
DevOps-Integration gewährleistet schnellere Lieferung und bessere Qualität durch Automatisierung und Zusammenarbeit.
Schlüsselpraktiken:
- CI/CD-Pipelines: Verwenden Sie GitHub Actions oder Azure DevOps für automatisierte Builds und Deployments.
- Infrastruktur als Code (IaC): Bereitstellung mit ARM-Vorlagen, Terraform oder Bicep.
- Automatisierte Tests: xUnit/NUnit in CI-Workflows integrieren.
- Containerisierung: Verwenden Sie Docker-Images und Kubernetes (AKS).
- Monitoring: Kontinuierliche Telemetrie mit Application Insights.
Ejemplo: Eine CI/CD-Pipeline in Azure DevOps kann eine .NET-API erstellen, testen und bereitstellen. Azure App Service wird automatisch nach einem Git-Commit aktualisiert.
38) Wie kann man Skalierbarkeit und Fehlertoleranz in .NET-basierten verteilten Systemen gewährleisten?
Skalierbarkeit und Fehlertoleranz lassen sich durch die Anwendung von Prinzipien des verteilten Designs und robusten Mustern erreichen.
Strategien:
- Horizontale Skalierung: Mehrere Instanzen hinter einem Load Balancer bereitstellen.
- Muster des Leistungsschalters: Verwenden Sie die Polly-Bibliothek zur Behandlung vorübergehender Fehler.
- Zwischenspeicherung und Warteschlangen: Verwenden Sie Redis und Azure Service Bus für die asynchrone Verarbeitung.
- Datenbank-Sharding: Große Datensätze verteilen.
- Gesundheitschecks: Nutzen Sie
AddHealthChecks()Middleware in .NET Core.
Beispiel (Leistungsschalter):
Policy.Handle<HttpRequestException>()
.CircuitBreaker(3, TimeSpan.FromMinutes(1));
39) Welche Rolle spielt die Containerisierung bei modernen .NET-Bereitstellungen?
Containerisierung, vor allem durch Docker, isoliert Anwendungen und ihre Abhängigkeiten und gewährleistet so die Konsistenz über verschiedene Umgebungen hinweg.
Vorteile:
- Vorhersehbare Bereitstellungen (funktioniert auf jedem Host).
- Vereinfachtes Skalieren mit Kubernetes (AKS).
- Leichtgewichtig und schneller als virtuelle Maschinen.
- Lässt sich problemlos in CI/CD-Workflows integrieren.
Beispiel (Dockerfile):
FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "MyApp.dll"]
Anwendungsfall: Die Bereitstellung eines .NET-Microservice-Clusters in Kubernetes verbessert die Skalierbarkeit und die Fehlerisolierung.
40) Wie würden Sie ein skalierbares .NET-System für Millionen von Benutzern entwerfen?
Systemdesign in .NET erfordert architektonische Weitsicht, die Leistung, Verfügbarkeit und Wartbarkeit vereint.
Wesentliche Architektonische Entscheidungen:
- Nutzen Sie Microservices: Jeder Dienst ist unabhängig einsetzbar.
- CQRS + Event Sourcing einführen: Separate Lese-/Schreibmodelle.
- Asynchrones Messaging: Nutzen Sie Azure Servicebus oder Kafka.
- API-Gateway: Verkehrsmanagement und Sicherheitsüberwachung.
- Caching-Schicht: Für Hochgeschwindigkeitszugriffe nutzen Sie Redis oder MemoryCache.
- Datenbankskalierbarkeit: Nutzen Sie Azure Cosmos DB oder partitioniertes SQL.
- Autoskalierung: Konfigurieren über Azure App Service oder AKS.
Beispielhafter Designablauf:
Benutzer → API-Gateway → Load Balancer → Microservices (.NET 8 APIs) → Datenbank + Redis-Cache → Telemetrie über Application Insights.
🔍 Die wichtigsten .NET-Interviewfragen mit realen Szenarien und strategischen Antworten
Im Folgenden finden Sie zehn realistische, häufig gestellte .NET-Interviewfragen mit strategischen Erläuterungen und Beispielantworten. Die Fragen umfassen Wissensfragen, Verhaltensfragen und Situationsfragen.
Die erforderlichen Formulierungen wurden jeweils einmal verwendet.
1) Können Sie den Unterschied zwischen .NET Framework, .NET Core und .NET 6/7/8 erklären?
Vom Kandidaten erwartet: Die Entwicklung des .NET-Ökosystems, plattformübergreifende Funktionen und langfristige Unterstützung verstehen.
Beispielantwort: „.NET Framework ist das ursprüngliche WindowsWährend .NET Core plattformübergreifende Funktionen und eine bessere Performance einführte, wurde das Framework zunächst nur für .NET-Systeme verwendet. .NET 6 und spätere Versionen vereinen das Ökosystem unter einem einzigen, modernen, plattformübergreifenden SDK mit signifikanten Verbesserungen in Bezug auf Performance, Cloud-Fähigkeit und Entwicklungsgeschwindigkeit.
2) Wie implementiert man Dependency Injection in .NET, und warum ist sie nützlich?
Vom Kandidaten erwartet: Verständnis von Entkopplung, Wartbarkeit und Testbarkeit.
Beispielantwort: „Dependency Injection in .NET wird typischerweise über den integrierten Container implementiert.“ Microsoft.Extensions.DependencyInjection Namensräume tragen dazu bei, die enge Kopplung zu reduzieren, die Testbarkeit zu verbessern und das Lebenszyklusmanagement zu vereinfachen, indem Abhängigkeiten zur Laufzeit aufgelöst werden können.
3) Beschreiben Sie ein anspruchsvolles .NET-Projekt, an dem Sie mitgearbeitet haben, und wie Sie zu dessen Erfolg beigetragen haben.
Vom Kandidaten erwartet: Praxisnahe Beiträge, Problemlösungskompetenz und Verantwortungsbewusstsein.
Beispielantwort: „In meiner vorherigen Position habe ich zur Optimierung einer älteren .NET-Anwendung beigetragen, indem ich die Datenzugriffsschichten neu gestaltet und Caching eingeführt habe, um die Antwortzeiten zu verkürzen. Dies verbesserte die Leistung um mehr als dreißig Prozent und steigerte die Benutzerfreundlichkeit erheblich.“
4) Wie stellt man die Leistungsfähigkeit und Skalierbarkeit einer .NET-Anwendung sicher?
Vom Kandidaten erwartet: Nutzung von Profiling-Tools, Architekturmustern und bewährten Programmierpraktiken.
Beispielantwort: „Ich überwache die Performance mithilfe von Profiling-Tools wie dotTrace und Application Insights, setze asynchrone Programmierung ein, wo es angebracht ist, implementiere Caching und nutze bei Bedarf skalierbare Architekturmuster wie Microservices.“
5) Erläutern Sie den Unterschied zwischen async/await und Multithreading in .NET.
Vom Kandidaten erwartet: Verständnis von Parallelverarbeitungsmodellen.
Beispielantwort: „Async und await ermöglichen nicht-blockierende Operationen durch die Nutzung des aufgabenbasierten asynchronen Musters, während Multithreading die Erstellung separater Threads beinhaltet, die parallel ausgeführt werden. Asynchrone Programmierung ist ideal für E/A-intensive Aufgaben, während Multithreading für CPU-intensive Operationen nützlich ist.“
6) Beschreiben Sie eine Situation, in der Sie sich schnell in eine neue .NET-Technologie einarbeiten mussten. Wie sind Sie dabei vorgegangen?
Vom Kandidaten erwartet: Anpassungsfähigkeit und kontinuierliches Lernen.
Beispielantwort: „In einer früheren Position musste ich Blazor für ein Kundenprojekt schnell lernen. Ich habe dafür Zeit für offizielle Schulungen aufgewendet.“ Microsoft Ich habe die Dokumentation erstellt, anhand kleiner Testprojekte geübt und mit Teammitgliedern zusammengearbeitet, um sicherzustellen, dass ich termingerecht qualitativ hochwertige Ergebnisse liefere.“
7) Wie würden Sie eine RESTful-API in ASP.NET Core entwerfen? Welche Schlüsselprinzipien würden Sie dabei beachten?
Vom Kandidaten erwartet: Kenntnisse über HTTP-Methoden, Routing, Versionierung und Best Practices.
Beispielantwort: „Ich halte mich an die REST-Prinzipien wie die korrekte Benennung von Ressourcen, Zustandslosigkeit und die korrekte Verwendung von HTTP-Verben. Außerdem implementiere ich Modellvalidierung, korrekte Statuscodes, Versionierung und Authentifizierungsmechanismen wie JWT.“
8) Wie gehen Sie mit engen Fristen um, wenn Sie gleichzeitig an mehreren .NET-Projekten arbeiten?
Vom Kandidaten erwartet: Priorisierung, Organisation, Kommunikation.
Beispielantwort: „In meinem vorherigen Job habe ich enge Fristen bewältigt, indem ich Aufgaben in überschaubare Teilaufgaben zerlegt, wichtige Aspekte priorisiert und kontinuierlich mit den Beteiligten kommuniziert habe, um realistische Erwartungen zu formulieren.“
9) Wie lässt sich die Codequalität in .NET-Anwendungen aufrechterhalten?
Vom Kandidaten erwartet: Kenntnisse im Umgang mit Tests, Reviews und Tools.
Beispielantwort: „Ich sorge für Codequalität durch Unit-Tests mit xUnit, Code-Reviews, statische Codeanalyse und die Einhaltung der SOLID-Prinzipien. Diese Schritte gewährleisten langfristige Wartbarkeit und Zuverlässigkeit.“
10) Angenommen, eine produktive .NET-API gibt sporadisch 500-Fehler zurück. Wie würden Sie bei der Diagnose des Problems vorgehen?
Vom Kandidaten erwartet: Strukturiertes Debugging, Einsatz von Werkzeugen und Ruhe bewahren unter Druck.
Beispielantwort: „In meiner letzten Position begann ich damit, Protokolle zu prüfen, den Zustand der Abhängigkeiten zu kontrollieren und Application Insights oder ähnliche Tools zur Fehlerverfolgung einzusetzen. Anschließend isolierte ich, ob das Problem datenbank-, konfigurations- oder codebedingt war, und implementierte nach Replikation und Validierung gezielte Korrekturen.“
