F#-toepassingen maken
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.