Aracılığıyla paylaş


.NET CLI ile F# kullanmaya başlama

Bu makale, .NET CLI ile herhangi bir işletim sisteminde (Windows, macOS veya Linux) F# kullanmaya nasıl başlayabileceğinizi kapsar. Konsol uygulaması tarafından çağrılan bir sınıf kitaplığı ile çok projeli bir çözüm oluşturma işleminden geçer.

Önkoşullar

Başlamak için en son .NET SDK'sını yüklemeniz gerekir.

Bu makalede, komut satırını kullanmayı bildiğiniz ve tercih edilen bir metin düzenleyicisine sahip olduğunuz varsayılır. Henüz kullanmıyorsanız , Visual Studio Code F# için metin düzenleyicisi olarak harika bir seçenektir.

Basit bir çoklu proje çözümü oluşturma

Bir komut istemi/terminal açın ve adlı yeni bir çözüm dosyası oluşturmak için FSharpSample komutunu kullanın:

dotnet new sln -o FSharpSample

Aşağıdaki dizin yapısı, önceki komut çalıştırıldıktan sonra oluşturulur:

FSharpSample
    ├── FSharpSample.sln

Bir sınıf kütüphanesi yazmak

Dizinleri FSharpSample olarak değiştirin.

dotnet new Library adlı src klasöründe bir sınıf kitaplığı projesi oluşturmak için komutunu kullanın.

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

Aşağıdaki dizin yapısı, önceki komut çalıştırıldıktan sonra oluşturulur:

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

Library.fs içeriğini aşağıdaki kodla değiştirin:

module Library

open System.Text.Json

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

Library FSharpSample komutunu kullanarak projeyi çözüme ekleyin. Bu komut, çözümün onu izleyebilmesi ve oluşturabilmesi için projeyi çözüm dosyasına ekler:

dotnet sln add src/Library/Library.fsproj

Projeyi oluşturmak için komutunu çalıştırın dotnet build . Yapı oluşturulurken çözümlenmemiş bağımlılıklar geri yüklenecek.

Sınıf kitaplığını kullanan bir konsol uygulaması yazma

dotnet new Komutunu kullanarak App adlı src klasöründe bir konsol uygulaması oluşturun.

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

Aşağıdaki dizin yapısı, önceki komut çalıştırıldıktan sonra oluşturulur:

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

Program.fs dosyasının içeriğini aşağıdaki kodla değiştirin:

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

Library projeye dotnet reference add komutunu kullanarak referans ekleyin. Bu komut App.fsproj dosyasına bir <ProjectReference> öğe ekler ve derleyiciye Uygulama projesinin Kitaplık projesine bağlı olduğunu söyler:

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

Önceki komut App.fsproj dosyasına aşağıdaki XML'yi ekler:

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

Tavsiye

Bu adımı atlar ve Uygulama projesini derlemeye çalışırsanız, modül bulunamadığından Library bir derleme hatası alırsınız. Böyle bir durumda, dotnet add reference komutunu çalıştırabilirsiniz veya yukarıda gösterilen <ProjectReference> elementini App.fsproj dosyanıza el ile ekleyebilirsiniz.

App komutunu kullanarak projeyi FSharpSample çözüme dotnet sln add ekleyin:

dotnet sln add src/App/App.fsproj

NuGet bağımlılıklarını dotnet restore ile geri yükleyin ve projeyi oluşturmak için dotnet build komutunu çalıştırın.

Dizini src/App konsol projesine değiştirin ve projeyi Hello World bağımsız değişkenleri ile çalıştırın.

cd src/App
dotnet run Hello World

Aşağıdaki sonuçları görmeniz gerekir:

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}

Sonraki adımlar

Ardından farklı F# özellikleri hakkında daha fazla bilgi edinmek için F# Turu'na göz atın.