Criar aplicativos F#
Neste ponto, você usou o Read-Evaluate-Print-Loop (REPL) e talvez até tenha criado um arquivo de script fsx . Agora você está no ponto em que seu aplicativo está crescendo e precisa incluir mais arquivos. Você também quer 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
O F# tem suporte para vários modelos, desde testes e projetos da Web até bibliotecas de classes. 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 shells interpretam # como um carácter especial. Nesse caso, coloque o idioma entre aspas da seguinte maneira 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 :
- Ficheiro Program.fs - O ponto de entrada para a sua aplicação.
- MyFSharpApp.fsproj - O arquivo de projeto MSBuild que contém informações de compilação e instruções. 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.
Observação
Se o modelo de console foi criado com uma versão mais recente do .NET, ele pode gerar código com um ponto de entrada implícito que chama a printfn função por padrão.
No exemplo a seguir, o arquivo Program.fs contém código com um ponto de entrada explícito .
// 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 seu aplicativo de console foi criado, é hora de compilá-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 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.