Opprett F#-programmer

Fullført

På dette tidspunktet brukte du Read-Evaluate-Print-Loop (REPL) og kanskje til og med opprettet en fsx-skriptfil . Nå er du på det punktet hvor programmet vokser, og du må inkludere flere filer. Du vil også ha muligheten til å pakke og distribuere programmet. Hvis du vil gjøre dette, må du opprette et prosjekt. .NET SDK inneholder ulike prosjektmaler for å hjelpe deg med å komme i gang med å bygge alle typer programmer.

Hva er .NET-maler?

Når du installerer .NET SDK, mottar du over et dusin innebygde maler for å opprette prosjekter og filer, inkludert:

  • Konsollapper
  • Klassebiblioteker
  • Enhetstestprosjekter
  • ASP.NET Core-nettapper
  • Konfigurasjonsfiler

F# har støtte for ulike maler, alt fra testing og nettprosjekter til klassebiblioteker. Hvis du vil ha en fullstendig liste over støttede prosjekter, kjører du dotnet new -l på konsollen.

Opprette et program ved hjelp av maler

Hvis du vil opprette et nytt program, bruker du kommandoen dotnet new .NET CLI. Hvis du for eksempel vil opprette et F#-konsollprogram, bruker du følgende kommando.

dotnet new console --language F# -o MyFSharpApp

Noen skall tolker # som et spesialtegn. I så fall kan du omslutte språket i anførselstegn som for eksempel dotnet new console --language "F#" -o MyFSharpApp.

Kommandoen dotnet new console bruker den innebygde konsollen .NET-malen til å stillasere et nytt konsollprogram.

Etter noen sekunder vises en katalog kalt MyFSharpApp med koden for F#-programmet.

Prosjektstruktur

Det finnes to filer i MyFSharpApp-katalogen:

  • Program.fs – inngangspunktet for programmet.
  • MyFSharpApp.fsproj – MSBuild-prosjektfilen som inneholder bygginformasjon og instruksjoner. MSBuild er en plattform for bygging av programmer som gir et XML-skjema for en prosjektfil som styrer hvordan byggplattformen behandler og bygger programvare.

Merk

Hvis konsollmalen ble opprettet med en nyere versjon av .NET, kan den generere kode med et implisitt inngangspunkt som kaller printfn funksjonen som standard.

I eksemplet nedenfor inneholder Program.fs-filen kode med et eksplisitt inngangspunkt.

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

Dette programmet bruker System klassebiblioteket, som importeres ved hjelp av nøkkelordet open.

Funksjonen from bruker whom strengparameteren til å opprette og formatere en strengmelding.

Funksjonen main er inngangspunktet for programmet. Den bruker from-funksjonen til å opprette meldingen «fra F#» og binder verdien til message. Deretter skriver den «Hello world from F#» til konsollen ved hjelp av printfn-funksjonen.

Bygge et program

Nå som konsollprogrammet er opprettet, er det på tide å bygge det ved hjelp av dotnet build kommandoen. Kommandoen dotnet build bygger prosjektet og avhengighetene til et sett med binærfiler. Binærfilene inkluderer prosjektets kode i IL-filer (Intermediate Language) med en .dll filtype. Avhengig av prosjekttype og innstillinger kan andre filer inkluderes, for eksempel:

  • En kjørbar fil som du kan bruke til å kjøre programmet, hvis prosjekttypen er en kjørbar målretting mot .NET Core 3.0 eller nyere.
  • Symbolfiler som brukes til feilsøking med filtypen .pdb.
  • En .deps.json fil, som viser avhengighetene til programmet eller biblioteket.
  • En .runtimeconfig.json fil, som angir delt kjøretid og dens versjon for et program.
  • Andre biblioteker som prosjektet er avhengig av (via prosjektreferanser eller NuGet-pakkereferanser).

Utdatafiler skrives til standardplasseringen, som er bin /<konfigurasjon>/<mål>. Feilsøking er standardkonfigurasjonen, men du kan overstyre den ved hjelp av alternativet --configuration. Målet refererer til målrammeverket, som er angitt i TargetFramework-egenskapen til fsproj--filen. Målrammeverket angir settet med API-er som du vil gjøre tilgjengelig for appen eller biblioteket. Hvis du for eksempel har et .NET 5-program og kjører dotnet build, plasseres utdataene i bin/Debug/net5.0.

Kjør programmet

For programmer som kan kjøres, gir dotnet run-kommandoen et praktisk alternativ for å kjøre programmet. Kommandoen dotnet run ser etter .dll eller kjørbar i utdatakatalogen, og bruker den dotnet driveren til å kjøre koden som definert i programmets inngangspunkt (Program.fs).

Tips

Når du bruker kommandoen dotnet run, kjøres dotnet build også automatisk. Derfor er du i stand til å lagre deg selv trinnet for eksplisitt å bygge programmet.