Criar aplicativos F#

Concluído

Neste ponto, você usou o REPL e talvez até tenha criado um arquivo de script fsx . Agora você está no ponto em que seu aplicativo cresceu, então você precisa incluir mais arquivos e a capacidade de empacotar e distribuir seu aplicativo. Para fazer 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 internos para criar projetos e arquivos, incluindo:

  • Aplicações de consola
  • Bibliotecas de classes
  • Projetos de teste unitário
  • Aplicações Web ASP.NET Core
  • Arquivos de configuração

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

Criar um aplicativo usando modelos

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

dotnet new console --language F# -o MyFSharpApp

Algumas conchas interpretam # como um caráter especial. Nesse caso, coloque a língua entre aspas como tal dotnet new console --language "F#" -o MyFSharpApp.

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

Após 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 para a sua aplicação.
  • MyFSharpApp.fsproj - Arquivo de projeto MSBuild que contém informações e instruções de compilação. MSBuild é uma plataforma para criar aplicativos que fornece um esquema XML para um arquivo de projeto que controla como a plataforma de compilação processa e cria software.

O ficheiro Program.fs contém o seguinte código:

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

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

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

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

Criar uma aplicação

Agora que você criou um aplicativo de console, é hora de criá-lo usando o dotnet build comando. O dotnet build comando constrói 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 . Dependendo do tipo de projeto e das configurações, outros arquivos podem ser incluídos, como:

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

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

Executar a aplicação

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

Gorjeta

Quando você usa o dotnet run comando, dotnet build é executado automaticamente também. Portanto, você pode salvar a si mesmo a etapa de criar explicitamente seu aplicativo.