Создание приложений F#

Завершено

На этом этапе вы использовали REPL и, возможно, даже создали файл сценария fsx. Теперь вы находитесь в точке, когда приложение выросло, поэтому вам нужно включить дополнительные файлы, а также возможность упаковать и распространить приложение. Для этого необходимо создать проект. .NET SDK предоставляет различные шаблоны проектов, которые помогут вам приступить к созданию всех типов приложений.

Что такое шаблоны .NET?

При установке пакета SDK для .NET вы получаете более десятка встроенных шаблонов для создания проектов и файлов, в том числе:

  • Консольные приложения
  • Библиотеки классов
  • Проекты модульного теста
  • Веб-приложения ASP.NET Core
  • Файлы конфигурации

F# поддерживает различные шаблоны, все от тестирования и веб-библиотек до библиотек классов. Полный список поддерживаемых проектов можно запустить dotnet new -l в консоли.

Создать приложение по шаблонам

Чтобы создать новое приложение, используйте команду dotnet new .NET CLI. Например, если вы хотите создать консольное приложение F#, используйте следующую команду.

dotnet new console --language F# -o MyFSharpApp

Некоторые оболочки интерпретируют # как специальный символ. В этом случае заключите язык в кавычки, как таковые dotnet new console --language "F#" -o MyFSharpApp.

Команда dotnet new console использует встроенный шаблон консоли .NET для формирования нового консольного приложения.

Через несколько секунд появится каталог MyFSharpApp с кодом вашего приложения F#.

Структура проекта

В каталоге MyFSharpApp есть два файла:

  • Program.fs — точка входа для вашего приложения.
  • MyFSharpApp.fsproj — файл проекта MSBuild, содержащий информацию и инструкции по сборке. MSBuild — это платформа для создания приложений, которая предоставляет схему XML для файла проекта, который управляет тем, как платформа сборки обрабатывает и создает программное обеспечение.

Файл Program.fs содержит следующий код:

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

Это приложение использует библиотеку System классов, импортируемую с помощью ключевого open слова.

Функция from использует строковый параметр whom для создания и форматирования строкового сообщения.

Функция main — это точка входа в приложение. Он использует функцию from для создания сообщения "из F#" и привязывает значение к message. Затем, используя функцию printfn, он выводит на консоль "Hello world from F#".

сборка приложения

Теперь, когда вы создали консольное приложение, пришло время создать его с помощью команды dotnet build. Команда dotnet build выполняет сборку проекта и его зависимостей в набор двоичных файлов. Эти двоичные файлы содержат код проекта в виде файлов на промежуточном языке (IL) с расширением DLL. В зависимости от типа проекта и параметров другие файлы могут быть включены, например:

  • Исполняемый файл, который можно использовать для запуска приложения, если тип проекта является исполняемым файлом, предназначенным для .NET Core 3.0 или более поздней версии.
  • Файлы символов, используемые для отладки с помощью расширения PDB.
  • Файл .deps.json, в котором перечислены зависимости приложения или библиотеки.
  • Файл .runtimeconfig.json, определяющий общую среду выполнения и ее версию для приложения.
  • Другие библиотеки, от которых зависит проект (через ссылки на проект или ссылки на пакеты NuGet).

Выходные файлы записываются в расположение по умолчанию, то есть bin/<configuration>/<target>. Отладка — это конфигурация по умолчанию, но вы можете переопределить ее, используя опцию --configuration. Цель относится к целевой платформе, которая указывается в свойстве TargetFramework файла fsproj. Целевая платформа определяет набор API, которые вы хотите сделать доступными для приложения или библиотеки. Например, если у вас есть приложение .NET 5 и вы запускаете dotnet build, результат помещается в bin/Debug/net5.0.

Запуск приложения

Для приложений, которые являются исполняемыми, dotnet run команда предоставляет удобный вариант для запуска приложения. Команда dotnet run ищет .dll или исполняемый файл в вашем выходном каталоге и использует драйвер dotnet для выполнения кода, как определено в точке входа приложения (Program.fs).

Совет

Когда вы используете команду dotnet run, dotnet build также запускается автоматически. Таким образом, вы можете избавить себя от необходимости явно создавать свое приложение.