Verwenden von .NET

Abgeschlossen

In dieser Lerneinheit wird der Fokus auf die technischen Aspekte der Anwendungsentwicklung gelegt. Mithilfe der .NET-Sprachen, -Tools und -Frameworks werden die allgemeinen Workflows skizziert, mit denen Softwareentwickler*innen .NET-Anwendungen erstellen.

Verwenden von .NET zum Erstellen von Anwendungen

In diesem Abschnitt wird der Workflow der Anwendungsentwicklung in .NET beschrieben. Er enthält auch Details zu den ersten Schritten beim Erstellen einer Anwendung in .NET.

Einrichten der Entwicklungsumgebung

Als Erstes müssen sich Entwickler für die Tools entscheiden, mit denen sie ihre Anwendungen erstellen werden. Mit anderen Worten: Sie wählen ihre Entwicklungsumgebung aus. Die Entscheidung hängt üblicherweise davon ab, ob sie einen visuellen Workflow mit einer grafischen Benutzeroberfläche oder eine Befehlszeilenschnittstelle bevorzugen, bei der sie fast ausschließlich mithilfe der Tastatur in der Entwicklungsumgebung navigieren und Befehle geben.

Hinweis

Am Ende dieses Moduls finden Sie Links zu den ersten Schritten für das Einrichten der Entwicklungsumgebung. Sie können entweder Visual Studio 2022 oder Visual Studio Code und das .NET-SDK (Software Development Kit) auswählen.

Für Entwickler, die eine visuelle Umgebung bevorzugen, ist Visual Studio 2022 die beste Wahl. Da Visual Studio 2022 eine umfassende und visuelle Umgebung ist, benötigen Sie mehr Zeit, Bandbreite und Speicherplatz, um das Programm herunterzuladen und zu installieren. Für manche Anfänger ist Visual Studio 2019 jedoch die einfachere Methode, um loszulegen. Je nach Geschwindigkeit der Internetverbindung kann die Installation 15 Minuten oder länger dauern.

Der Visual Studio-Installer von Visual Studio 2022 unterstützt Optionen in Form von Workloads. Eine Workload ist eine Sammlung von Frameworks, Bibliotheken und anderen Tools, die gemeinsam ein bestimmtes App-Modell bilden. Ausgehend von dem, was Sie in der vorherigen Einheit gelernt haben, sollten Sie sicherstellen, dass Sie den Workload installieren, um neue Anwendungen für dieses App-Modell zu erstellen.

Wenn Sie gerade erst anfangen, installiert der Workload ASP.NET und Webentwicklung das .NET SDK und zusätzliche SDKs für die Webentwicklung mit .NET. Das .NET SDK enthält alle Bibliotheken, Tools und Vorlagen, die Sie benötigen, um mit dem Schreiben von Code zu beginnen.

Wenn Sie eine Befehlszeilenumgebung bevorzugen, müssen Sie Visual Studio Code und das .NET SDK separat herunterladen und installieren. Diese Option ist bei Einsteigern beliebt, die schnell loslegen möchten, da der Download beider Tools weniger Bandbreite erfordert.

Erste Schritte

In der Regel beginnen Softwareentwicklungsprojekte mit einer Reihe von Anforderungen. Diese Anforderungen beeinflussen die Wahl des App-Modells. Das ausgewählte App-Modell kann z. B. eine Webanwendung, eine Desktopanwendung, eine mobile Anwendung oder ein Hintergrundprozess sein.

Wenn Sie Visual Studio 2022 oder die .NET-CLI verwenden, beginnen Sie neue Projekte in der Regel mithilfe einer Projektvorlage. Es stehen viele verschiedene Projektvorlagen zur Auswahl. Projektvorlagen bieten folgende Vorteile:

  • Sie generieren Ordner und Dateien auf der Grundlage von Vorlagen und dem von Ihnen festgelegten Namen des Projekts.
  • Sie fügen Verweise auf häufig verwendete Bibliotheken und solche Bibliotheken hinzu, die vom Framework Ihres App-Modells benötigt werden.
  • Sie enthalten erforderlichen Code, der es Ihnen ermöglicht, die Anwendung auszuführen und ein kleines Beispiel anzuzeigen, um sicherzustellen, dass der Code kompiliert werden kann.
  • Sie enthalten manchmal Anweisungen im Code. Diese Anweisungen geben an, wie Sie die Beispielanwendung ändern und ihre eigene erstellen.

Im Dialogfeld Neues Projekt in Visual Studio 2022 können Sie ein Anwendungsmodell visuell aus den installierten Vorlagen auswählen oder aus vielen Beiträgen der Community auswählen. In der .NET-CLI wählen Sie mithilfe des Befehls dotnet new eine neue Projektvorlage aus.

Buildfunktionalität

Als Nächstes beginnen Sie mit dem Schreiben der Logik für Ihre Anwendung. Hierzu fügen Sie Verweise auf Codebibliotheken hinzu, wenn Sie spezielle Aufgaben ausführen müssen. Beispiele:

  • Herstellen einer Verbindung mit Netzwerkressourcen
  • Zugreifen auf eine Datenbank zum Speichern oder Abrufen von Daten
  • Konvertieren von Daten aus einem Format in ein anderes
  • Hinzufügen von Protokollierung zur Diagnose von Anwendungsproblemen

In einigen Fällen sind die Codebibliotheken, die Sie verwenden möchten, bereits auf der lokalen Festplatte vorhanden, da sie zusammen mit dem .NET SDK installiert wurden.

In anderen Fällen verwenden Entwickler den NuGet-Paket-Manager, um Assemblybibliotheken herunterzuladen und darauf zu verweisen. Zum Abrufen dieser Ressourcen können Sie je nach Entwicklungsumgebung das Visual Studio-Dialogfeld NuGet-Paket-Manager oder die Befehlszeilenschnittstelle der .NET-CLI verwenden.

Kompilieren und Ausführen Ihrer Anwendung

Wenn Sie neue Funktionen erstellen, erstellen Sie Ihren Code und führen ihn oft aus. Mit diesem Workflow können Sie erkennen, was korrekt funktioniert und wo Nacharbeit erforderlich ist. Sowohl bei der visuellen Vorgehensweise als auch beim Befehlszeilenansatz werden einfache Befehle verwendet, mit denen der Workflow leicht zu befolgen ist.

Die Codesyntax gilt als falsch, wenn sie nicht die Regeln der Sprache befolgt. Wenn die Syntax falsch ist, löst der .NET-Compiler für Ihre Sprache einen Kompilierungsfehler aus. Der Compiler wird erst fortgesetzt, wenn Sie das Syntaxproblem korrigiert haben.

Manchmal kann der Code kompiliert werden, weil er die Syntaxregeln befolgt, jedoch gibt es Probleme mit der Anwendungslogik. Wenn die Logik die .NET-Runtime an der Ausführung eines Befehls hindert, stürzt das Programm ab. Die .NET-Runtime entfernt dann das Programm aus dem Arbeitsspeicher des Computers. Diese Fehler werden als Laufzeitfehler oder Ausnahmen bezeichnet.

Tipp

Programmgesteuert kann verhindert werden, dass den Benutzern Systemfehlermeldungen im Rohformat angezeigt werden. Weitere Informationen zum Thema „strukturierte Ausnahmeverarbeitung“ finden Sie in den verschiedenen Tutorials und in der Dokumentation.

Einige Logikfehler führen nicht zu einem „Absturz“. Sie generieren aber auch nicht die Ergebnisse, die Ihre Benutzer*innen erwarten. Sie können diese Fehler nur beheben, indem Sie Ihre Anwendung testen und debuggen.

Debuggen einer Anwendung

Während Sie Ihre Software erstellen, sollten Sie die Anwendung ausführen, um festzustellen, ob sie Ihren Anforderungen und Erwartungen entspricht. Möglicherweise finden Sie einen Fehler in Ihrer Anwendung, aber Sie sind nicht sicher, warum dieser auftritt oder wie Sie ihn beheben können.

Beim Debuggen beobachten Sie die Ausführung Ihrer Anwendung, um zu verstehen, was passiert. Sie können Breakpoints festlegen, mit denen die Anwendung angehalten wird, sodass Sie den Code bei der Ausführung Zeile für Zeile mitlesen können. Sie können beispielsweise die in Variablen gespeicherten Werte beobachten, den Ausführungspfad durch den Code steuern, um Zeilen zu überspringen oder zu wiederholen, oder den Wert von Variablen ändern.

Sowohl mit den Tools für das visuelle Debuggen als auch mit denen für das Befehlszeilendebuggen können Sie die Ausführung der Anwendung beobachten und steuern. Mithilfe dieser Funktion lässt sich herausfinden, was während der Ausführung in Ihrer Anwendung vor sich geht.

Verteilen der Anwendung

Wenn die Anwendung bereit für die Veröffentlichung ist, erstellen Sie eine Releaseversion des Builds. Für eine Releaseversion wird der für das Debuggen erforderliche Code entfernt. Sowohl in den visuellen Tools als auch in den Befehlszeilentools können Releaseversionen kompiliert werden.

Zum Ausführen der Releaseversion müssen Sie zunächst die .NET-Runtime auf dem Zielcomputer installieren. Auf diesem Computer wird die kompilierte .NET-Assembly ausgeführt.

Funktionsweise von .NET zur Laufzeit

Nachdem Sie die .NET-Assembly Ihrer Anwendung und die .NET-Runtime auf dem Zielcomputer installiert haben, können Sie Ihre Anwendung ausführen.

Die .NET-Runtime ähnelt einer geschützten Umgebung für die Ausführung Ihrer Anwendungen. Die .NET-Runtime:

  • kompiliert den Zwischencode bei der ersten Ausführung des Programms in ein Binärformat. Das Binärformat ist plattform- und architekturspezifisch (z. B. Windows, 64-Bit) für den jeweiligen Computer, auf dem es ausgeführt wird.
  • sucht den Einstiegspunkt des Programms und beginnt mit der Ausführung der einzelnen Anweisungen in der richtigen Reihenfolge
  • verwaltet Computerressourcen wie den Arbeitsspeicher oder den Netzwerkzugriff. „Verwaltung des Arbeitsspeichers“ bedeutet hier, dass die .NET-Runtime mit dem Betriebssystem zusammenarbeitet, um Speicher für Ihre Anwendung bereitzustellen. Wenn Ihre Anwendung die im Arbeitsspeicher gespeicherten Daten nicht mehr benötigt, wird dieser Speicher ohne Anweisungen des Softwareentwicklers von der Garbage Collection wieder für das Betriebssystem freigegeben.
  • schützt den Computer des Benutzers vor potenziell böswilliger Software. Sie stellt außerdem eine weitere Isolationsebene zwischen Anwendungen bereit.