Erstellen von F#-Anwendungen

Abgeschlossen

An diesem Punkt haben Sie die REPL verwendet und vielleicht sogar eine FSX-Skriptdatei erstellt. Nun sind Sie an dem Punkt angelangt, an dem Ihre Anwendung so umfangreich geworden ist, dass Sie weitere Dateien einschließen müssen und eine Möglichkeit zum Verpacken und Verteilen Ihrer Anwendung benötigen. 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# bietet Unterstützung für eine Vielzahl von Vorlagen, von Test- und Webvorlagen bis 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 einigen Sekunden wird ein Verzeichnis namens MyFSharpApp mit dem Code für Ihre F#-Anwendung angezeigt.

Projektstruktur

Im Verzeichnis MyFSharpApp befinden sich zwei Dateien:

  • Program.fs: Der Einstiegspunkt für Ihre Anwendung.
  • MyFSharpApp.fsproj: 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.

Die Datei Program.fs enthält den folgenden Code:

// Learn more about F# at http://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 Sie nun eine Konsolenanwendung erstellt haben, können Sie mit dem Befehl dotnet build den Build 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 Projektcode in IL-Dateien (Intermediate Language) mit der Erweiterung DLL. 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 mit der Erweiterung PDB, die für das Debuggen verwendet werden.
  • Eine Datei .deps.json, die die Abhängigkeiten der Anwendung oder Bibliothek auflistet.
  • Eine Datei .runtimeconfig.json, die die freigegebene Laufzeit und deren Version für eine Anwendung angibt.
  • Andere Bibliotheken, von denen das Projekt abhängig ist (über Projektverweise oder NuGet-Paketverweise).

Ausgabedateien werden an den Standardspeicherort geschrieben, das heißt bin/<configuration>/<target>. „Debug“ ist die Standardkonfiguration, aber Sie können sie mit der Option --configuration überschreiben. Das Ziel verweist auf das Zielframework, das in der Eigenschaft TargetFramework 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 über eine .NET 5-Anwendung verfügen 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 Befehl dotnet run sucht nach der DLL oder Programmdatei in Ihrem Ausgabeverzeichnis und verwendet den dotnet-Treiber, um den Code auszuführen, wie im Einstiegspunkt der Anwendung (Program.fs) definiert.

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.