Erstellen von F#-Anwendungen

Abgeschlossen

An diesem Punkt haben Sie die Read-Evaluate-Print-Loop (REPL) verwendet und vielleicht sogar eine FSX-Skriptdatei erstellt. Jetzt befinden Sie sich an dem Punkt, an dem Ihre Anwendung wächst, und Sie müssen weitere Dateien einschließen. Außerdem möchten Sie die Möglichkeit zum Packen und Verteilen Ihrer Anwendung verwenden. Zu diesem Zweck müssen Sie ein Projekt erstellen. Das .NET SDK stellt verschiedene Projektvorlagen zur Verfügung, die Sie beim Einstieg in die Entwicklung aller Arten von Anwendungen unterstützen.

Was sind .NET-Vorlagen?

Bei der Installation des .NET SDK erhalten Sie mehr als ein Dutzend integrierter Vorlagen zum Erstellen von Projekten und Dateien, z. B.:

  • Konsolen-Apps
  • Klassenbibliotheken
  • Komponententestprojekte
  • ASP.NET Core-Web-Apps
  • Konfigurationsdateien

F# unterstützt verschiedene Vorlagen– alles von Test- und Webprojekten bis hin zu Klassenbibliotheken. Zum Anzeigen einer vollständigen Liste unterstützter Projekte führen Sie dotnet new -l in der Konsole aus.

Erstellen einer Anwendung mithilfe von Vorlagen

Verwenden Sie den .NET CLI-Befehl dotnet new, um eine neue Anwendung zu erstellen. Wenn Sie beispielsweise eine F#-Konsolenanwendung erstellen möchten, verwenden Sie den folgenden Befehl.

dotnet new console --language F# -o MyFSharpApp

Einige Shells interpretieren # als Sonderzeichen. Schließen Sie in diesem Fall die Sprache in Anführungszeichen ein: dotnet new console --language "F#" -o MyFSharpApp.

Der dotnet new console-Befehl verwendet die integrierte .NET-Konsolenvorlage, um ein Gerüst für eine neue Konsolenanwendung zu erstellen.

Nach ein paar Sekunden wird ein Verzeichnis namens MyFSharpApp mit dem Code für Ihre F#-Anwendung angezeigt.

Projektstruktur

Es gibt zwei Dateien im Verzeichnis "MyFSharpApp ":

  • Program.fs – Der Einstiegspunkt für Ihre Anwendung.
  • MyFSharpApp.fsproj - Die MSBuild-Projektdatei, die Buildinformationen und Anweisungen enthält. MSBuild ist eine Plattform zum Erstellen von Anwendungen, die ein XML-Schema für eine Projektdatei bietet, die steuert, wie die Buildplattform Software verarbeitet und erstellt.

Hinweis

Wenn Ihre Konsolenvorlage mit einer neueren Version von .NET erstellt wurde, wird möglicherweise Code mit einem impliziten Einstiegspunkt generiert, der die printfn Funktion standardmäßig aufruft.

Im folgenden Beispiel enthält die Datei Program.fs Code mit einem expliziten Einstiegspunkt.

// Learn more about F# at https://learn.microsoft.com/dotnet/fsharp

open System

// Define a function to construct a message to print
let from whom =
    sprintf "from %s" whom

[<EntryPoint>]
let main argv =
    let message = from "F#" // Call the function
    printfn "Hello world %s" message
    0 // return an integer exit code

Diese Anwendung verwendet die System-Klassenbibliothek, die mit dem Schlüsselwort open importiert wird.

Die from-Funktion verwendet den Zeichenfolgenparameter whom, um eine Zeichenfolgennachricht zu erstellen und zu formatieren.

Die main-Funktion stellt den Einstiegspunkt der Anwendung dar. Sie verwendet die from-Funktion, um die Nachricht „from F#“ (von F#) zu erstellen und bindet den Wert an message. Anschließend wird mithilfe der Funktion printfn „Hello world from F#“ in der Konsole ausgegeben.

Erstellen einer Anwendung

Nachdem Ihre Konsolenanwendung erstellt wurde, ist es an der Zeit, sie mit dem dotnet build Befehl zu erstellen. Der dotnet build-Befehl erstellt das Projekt und die zugehörigen Abhängigkeiten in einen Satz von Binärdateien. Die Binärdateien enthalten den Code des Projekts in IL-Dateien (Intermediate Language) mit einer .dll Erweiterung. Abhängig vom Projekttyp und den Einstellungen können auch andere Dateien enthalten sein, z. B.:

  • Eine ausführbare Datei, die zum Ausführen der Anwendung verwendet werden kann, wenn der Projekttyp eine ausführbare Datei für .NET Core 3.0 oder höher ist.
  • Symboldateien, die für das Debuggen mit einer PDB-Erweiterung verwendet werden.
  • Eine .deps.json Datei, die die Abhängigkeiten der Anwendung oder Bibliothek auflistet.
  • Eine .runtimeconfig.json Datei, die die freigegebene Laufzeit und die version für eine Anwendung angibt.
  • Andere Bibliotheken, von denen das Projekt abhängig ist (über Projektverweise oder NuGet-Paketverweise).

Ausgabedateien werden in den Standardspeicherort geschrieben, der bin/<configuration>/<target> ist. „Debug“ ist die Standardkonfiguration, aber Sie können sie mit der Option --configuration überschreiben. Das Ziel bezieht sich auf das Zielframework, das in der TargetFramework Eigenschaft der fsproj-Datei angegeben ist. Das Zielframework gibt die Sammlung der APIs an, die Sie der App oder Bibliothek zur Verfügung stellen möchten. Wenn Sie beispielsweise eine .NET 5-Anwendung haben und dotnet build ausführen, wird die Ausgabe in bin/Debug/net5.0 platziert.

Ausführen der Anwendung

Für ausführbare Anwendungen bietet der Befehl dotnet run eine praktische Option zum Ausführen Ihrer Anwendung. Der dotnet run Befehl sucht nach der .dll oder ausführbaren Datei in Ihrem Ausgabeverzeichnis und verwendet den dotnet Treiber, um den Code gemäß der Definition im Einstiegspunkt der Anwendung (Program.fs) auszuführen.

Tipp

Wenn Sie den Befehl dotnet run verwenden, wird dotnet build automatisch ebenfalls ausgeführt. Daher können Sie sich den Schritt ersparen, den Build der Anwendung explizit zu erstellen.