Partager via


Commencer avec F# à l'aide de la ligne de commande .NET

Cet article explique comment bien démarrer avec F# sur n’importe quel système d’exploitation (Windows, macOS ou Linux) avec l’interface CLI .NET. Il passe par la création d’une solution multi-projet avec une bibliothèque de classes appelée par une application console.

Conditions préalables

Pour commencer, vous devez installer le dernier Kit de développement logiciel (SDK) .NET.

Cet article suppose que vous savez utiliser une ligne de commande et avoir un éditeur de texte préféré. Si vous ne l’utilisez pas déjà, Visual Studio Code est une excellente option en tant qu’éditeur de texte pour F#.

Créer une solution multi-projet simple

Ouvrez une invite de commandes/un terminal et utilisez la commande dotnet new pour créer un fichier de solution appelé FSharpSample:

dotnet new sln -o FSharpSample

La structure de répertoires suivante est produite après avoir exécuté la commande précédente :

FSharpSample
    ├── FSharpSample.sln

Écrire une bibliothèque de classes

Remplacez les répertoires par FSharpSample.

Utilisez la dotnet new commande pour créer un projet de bibliothèque de classes dans le dossier src nommé Library.

dotnet new classlib -lang "F#" -o src/Library

La structure de répertoires suivante est produite après avoir exécuté la commande précédente :

└── FSharpSample
    ├── FSharpSample.sln
    └── src
        └── Library
            ├── Library.fs
            └── Library.fsproj

Remplacez le contenu de Library.fs par le code suivant :

module Library

open System.Text.Json

let getJson value =
    let json = JsonSerializer.Serialize(value)
    value, json

Ajoutez le projet Library à la solution FSharpSample à l’aide de la commande dotnet sln add. Cette commande ajoute le projet au fichier solution afin que la solution puisse effectuer le suivi et la générer :

dotnet sln add src/Library/Library.fsproj

Exécutez dotnet build pour générer le projet. Les dépendances non résolues seront restaurées lors de la génération.

Écrire une application console qui consomme la bibliothèque de classes

Utilisez la dotnet new commande pour créer une application console dans le dossier src nommé App.

dotnet new console -lang "F#" -o src/App

La structure de répertoires suivante est produite après avoir exécuté la commande précédente :

└── FSharpSample
    ├── FSharpSample.sln
    └── src
        ├── App
        │   ├── App.fsproj
        │   ├── Program.fs
        └── Library
            ├── Library.fs
            └── Library.fsproj

Remplacez le contenu du fichier Program.fs par le code suivant :

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

Ajoutez une référence au projet Library à l’aide de dotnet add reference. Cette commande ajoute un <ProjectReference> élément au fichier App.fsproj, qui indique au compilateur que le projet d’application dépend du projet bibliothèque :

dotnet add src/App/App.fsproj reference src/Library/Library.fsproj

La commande précédente ajoute le code XML suivant au fichier App.fsproj :

<ItemGroup>
  <ProjectReference Include="..\Library\Library.fsproj" />
</ItemGroup>

Conseil / Astuce

Si vous ignorez cette étape et essayez de générer le projet d’application, vous obtenez une erreur de compilation, car le Library module est introuvable. Si cela se produit, vous pouvez exécuter la commande ou ajouter manuellement l’élément dotnet add reference<ProjectReference> indiqué ci-dessus à votre fichier App.fsproj.

Ajoutez le projet App à la solution FSharpSample à l’aide de la commande dotnet sln add :

dotnet sln add src/App/App.fsproj

Restaurez les dépendances NuGet avec dotnet restore et exécutez dotnet build pour générer le projet.

Remplacez le répertoire par le src/App projet de console et exécutez le projet en passant Hello World en tant qu’arguments :

cd src/App
dotnet run Hello World

Les résultats suivants doivent s’afficher :

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}

Étapes suivantes

Ensuite, consultez la visite guidée de F# pour en savoir plus sur les différentes fonctionnalités F#.