Dies ist eine Schritt-für-Schritt-Anleitung, um ein .NET-Ingenieur mit Links zu relevanten Lernressourcen zu werden.
Wenn Sie mehr über .NET -Technologien erfahren möchten, abonnieren Sie meinen Newsletter .
Wenn Sie dieses Repository hilfreich finden, sollten Sie mich auf Patreon unterstützen:

Diese Roadmap zielt darauf ab, Ihnen eine Vorstellung von der Landschaft zu geben. Die Roadmap wird Sie leiten, wenn Sie klarstellen müssen, was Sie als nächstes lernen müssen, anstatt Sie zu ermutigen, zu wählen, was Hype und Trendy ist. Es würde helfen, wenn Sie ein gewisses Verständnis dafür haben, warum ein Tool für einige Fälle besser geeignet ist als das andere und sich daran erinnern, dass Hype und Trendy nur manchmal für den Job am besten geeignet sind.
Wenn Sie dieses Projekt mögen oder verwenden, um Ihre Lösung zu lernen oder zu starten, geben Sie ihm bitte einen Stern. Danke!
Beachten Sie, dass dies auf Altersebene bedeutet:
? Junior : Grundkonzepte
? Medior : Fortgeschrittene Konzepte
? Senior : Expertenkonzepte

PDF -Version herunterladen.
Im Folgenden finden Sie eine minimale Version, die jeder Junior .NET -Entwickler kennen muss, wobei Lernmaterialien enthalten und in der PDF -Version klickbar sind.

PDF -Version herunterladen.
Bevor Sie in Einzelheiten gehen, müssen Sie das .NET -Ökosystem ein solides Verständnis haben. Hier sind einige, die Sie verstehen sollten:
In diesem Abschnitt werden wir uns die Hauptnetzwerke ansehen. Wir betrachten .NET-Laufzeit als alles, was ECMA-335-Standard für .NET implementiert.
.NET Framework ist ein Softwareentwicklungsrahmen für das Erstellen und Ausführen von Anwendungen unter Windows. .NET Framework besteht aus gemeinsamen Sprachlaufzeit (CLR), .NET Framework -Klassenbibliothek und Anwendungs -Workloads (WPF, Windows -Formulare und ASP.NET). CLR ist Teil einer gemeinsam genutzten Infrastruktur, die Code, JIT, die Müllsammlung (C#, VB.NET, F#) usw. ausführt. Der Code, den CLR verwaltet, heißt Managed Code. Der Code wird in gemeinsame Zwischensprache (CIL) zusammengestellt und in Baugruppen (mit .exe oder .dll -Erweiterung) gespeichert. Wenn eine Anwendung ausgeführt wird, nimmt CLR eine Montage an und verwendet einen Just-in-Time-Compiler (JIT), um den Maschinencode in Code zu versetzen, der auf einer bestimmten Computerarchitektur ausgeführt wird.
Sie können es sowohl für Desktop- als auch für Webentwicklung verwenden, es ist jedoch auf Windows -Entwicklung beschränkt, und es wird unter Windows vorinstalliert.
.NET Core ist eine der Laufzeiten im .NET -Ökosystem. Es wurde im Jahr 2016 veröffentlicht. Und es ist offen. Es repräsentiert keine neue Version des .NET -Frameworks und ersetzt sie nicht. Es handelt sich um eine völlig unabhängige Version, die erstellt wurde, um plattformübergreifende Fähigkeiten für die Anwendungsentwicklung zu ermöglichen. .NET Core besteht aus einem App -Host (dotnet.exe), der CLR und Bibliothek ausführt. Es verfügt über eine gemeinsame Sprachlaufzeit (CORECLR) und .NET -Kernklassenbibliothek. Es unterstützt verschiedene Anwendungs -Workloads wie ASP.NET Core (MVC und API), Konsolenanwendungen und UWP (derzeit).
.NET Core kann auf verschiedenen Plattformen ausgeführt werden: Windows Client, Server, IoT, Linux, Ubuntu, FreeBSD, Tizen und Mac OSX und können nebeneinander von verschiedenen Versionen pro Maschine oder Benutzer installiert werden.
.NET 5 wurde im November 2020 mit dem Ziel veröffentlicht, die Entwicklung für Desktop-, Web-, Cloud-, Mobil-, Gaming-, IoT- und AI -Anwendungen zu vereinen. Das frühere Setup-Ziel bestand darin, eine einzelne .NET-Laufzeit und ein einzelnes .NET-Laufzeit zu produzieren, plattformübergreifend und integrieren die besten Funktionen von .NET Core, .NET Framework, Xamarin und Mono. Aufgrund der globalen Gesundheitspandemie wurde die Vereinigung jedoch auf .NET 6. .NET 5 verschoben. Außerdem werden Target Frameworkamen (TFMS), die ausdrücken, welche Version von .NET Targeting ausdrückt, und haben jetzt net5.0. Dies ist für Code, der überall ausgeführt wird. Es kombiniert und ersetzt die NetCoreApp- und NetSpandard-Namen und Net5.0-Windows, die OS-spezifische Aromen von .NET 5 darstellen, die Net5.0 plus OS-spezifische Bindungen enthalten.
.NET 9 ist die neueste Laufzeit im .NET -Ökosystem. Es wird im November 2024 veröffentlicht. Es vereint die Entwicklung für Desktop-, Web-, Cloud-, Mobil-, Gaming-, IoT- und AI -Anwendungen. .NET 9 besteht aus einem App -Host (Dotnet.exe), der CLR und Bibliothek ausführt. Es verfügt über eine gemeinsame Sprachlaufzeit (CORECLR) und .NET 8 -Klassenbibliothek. Es enthält auch ASP.NET Core 9. .NET 9 hat eine nahezu identische Plattformunterstützung wie .NET Core 3.1 für Windows, MacOS und Linux.
.NET 9 ist eine Standard -Support -Version, die nach einer nachfolgenden STS- oder LTS -Veröffentlichung sechs Monate lang unterstützt wird.
.NET 8 war eine langfristige Unterstützung (LTS) . Diese Veröffentlichungen werden nach der ersten Veröffentlichung drei Jahre lang unterstützt.
Verschiedene Laufzeiten verwenden unterschiedliche Klassenbibliotheken, z. B. .NET Framework verwendet .NET Framework Class Library, während .NET Core seine Klassenbibliothek sowie Xamarin mit seiner Klassenbibliothek enthält. Auf diese Weise ist es schwierig, Code zwischen verschiedenen Laufzeiten zu teilen, da sie unterschiedliche APIs verwenden. Die Microsoft -Lösung ist die 2016 veröffentlichte .NET -Standardbibliothek . Sie stellt eine Reihe von (formalen) Spezifikationen dar, die sagen, welche APIs Sie verwenden können und alle Runtimes implementieren. Es ist die Entwicklung tragbarer Klassenbibliotheken (PCL). Spezifische Laufzeiten implementieren bestimmte Versionen von .NET Standard (implementieren spezifische APIs). Z. B. .NET Framework 4.8.1 implementiert .NET Standard 2.0 und .NET 7 implementiert .NET Standard 2.1 (Link).
Weitere Informationen zum .NET -Ökosystem finden Sie in diesem Blog -Beitrag.
.NET Release -Zeitplan von Microsoft:

C# ist eine von Microsoft entwickelte Programmiersprache. Es handelt sich um eine Sprache, um etwas von Desktop-Anwendungen und Spielen (Unity) bis hin zu Cloud-basierten Lösungen und Webdiensten zu erstellen. Mit starker Unterstützung für objektorientierte Programmierung und einer reichhaltigen Bibliothek ist es einfach und effizient.
Die neueste Version ist C# 13 , die im November 2024 veröffentlicht wurde.
Überprüfen Sie die vollständige C# -Pension:

Sie müssen verschiedene C# -sprachfunktionen verstehen, z. B.:

Aber auch .net Bibliotheken und APIs für:
Ressourcen :
Mastering -Designmuster, sauberer Code und Versionskontrolle wie Git ermöglicht es Ihnen, einen effizienten, wartbaren Code zu schreiben, der in einer Teamumgebung funktioniert und gedeiht. Es ist der Unterschied zwischen Codierer und erfahrener Software -Ingenieur .
Hier müssen Sie verschiedene Prinzipien kennen, wie z. B.:
Solide Prinzipien :
Aber auch:
Ressourcen :
Es handelt sich um ein plattformübergreifendes, leistungsstarkes Framework, das von Microsoft entwickelt wurde, um Web-Apps, APIs und Microservices zu erstellen . Sie können Ihre Apps auch unter Windows, Linux oder MacOS ausführen. Es ist für Flexibilität und Skalierbarkeit mit Funktionen wie integrierter Abhängigkeitsinjektion und einem robusten Konfigurationssystem konstruiert.
Hier müssen Sie auch die Grundlagen der Webentwicklung kennen, wie:
Ressourcen :
Wenn Sie UIS in .NET erstellen möchten, benötigen Sie diese Frameworks. Razor ist eine Template -Engine zum Erstellen von dynamischem HTML, während Blazor es mit C# anstelle von JavaScript eine interaktive Web -UIS erstellen kann. Maui ist ein Xamarin-Nachfolger, der für den Aufbau von plattformübergreifenden mobilen Apps erstellt wurde. Windows Presentation Foundation (WPF) ist ein UI -Framework, das Desktop -Client -Anwendungen erstellt. Die UNO -Plattform ist eine open -Source -plattformübergreifende grafische Benutzeroberfläche, mit der Winui und Universal Windows Platform (UWP) -basierte Code auf iOS, macOS, Linux, Android und WebAssembly ausgeführt werden können.
Ressourcen :
Gutes Datenbankdesign gewährleistet die effiziente Datenspeicherung und das schnelle Abrufen, sodass Ihre App reibungsloser und skaliert wird. SQL , die Anlaufstelle für die Datenbankinteraktion, gibt Ihnen die Möglichkeit, die Daten abzufragen, zu aktualisieren und zu verwalten, die Sie so sorgfältig gespeichert haben.
Hier müssen Sie wissen:
Ressourcen :
Die Objektrelationskartierung (ORM) ist wie ein Übersetzer zwischen Ihrem objektorientierten C# -Code und der relationalen Datenbank, wodurch die mühsame Aufgabe des Schreibens von SQL-Abfragen für grundlegende CRUD-Operationen beseitigt wird. Mithilfe von ORM -Frameworks wie Entity Framework können Sie Daten als Objekte in Ihrem Code manipulieren, sodass sie lesbarer und wartbarer werden . Dies beschleunigt die Entwicklung, minimiert Fehler und ermöglicht es Ihnen, sich auf komplexe Geschäftslogik zu konzentrieren, anstatt mit der Datenbanksyntax zu ringen.
Für Entity Framework müssen Sie Folgendes kennen:
Ressourcen :
Das Caching ist wie der persönliche Kurzzeitgedächtnis Ihrer App und speichert häufig zugegriffene Daten, damit sie schnell abgerufen werden können, ohne auf Ihre Datenbank zuzugreifen . Durch die Reduzierung der Datenbanklast und Beschleunigung des Datenzugriffs gibt Caching Ihrer App die Wettbewerbsvortation, die sie benötigt, um den Benutzeranforderungen für Reaktionsfähigkeit und Verfügbarkeit gerecht zu werden.
Ressourcen :
Die Protokollierung erfasst Laufzeitinformationen, Fehler und andere wichtige Daten, mit denen Sie Probleme schnell identifizieren und beheben können, wodurch Ihre Anwendung zuverlässiger und sicherer wird. Protokollierungsrahmen wie NLOG oder Serilog integrieren sich nahtlos in .NET, wodurch Sie ein Echtzeit-Diagnosewerkzeug für die Überwachung der Anwendungsgesundheit, die Fehlerbehebungsprobleme und sogar das Sammeln von Erkenntnissen für die zukünftige Entwicklung erhalten.
Ressourcen :
In .NET Wir haben drei Arten von Kommunikation: Echtzeitkommunikation, synchron und asynchrone Kommunikation. Echtzeit-Kommunikationstechnologien wie SignalR im .NET-Ökosystem ermöglichen diese Funktionen, indem sie eine konstante Verbindung zwischen Server und Client beibehalten. Die synchrone Kommunikation erfolgt hauptsächlich durch die Verwendung über den HTTP-Client, während eine asynchrone Kommunikation durch verschiedene Messaging und ereignisbasierte Frameworks und Bibliotheken durchgeführt wird. Messaging -Systeme fungieren als Mittelsmann zwischen verschiedenen Teilen Ihres Systems, sodass sie kommunizieren können, ohne direkt verbunden zu sein. Event -Handler auf der anderen Seite werden zum Umgang mit Ereignissen innerhalb einer einzelnen Anwendung verwendet. Sie ermöglichen ein Publisher-Subscriber-Modell, bei dem ein Teil der Anwendung ein Ereignis anbringen kann, auf das andere Teile reagieren können.
Ressourcen :
Diese Dienste führen Aufgaben im Hintergrund aus und befreien Ihre Anwendung, sich auf Benutzerinteraktionen zu konzentrieren. Unabhängig davon, ob Datenverarbeitung, automatisierte E-Mails oder regelmäßige Aufräumarbeiten , Hintergrunddienste sicherstellen, dass diese Aufgaben die Benutzererfahrung nicht verlangsamen oder unterbrechen.
Ressourcen :
Unit-Tests konzentrieren sich auf isolierte Teile Ihres Codes, Integrationstests stellen sicher, dass verschiedene Teile gut zusammenspielen, und End-to-End-Tests validieren die gesamte Benutzerreise in Ihrer Anwendung. Zusammen bilden sie ein Sicherheitsnetz, fangen Fehler frühzeitig auf, vereinfacht das Debuggen und machen Ihre Codebasis robust und wartbar.
Hier müssen Sie wissen:
Ressourcen :
Diese Tools bieten Echtzeit-Einblicke in die Leistung, das Benutzerverhalten und die Fehlerquoten Ihrer Anwendung und ermöglichen es Ihnen, Probleme anzugehen, bevor sie proaktiv zu ausgewachsenen Problemen eskalieren.
Die Überwachung konzentriert sich auf die Gesundheit und Verfügbarkeit von Diensten und Systemen und löst häufig Warnungen für vordefinierte Bedingungen aus.
Die Telemetrie sammelt, Prozesse und überträgt Daten aus Systemen, wodurch die Analyse von Mustern, Trends und Anomalien ermöglicht wird.
Ressourcen :
Containerlösungen umfassen Ihre .NET -Anwendung, Ihre Bibliotheken und Ihre Laufzeit in isolierte Container. Dies ermöglicht die Konsistenz in mehreren Entwicklungs- und Produktionsumgebungen und löst Abhängigkeitsprobleme. Mit Funktionen wie Layered -Dateisystemen können Sie Containerbilder problemlos für ASP.NET, .NET CORE oder andere .NET -Dienste verwalten, wodurch die Build -Zeiten und die Ressourcenauslastung optimiert werden.
Ressourcen :
Cloud -Anbieter bieten eine API -Ebene für abstrakte Infrastruktur und Bereitstellung, die auf Sicherheits- und Rechnungsgrenzen beruht. Die Cloud wird auf Servern in Rechenzentren ausgeführt , aber die Abstraktionen verleihen geschickt das Erscheinen einer Interaktion mit einer einzelnen "Plattform" oder einer großen Anwendung. Die Fähigkeit, Ressourcen mit Cloud -Anbietern schnell bereitzustellen, zu konfigurieren und zu sichern, war der Schlüssel zum enormen Erfolg und der Komplexität der modernen DevOps.
Die beliebtesten Cloud -Anbieter auf dem Markt sind AWS und Azure sowie Google Cloud .
Hier müssen Sie wissen, wie Sie Benutzer und Verwaltung, Netzwerke, virtuelle Server usw. verwalten können.
Ressourcen :
CI/CD automatisiert das Gebäude-, Test- und Bereitstellungsstadien in eine optimierte, fehlerresistente Pipeline. Dies bedeutet schnellere Veröffentlichungen, Fehlerbehebungen und mehr Zeit, um sich auf die Entwicklung von Funktionen zu konzentrieren .
Hier müssen Sie wissen, wie man:
Ressourcen :
Einige nützliche .NET -Bibliotheken. Beachten Sie, dass nicht alle Bibliotheken von jedem verwendet werden, es hängt hauptsächlich von einem Projekt ab, an dem Sie arbeiten.
Darüber hinaus müssen Sie Folgendes wissen:
Performances spielen eine wesentliche Rolle bei .NET -Anwendungen. Hier müssen Sie wissen:
Diese Tools können Ihnen helfen, verschiedene Leistungsgpässe in Ihrem Code zu identifizieren und zu debuggen. Dafür können Sie andere Tools verwenden, z. B.:
Neben Tools sollten Sie sich der besten Best Practices für .NET bewusst sein:
Caching (In-MEM-Speicher-Cache oder Redis)
Datenbankoptimierung (Optimieren Sie Abfragen, ordnungsgemäße Indexierung, Verbindungspooling)
Async -Programmierung (alle CPU -Umfang oder E/A -Bindung an DB, Dateisysteme, ext. Systems abladen)
Verwenden Sie das Entity Framework mit Bedacht (verwenden Sie Eifrig, Projektionen und Optimierungen wie kompilierte Abfragen).
Speicherverwaltung (Verwenden Sie Werttypen und seien Sie mit großen Objektdiagrammen vorsichtig. Verwenden Sie das Muster für DB -Verbindungen oder Streams. Vermeiden Sie das Boxen/Unboxen. Verwenden Sie StringBuilder anstelle von String für eine große Anzahl von Verkettungen.)
HTTP-Caching (Verwenden Sie ETAGs, Last-modifizierte Header)
Minimieren Sie die Hin- und Rückfahrten (reduzieren Sie die Anzahl der HTTP-Anforderungen und Datenbank-Hin- und Rückträge).
Content Delivery Networks (CDNS) (statische Assets (CSS, JavaScript, Bilder) an CDNs für eine schnellere Lieferung an Benutzer)
Komprimierung (Aktivieren Sie die Gzip- oder Brotli -Komprimierung für HTTP -Antworten, um die Datenübertragungsgröße zu reduzieren)
Protokollierung und Verfolgung (Vermeiden Sie eine übermäßige Protokollierung in der Produktion. Verwenden Sie die verteilte Verfolgung über Microservices.)
Parallelität und Parallelität (Parallelität und Multithreading für CPU-gebundene Aufgaben mithilfe der Parallelklasse oder der Aufgabe Parallel Library (TPL)))
Ressourcenoptimierung (Bilder und Assets für das Web optimieren, um die Ladezeiten zu verkürzen)
HTTP2 über SSL (nun intelligente Entscheidungen über den Seiteninhalt treffen)
Leistung messen und überwachen (verwenden Sie VS -Diagnose -Tools, App -Erkenntnisse oder Benchmarkdotnet).
Benutzerspanne <> anstelle von Sammlungen (Spannweiten können einen zusammenhängenden Speicherabschnitt darstellen; dies bedeutet, dass wir sie verwenden können, um über Arrays zu arbeiten).
Sicherheit spielt eine wesentliche Rolle bei der Anwendungsentwicklung. Die kritischsten Aspekte der Sicherheit in der .NET -Welt sind:
Authentifizierungs- und Autorisierungskonzepte :
Kryptographie und Datenschutzkonzepte :
Wenn Sie der Meinung sind, dass die Roadmap verbessert werden kann, öffnen Sie bitte eine PR mit Updates und geben Sie Probleme ein. Außerdem werde ich dies weiter verbessern, also sollten Sie dieses Repository auch auf die Hauptrolle spielen.
Dr. Milan Milanović - CTO bei 3MD und Microsoft MVP für Entwicklertechnologien.