Создание приложений 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
также запускается автоматически. Таким образом, вы можете избавить себя от необходимости явно создавать свое приложение.