F# uygulamaları oluşturma
Bu noktada REPL'yi kullandınız ve hatta bir fsx betik dosyası bile oluşturdunuz. Artık uygulamanızın büyüdüğü noktadasınız, bu nedenle daha fazla dosya eklemeniz ve uygulamanızı paketleyip dağıtma olanağına sahip olmanız gerekir. Bunu yapmak için bir proje oluşturmanız gerekir. .NET SDK'sı, tüm uygulama türlerini oluşturmaya başlamanıza yardımcı olmak için çeşitli proje şablonları sağlar.
.NET Şablonları nedir?
.NET SDK'sını yüklediğinizde, proje ve dosya oluşturmak için aşağıdakiler de dahil olmak üzere bir düzineden fazla yerleşik şablon alırsınız:
- Konsol uygulamaları
- Sınıf kitaplıkları
- Birim testi projeleri
- ASP.NET Core web uygulamaları
- Yapılandırma dosyaları
F# test ve web'den sınıf kitaplıklarına kadar çeşitli şablonlar için destek sunar. Desteklenen projelerin tam listesi için konsolunda komutunu çalıştırın dotnet new -l
.
Şablonları kullanarak uygulama oluşturma
Yeni bir uygulama oluşturmak için .NET CLI komutunu kullanın dotnet new
. Örneğin, bir F# konsol uygulaması oluşturmak istiyorsanız aşağıdaki komutu kullanırsınız.
dotnet new console --language F# -o MyFSharpApp
Bazı kabuklar özel bir karakter olarak yorumlar #
. Bu durumda, dili gibi dotnet new console --language "F#" -o MyFSharpApp
tırnak içine alın.
komutu dotnet new console
, yeni bir konsol uygulamasının iskelesini oluşturmak için yerleşik konsol .NET şablonunu kullanır.
Birkaç saniye sonra, F# uygulamanızın koduyla MyFSharpApp adlı bir dizin görüntülenir.
Proje Yapısı
MyFSharpApp dizininde iki dosya vardır:
- Program.fs - Uygulamanızın giriş noktası.
- MyFSharpApp.fsproj - Derleme bilgilerini ve yönergelerini içeren MSBuild proje dosyası. MSBuild, derleme platformunun yazılımları nasıl işlediğini ve derlediğini denetleen bir proje dosyası için XML şeması sağlayan uygulamalar oluşturmaya yönelik bir platformdur.
Program.fs dosyası aşağıdaki kodu içerir:
// 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
Bu uygulama, anahtar sözcüğü kullanılarak içeri aktarılan sınıf kitaplığını open
kullanırSystem
.
işlevi, from
dize iletisi oluşturmak ve biçimlendirmek için dize parametresini kullanır whom
.
main
işlevi, uygulamanın giriş noktasıdır. "from F#" iletisini oluşturmak için işlevini kullanır from
ve değerini öğesine message
bağlar. Ardından işlevini kullanarak konsola printfn
"Merhaba dünya F# dilinden" yazdırır.
Uygulama oluşturma
Artık bir konsol uygulaması oluşturduğunuza göre, komutunu kullanarak uygulamayı derlemenin dotnet build
zamanı geldi. komutu, dotnet build
projeyi ve bağımlılıklarını bir ikili dosya kümesi halinde oluşturur. İkili dosyalar, projenin .dll uzantısına sahip Ara Dil (IL) dosyalarındaki kodunu içerir. Proje türüne ve ayarlarına bağlı olarak, aşağıdakiler gibi başka dosyalar da eklenebilir:
- Proje türü .NET Core 3.0 veya üzerini hedefleyen bir yürütülebilir dosyaysa, uygulamayı çalıştırmak için kullanabileceğiniz yürütülebilir dosya.
- .pdb uzantısıyla hata ayıklama için kullanılan sembol dosyaları.
- Uygulama veya kitaplığın bağımlılıklarını listeleyen bir .deps.json dosyası.
- Bir uygulama için paylaşılan çalışma zamanını ve sürümünü belirten bir .runtimeconfig.json dosyası.
- Projenin bağımlı olduğu diğer kitaplıklar (proje başvuruları veya NuGet paket başvuruları aracılığıyla).
Çıkış dosyaları, bölme/yapılandırma>/<<hedef> olan varsayılan konuma yazılır. Hata ayıklama varsayılan yapılandırmadır, ancak seçeneğini kullanarak --configuration
bunu geçersiz kılabilirsiniz. Hedef, fsproj dosyasının TargetFramework
özelliğinde belirtilen hedef çerçeveye başvurur. Hedef çerçeve, uygulama veya kitaplık için kullanılabilir hale getirmek istediğiniz API kümesini belirtir. Örneğin, bir .NET 5 uygulamanız varsa ve çalıştırıyorsanızdotnet build
, çıkış bin/Debug/net5.0 içine yerleştirilir.
Uygulamanızı çalıştırma
Yürütülebilir uygulamalar için komutu uygulamanızı dotnet run
çalıştırmak için uygun bir seçenek sağlar. Komut, dotnet run
çıkış dizininizde .dll veya yürütülebilir dosyayı arar ve uygulamanın giriş noktasında (Program.fs) tanımlanan kodu yürütmek için sürücüyü kullanırdotnet
.
Bahşiş
komutunu kullandığınızda dotnet run
, dotnet build
otomatik olarak da çalıştırılır. Bu nedenle, uygulamanızı açıkça oluşturma adımını kaydedebilirsiniz.