F#-toepassingen maken

Voltooid

Op dit moment hebt u de REPL gebruikt en misschien zelfs een fsx-scriptbestand gemaakt. Nu bent u op het punt waar uw toepassing is gegroeid, zodat u meer bestanden moet opnemen en de mogelijkheid hebt om uw toepassing te verpakken en te distribueren. Hiervoor moet u een project maken. De .NET SDK biedt verschillende projectsjablonen om u te helpen aan de slag te gaan met het bouwen van alle typen toepassingen.

Wat zijn .NET-sjablonen?

Wanneer u de .NET SDK installeert, ontvangt u meer dan tien ingebouwde sjablonen voor het maken van projecten en bestanden, waaronder:

  • Console-apps
  • Klassebibliotheken
  • Eenheidstestprojecten
  • ASP.NET Core web apps
  • Configuratiebestanden

F# biedt ondersteuning voor verschillende sjablonen, van testen en web tot klassebibliotheken. Voor een volledige lijst met ondersteunde projecten, voert u deze uit dotnet new -l op de console.

Een toepassing maken met behulp van sjablonen

Als u een nieuwe toepassing wilt maken, gebruikt u de dotnet new .NET CLI-opdracht. Als u bijvoorbeeld een F#-consoletoepassing wilt maken, gebruikt u de volgende opdracht.

dotnet new console --language F# -o MyFSharpApp

Sommige shells interpreteren # als een speciaal teken. In dat geval plaatst u de taal tussen aanhalingstekens als zodanig dotnet new console --language "F#" -o MyFSharpApp.

De dotnet new console opdracht maakt gebruik van de ingebouwde .NET-consolesjabloon om een nieuwe consoletoepassing te maken.

Na een paar seconden wordt een map met de naam MyFSharpApp weergegeven met de code voor uw F#-toepassing.

Projectstructuur

Er zijn twee bestanden in de map MyFSharpApp :

  • Program.fs : het toegangspunt voor uw toepassing.
  • MyFSharpApp.fsproj - MSBuild-projectbestand met buildgegevens en instructies. MSBuild is een platform voor het bouwen van toepassingen die een XML-schema bieden voor een projectbestand dat bepaalt hoe het buildplatform software verwerkt en bouwt.

Het bestand Program.fs bevat de volgende code:

// 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

Deze toepassing maakt gebruik van de System klassebibliotheek, die wordt geïmporteerd met behulp van het open trefwoord.

De from functie gebruikt de whom tekenreeksparameter om een tekenreeksbericht te maken en op te maken.

De main functie is het toegangspunt van de toepassing. De functie maakt gebruik van de from functie om het bericht 'van F#' te maken en koppelt de waarde aan message. Vervolgens wordt met behulp van de printfn functie 'Hallo wereld van F#' afgedrukt naar de console.

Een toepassing bouwen

Nu u een consoletoepassing hebt gemaakt, is het tijd om deze te bouwen met behulp van de dotnet build opdracht. Met de dotnet build opdracht worden het project en de bijbehorende afhankelijkheden gebouwd in een set binaire bestanden. De binaire bestanden bevatten de code van het project in IL-bestanden (Intermediate Language) met een .dll-extensie . Afhankelijk van het projecttype en de instellingen, kunnen andere bestanden worden opgenomen, zoals:

  • Een uitvoerbaar bestand dat u kunt gebruiken om de toepassing uit te voeren, als het projecttype een uitvoerbaar bestand is dat gericht is op .NET Core 3.0 of hoger.
  • Symboolbestanden die worden gebruikt voor foutopsporing met de extensie .pdb .
  • Een .deps.json-bestand , waarin de afhankelijkheden van de toepassing of bibliotheek worden vermeld.
  • Een .runtimeconfig.json-bestand , waarmee de gedeelde runtime en de bijbehorende versie voor een toepassing worden opgegeven.
  • Andere bibliotheken waarvoor het project afhankelijk is (via projectverwijzingen of NuGet-pakketverwijzingen).

Uitvoerbestanden worden naar de standaardlocatie geschreven. Dit is bin/<configuratie>/<doel>. Foutopsporing is de standaardconfiguratie, maar u kunt deze overschrijven met behulp van de --configuration optie. Het doel verwijst naar het doelframework, dat is opgegeven in de TargetFramework eigenschap van het fsproj-bestand . Het doelframework geeft de set API's op die u beschikbaar wilt maken voor de app of bibliotheek. Als u bijvoorbeeld een .NET 5-toepassing hebt en u uitvoertdotnet build, wordt de uitvoer in bin/Debug/net5.0 geplaatst.

Uw toepassing uitvoeren

Voor toepassingen die uitvoerbaar zijn, biedt de dotnet run opdracht een handige optie om uw toepassing uit te voeren. De dotnet run opdracht zoekt naar het .dll of uitvoerbaar bestand in de uitvoermap en gebruikt het dotnet stuurprogramma om de code uit te voeren zoals gedefinieerd in het invoerpunt van de toepassing (Program.fs).

Tip

Wanneer u de dotnet run opdracht gebruikt, dotnet build wordt deze ook automatisch uitgevoerd. Daarom kunt u uzelf de stap besparen om uw toepassing expliciet te bouwen.