Criar aplicativos F#
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.