Criar aplicativos F#

Concluído

Neste ponto, você já usou o REPL e pode até ter criado um arquivo de script fsx. Agora você chegou a um ponto em que seu aplicativo cresceu. Portanto, você precisa incluir mais arquivos e a capacidade de empacotar e distribuir seu aplicativo. Para isso, você precisa criar um projeto. O SDK do .NET fornece vários modelos de projeto para ajudá-lo a começar a criar todos os tipos de aplicativos.

O que são modelos .NET?

Ao instalar o SDK do .NET, você recebe mais de uma dúzia de modelos integrados para criar projetos e arquivos, incluindo:

  • Aplicativos de console
  • Bibliotecas de classes
  • Projetos de Teste de Unidade
  • Aplicativos Web ASP.NET Core
  • Arquivos de configuração

O F# tem suporte para vários modelos, desde testes e Web até bibliotecas de classes. Para obter uma lista completa dos projetos com suporte, execute dotnet new -l no console.

Criar um aplicativo usando modelos

Para criar um novo aplicativo, use o comando dotnet new do CLI do .NET. Por exemplo, se você quiser criar um aplicativo de console do F#, use o comando a seguir.

dotnet new console --language F# -o MyFSharpApp

Alguns shells interpretam # como um caractere especial. Nesse caso, coloque a linguagem entre aspas, como dotnet new console --language "F#" -o MyFSharpApp.

O comando dotnet new console usa o modelo do console interno do .NET para fazer scaffold para um novo aplicativo de console.

Depois de alguns segundos, um diretório chamado MyFSharpApp aparece com o código do seu aplicativo F#.

Estrutura do Projeto

Há dois arquivos no diretório MyFSharpApp:

  • Program.fs - O ponto de entrada do seu aplicativo.
  • MyFSharpApp. fsproj - Arquivo de projeto do MSBuild que contém informações e instruções de compilação. O MSBuild é uma plataforma para a criação de aplicativos que fornece um esquema XML para um arquivo de projeto que controla como a plataforma de compilação processa e cria software.

O arquivo Program.cs contém o código a seguir:

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

Esse aplicativo usa a biblioteca de classes System, que é importada usando a palavra-chave open.

A função from usa o parâmetro whom da cadeia de caracteres para criar e formatar uma mensagem de cadeia de caracteres.

A função main é o ponto de entrada do aplicativo. Ele usa a função from para criar a mensagem "do F#" e associa o valor a message. Em seguida, usando a função printfn, ele imprime "Olá, Mundo, do F#" no console.

Compilar um aplicativo

Agora que você criou um aplicativo de console, é hora de compilá-lo usando o comando dotnet build. O comando dotnet build compila o projeto e suas dependências em um conjunto de binários. Os binários incluem o código do projeto em arquivos de linguagem intermediária (IL) com uma extensão .dll. A depender do tipo de projeto e das configurações, outros arquivos podem ser incluídos, tais como:

  • Um executável que você pode usar para executar o aplicativo, se o tipo de projeto for um executável direcionado para o .NET Core 3.0 ou posterior.
  • Arquivos de símbolo usados para depuração com uma extensão .pdb.
  • Um arquivo .deps.jsno, que lista as dependências do aplicativo ou da biblioteca.
  • Um arquivo .runtimeconfig.jsno, que especifica o tempo de execução compartilhado e sua versão em um aplicativo.
  • Outras bibliotecas das quais o projeto depende (por meio de referências de projeto ou referências de pacote do NuGet).

Os arquivos de saída são gravados no local padrão, que é bin/<configuration>/<target>. A depuração é a configuração padrão, mas você pode substituí-la usando a opção --configuration. O destino refere-se à estrutura de destino, que é especificada na propriedade TargetFramework do arquivo fsproj. A estrutura de destino especifica o conjunto de APIs que você deseja tornar disponíveis no aplicativo ou na biblioteca. Por exemplo, se você tiver um aplicativo .NET 5 e executar dotnet build , a saída será colocada em bin/Debug/net5.0.

Execute seu aplicativo.

No caso de aplicativos executáveis, o comando dotnet run oferece uma opção prática para executar seu aplicativo. O comando dotnet run procura o .dll ou o executável no diretório de saída e usa o driver dotnet para executar o código, conforme definido no ponto de entrada do aplicativo (Program.fs).

Dica

Quando você usa o comando dotnet run, o dotnet build também é executado automaticamente. Portanto, você economiza a etapa de compilar explicitamente seu aplicativo.