Aan de slag met F# met de .NET CLI
In dit artikel wordt beschreven hoe u aan de slag kunt met F# op elk besturingssysteem (Windows, macOS of Linux) met de .NET CLI. Het gaat door het bouwen van een oplossing voor meerdere projecten met een klassebibliotheek die wordt aangeroepen door een consoletoepassing.
Vereisten
Om te beginnen moet u de nieuwste .NET SDK installeren.
In dit artikel wordt ervan uitgegaan dat u weet hoe u een opdrachtregel gebruikt en een voorkeursteksteditor hebt. Als u deze nog niet gebruikt, is Visual Studio Code een uitstekende optie als teksteditor voor F#.
Een eenvoudige oplossing voor meerdere projecten bouwen
Open een opdrachtprompt/terminal en gebruik de nieuwe dotnet-opdracht om een nieuw oplossingsbestand met de naam FSharpSample
:
dotnet new sln -o FSharpSample
De volgende mapstructuur wordt geproduceerd na het uitvoeren van de vorige opdracht:
FSharpSample
├── FSharpSample.sln
Een klassebibliotheek schrijven
Wijzig mappen in FSharpSample.
Gebruik de dotnet new
opdracht om een klassebibliotheekproject te maken in de src-map Bibliotheek.
dotnet new classlib -lang "F#" -o src/Library
De volgende mapstructuur wordt geproduceerd na het uitvoeren van de vorige opdracht:
└── FSharpSample
├── FSharpSample.sln
└── src
└── Library
├── Library.fs
└── Library.fsproj
Vervang de inhoud door Library.fs
de volgende code:
module Library
open System.Text.Json
let getJson value =
let json = JsonSerializer.Serialize(value)
value, json
Voeg het Library
project toe aan de FSharpSample
oplossing met behulp van de opdracht dotnet sln add :
dotnet sln add src/Library/Library.fsproj
Voer dotnet build
uit om het project te bouwen. Niet-opgeloste afhankelijkheden worden hersteld bij het bouwen.
Een consoletoepassing schrijven die gebruikmaakt van de klassebibliotheek
Gebruik de dotnet new
opdracht om een consoletoepassing te maken in de src-map met de naam App.
dotnet new console -lang "F#" -o src/App
De volgende mapstructuur wordt geproduceerd na het uitvoeren van de vorige opdracht:
└── FSharpSample
├── FSharpSample.sln
└── src
├── App
│ ├── App.fsproj
│ ├── Program.fs
└── Library
├── Library.fs
└── Library.fsproj
Vervang de inhoud van bestand Program.fs
door de volgende code:
open System
open Library
[<EntryPoint>]
let main args =
printfn "Nice command-line arguments! Here's what System.Text.Json has to say about them:"
let value, json = getJson {| args=args; year=System.DateTime.Now.Year |}
printfn $"Input: %0A{value}"
printfn $"Output: %s{json}"
0 // return an integer exit code
Voeg een verwijzing naar het Library
project toe met behulp van dotnet add reference.
dotnet add src/App/App.fsproj reference src/Library/Library.fsproj
Voeg het App
project toe aan de FSharpSample
oplossing met behulp van de dotnet sln add
opdracht:
dotnet sln add src/App/App.fsproj
Herstel de NuGet-afhankelijkheden met dotnet restore
en voer deze uit dotnet build
om het project te bouwen.
Wijzig de map in het src/App
consoleproject en voer het project uit Hello World
als argumenten:
cd src/App
dotnet run Hello World
De volgende resultaten wordt weergegeven.
Nice command-line arguments! Here's what System.Text.Json has to say about them:
Input: { args = [|"Hello"; "World"|] year = 2021 }
Output: {"args":["Hello","World"],"year":2021}
Volgende stappen
Bekijk vervolgens de Tour of F# voor meer informatie over verschillende F#-functies.