Tworzenie aplikacji języka F#

Ukończone

W tym momencie użyłeś Read-Evaluate-Print-Loop (REPL), a może nawet utworzyłeś plik skryptu fsx. Teraz jesteś w momencie, w którym rośnie aplikacja i musisz uwzględnić więcej plików. Chcesz również mieć możliwość spakowania i dystrybucji aplikacji. W tym celu należy utworzyć projekt. Zestaw .NET SDK udostępnia różne szablony projektów, które ułatwiają rozpoczęcie tworzenia wszystkich typów aplikacji.

Co to są szablony platformy .NET?

Podczas instalowania zestawu SDK platformy .NET otrzymujesz kilkanaście wbudowanych szablonów do tworzenia projektów i plików, w tym:

  • Aplikacje konsolowe
  • Biblioteki klas
  • Projekty testów jednostkowych
  • Aplikacje internetowe platformy ASP.NET Core
  • Pliki konfiguracji

Język F# obsługuje różne szablony, od testowania i projektów internetowych po biblioteki klas. Aby uzyskać pełną listę obsługiwanych projektów, uruchom dotnet new -l w konsoli.

Tworzenie aplikacji przy użyciu szablonów

Aby utworzyć nową aplikację, użyj polecenia interfejsu wiersza poleceń .NET CLI dotnet new. Jeśli na przykład chcesz utworzyć aplikację konsolową języka F#, użyj następującego polecenia.

dotnet new console --language F# -o MyFSharpApp

Niektóre powłoki interpretują # jako znak specjalny. W takim przypadku należy ująć język w cudzysłowy, takie jak dotnet new console --language "F#" -o MyFSharpApp.

Polecenie dotnet new console używa wbudowanego szablonu konsoli .NET do tworzenia szkieletu nowej aplikacji konsolowej.

Po kilku sekundach zostanie wyświetlony katalog o nazwie MyFSharpApp z kodem aplikacji F#.

Struktura projektu

W katalogu MyFSharpApp znajdują się dwa pliki:

  • Program.fs — punkt wejścia dla aplikacji.
  • MyFSharpApp.fsproj — plik projektu MSBuild zawierający informacje o kompilacji i instrukcje. MSBuild to platforma do budowania aplikacji, która dostarcza schemat XML dla pliku projektu, kontrolującego sposób, w jaki platforma przetwarzania i budowania oprogramowania go przetwarza i kompiluje.

Uwaga

Jeśli szablon konsoli został utworzony przy użyciu nowszej wersji platformy .NET, może on generować kod z niejawnym punktem wejścia, który domyślnie wywołuje printfn funkcję.

W poniższym przykładzie plik Program.fs zawiera kod z jawnym punktem wejścia.

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

Ta aplikacja używa System biblioteki klas, która jest importowana przy użyciu słowa kluczowego open .

Funkcja from używa parametru ciągu znaków whom do utworzenia i sformatowania komunikatu tekstowego.

Funkcja main jest punktem wejścia aplikacji. Używa from funkcji , aby utworzyć komunikat "z języka F#" i powiązać wartość z message. Następnie, używając printfn funkcji, wyświetla komunikat "Hello world from F#" do konsoli.

Tworzenie aplikacji

Po utworzeniu aplikacji konsolowej nadszedł czas, aby skompilować ją przy użyciu dotnet build polecenia . Polecenie dotnet build kompiluje projekt i jego zależności w zestawie plików binarnych. Pliki binarne zawierają kod projektu w plikach języka pośredniego (IL) z rozszerzeniem .dll . W zależności od typu i ustawień projektu mogą być uwzględniane inne pliki, takie jak:

  • Plik wykonywalny, którego można użyć do uruchomienia aplikacji, jeśli typ projektu jest plikiem wykonywalnym przeznaczonym dla platformy .NET Core 3.0 lub nowszej.
  • Pliki symboli używane do debugowania z rozszerzeniem .pdb .
  • Plik .deps.json zawierający listę zależności aplikacji lub biblioteki.
  • Plik .runtimeconfig.json, który określa środowisko uruchomieniowe udostępnione i jego wersję dla aplikacji.
  • Inne biblioteki, od których zależy projekt (za pośrednictwem odwołań do projektu lub odwołań do pakietów NuGet).

Pliki wyjściowe są zapisywane w domyślnej lokalizacji, czyli bin/<configuration>/<target>. Debugowanie jest konfiguracją domyślną, ale można ją zastąpić przy użyciu opcji --configuration. Obiekt docelowy odnosi się do struktury docelowej, która jest określona we TargetFramework właściwości pliku fsproj . Platforma docelowa określa zestaw interfejsów API, które mają być dostępne dla aplikacji lub biblioteki. Jeśli na przykład masz aplikację .NET 5 i uruchamiasz dotnet build, dane wyjściowe są umieszczane w bin/Debug/net5.0.

Uruchamianie aplikacji

W przypadku aplikacji, które są wykonywalne, dotnet run polecenie zapewnia wygodną opcję uruchamiania aplikacji. Polecenie dotnet run wyszukuje .dll lub plik wykonywalny w katalogu wyjściowym i używa dotnet sterownika do wykonania kodu zdefiniowanego w punkcie wejścia aplikacji (Program.fs).

Napiwek

Jeśli używasz dotnet run polecenia, dotnet build jest również uruchamiane automatycznie. W związku z tym możesz uniknąć kroku eksplicytnego kompilowania aplikacji.