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.