F#-alkalmazások létrehozása

Befejeződött

Ezen a ponton a Read-Evaluate-Print-Loop (REPL) vagy talán még egy fsx szkriptfájlt is létrehozott. Most már azon a ponton van, ahol az alkalmazás növekszik, és további fájlokat kell tartalmaznia. Emellett az alkalmazás csomagolására és terjesztésére is szüksége van. Ehhez létre kell hoznia egy projektet. A .NET SDK különböző projektsablonokat biztosít, amelyek segítenek az összes alkalmazástípus létrehozásának megkezdésében.

Mik azok a .NET-sablonok?

A .NET SDK telepítésekor több mint egy tucat beépített sablont kap a projektek és fájlok létrehozásához, beleértve a következőket:

  • Konzolalkalmazások
  • Osztálykódtárak
  • Egységtesztelési projektek
  • ASP.NET Core-webalkalmazások
  • Konfigurációs fájlok

Az F# számos sablont támogat, a teszteléstől a webes projekteken át az osztálytárakig. A támogatott projektek teljes listáját a konzolon futtathatja dotnet new -l .

Alkalmazás létrehozása sablonok használatával

Új alkalmazás létrehozásához használja a dotnet new .NET CLI parancsot. Ha például F#-konzolalkalmazást szeretne létrehozni, használja a következő parancsot.

dotnet new console --language F# -o MyFSharpApp

Egyes rendszerhéjak speciális karakterként értelmeznek # . Ebben az esetben idézőjelekbe dotnet new console --language "F#" -o MyFSharpAppfoglalja a nyelvet.

A dotnet new console parancs a beépített konzol .NET-sablonjával készíti el az új konzolalkalmazást.

Néhány másodperc múlva megjelenik egy MyFSharpApp nevű könyvtár az F#-alkalmazás kódjával.

Projektstruktúra

A MyFSharpApp könyvtárban két fájl található:

  • Program.fs – Az alkalmazás belépésipontja.
  • MyFSharpApp.fsproj – Az MSBuild projektfájl, amely buildinformációkat és utasításokat tartalmaz. Az MSBuild olyan alkalmazások készítésére szolgáló platform, amely XML-sémát biztosít egy projektfájlhoz, amely szabályozza, hogy a buildplatform hogyan dolgozza fel és hozza létre a szoftvereket.

Megjegyzés

Ha a konzolsablon a .NET egy újabb verziójával lett létrehozva, előfordulhat, hogy egy implicit belépési ponttal rendelkező kódot hoz létre, amely alapértelmezés szerint meghívja a printfn függvényt.

Az alábbi példában a Program.fsfájl explicit belépési pontot tartalmazó kódot tartalmaz.

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

Ez az alkalmazás az System osztálytárat használja, amelyet a kulcsszóval importálunk open .

A from függvény a sztringparamétert használja egy whom sztringüzenet létrehozásához és formázásához.

A main függvény az alkalmazás belépési pontja. A függvény használatával from hozza létre az "F#-ból" üzenetet, és az értéket a függvényhez messageköti. Ezután a printfn függvény használatával a "Hello world from F#" (Hello world from F#) szöveget nyomtatja ki a konzolra.

Alkalmazás készítése

Most, hogy létrejött a konzolalkalmazás, ideje a parancs használatával felépíteni dotnet build . A dotnet build parancs bináris fájlok készletébe építi a projektet és annak függőségeit. A bináris fájlok tartalmazzák a projekt kódját köztes nyelvű (IL) fájlokban ,.dll kiterjesztéssel. A projekt típusától és beállításaitól függően más fájlok is megjelenhetnek, például:

  • Az alkalmazás futtatásához használható végrehajtható fájl, ha a projekt típusa végrehajtható cél a .NET Core 3.0-s vagy újabb verziójával.
  • A .pdb kiterjesztéssel végzett hibakereséshez használt szimbólumfájlok.
  • Egy .deps.json fájl, amely felsorolja az alkalmazás vagy tár függőségeit.
  • Egy .runtimeconfig.json fájl, amely meghatározza az alkalmazás megosztott futtatókörnyezetét és verzióját.
  • Egyéb kódtárak, amelyektől a projekt függ (projekthivatkozásokon vagy NuGet-csomaghivatkozásokon keresztül).

A kimeneti fájlok írása az alapértelmezett helyre történik, amely a bin/<konfiguráció>/<target> mappa. A hibakeresés az alapértelmezett konfiguráció, de a beállítással --configuration felülbírálhatja. A cél az TargetFramework tulajdonságában megadott cél-keretrendszerre hivatkozik. A cél keretrendszer meghatározza azokat az API-kat, amelyeket elérhetővé szeretne tenni az alkalmazás vagy a tár számára. Ha például .NET 5-alkalmazással rendelkezik, és futtatja dotnet build, a kimenet a bin/Debug/net5.0 fájlba kerül.

Az alkalmazás futtatása

Végrehajtható alkalmazások esetén a dotnet run parancs kényelmes lehetőséget biztosít az alkalmazás futtatására. A dotnet run parancs megkeresi a .dll vagy végrehajtható fájlt a kimeneti könyvtárban, és az dotnet illesztőprogram használatával hajtja végre az alkalmazás belépési pontjában (Program.fs) meghatározott kódot.

Tipp.

A parancs használatakor a dotnet run rendszer automatikusan futtatja is a parancsot dotnet build . Ezért mentheti saját magának az alkalmazás explicit létrehozásának lépését.