Introdução ao F# com o CLI do .NET CoreGet started with F# with the .NET Core CLI

Este artigo aborda como você pode começar a usar F# o em qualquer sistema operacional (Windows, MacOS ou Linux) com o CLI do .NET Core.This article covers how you can get started with F# on any operating system (Windows, macOS, or Linux) with the .NET Core CLI. Ele passa pela criação de uma solução de vários projetos com uma biblioteca de classes chamada por um aplicativo de console.It goes through building a multi-project solution with a class library that is called by a console application.

PrerequisitesPrerequisites

Para começar, você deve instalar a SDK do .NET Coremais recente.To begin, you must install the latest .NET Core SDK.

Este artigo pressupõe que você saiba como usar uma linha de comando e ter um editor de texto preferido.This article assumes that you know how to use a command line and have a preferred text editor. Se você ainda não o utiliza, Visual Studio Code é uma ótima opção como um editor de texto F#para o.If you don't already use it, Visual Studio Code is a great option as a text editor for F#.

Criar uma solução simples de vários projetosBuild a simple multi-project solution

Abra um prompt de comando/terminal e use o comando dotnet New para criar um novo arquivo de solução chamado FSNetCore:Open a command prompt/terminal and use the dotnet new command to create new solution file called FSNetCore:

dotnet new sln -o FSNetCore

A seguinte estrutura de diretório é produzida após a execução do comando anterior:The following directory structure is produced after running the previous command:

FSNetCore
    ├── FSNetCore.sln

Escrever uma biblioteca de classesWrite a class library

Altere os diretórios para FSNetCore.Change directories to FSNetCore.

Use o comando dotnet new, crie um projeto de biblioteca de classes na pasta src denominada library.Use the dotnet new command, create a class library project in the src folder named Library.

dotnet new classlib -lang "F#" -o src/Library

A seguinte estrutura de diretório é produzida após a execução do comando anterior:The following directory structure is produced after running the previous command:

└── FSNetCore
    ├── FSNetCore.sln
    └── src
        └── Library
            ├── Library.fs
            └── Library.fsproj

Substitua o conteúdo de Library.fs pelo código a seguir:Replace the contents of Library.fs with the following code:

module Library

open Newtonsoft.Json

let getJsonNetJson value =
    sprintf "I used to be %s but now I'm %s thanks to JSON.NET!" value (JsonConvert.SerializeObject(value))

Adicione o pacote NuGet Newtonsoft. JSON ao projeto de biblioteca.Add the Newtonsoft.Json NuGet package to the Library project.

dotnet add src/Library/Library.fsproj package Newtonsoft.Json

Adicione o projeto Library à solução FSNetCore usando o comando dotnet sln Add :Add the Library project to the FSNetCore solution using the dotnet sln add command:

dotnet sln add src/Library/Library.fsproj

Execute dotnet build para compilar o projeto.Run dotnet build to build the project. As dependências não resolvidas serão restauradas durante a compilação.Unresolved dependencies will be restored when building.

Escrever um aplicativo de console que consome a biblioteca de classesWrite a console application that consumes the class library

Use o comando dotnet new, crie um aplicativo de console na pasta src chamada app.Use the dotnet new command, create a console application in the src folder named App.

dotnet new console -lang "F#" -o src/App

A seguinte estrutura de diretório é produzida após a execução do comando anterior:The following directory structure is produced after running the previous command:

└── FSNetCore
    ├── FSNetCore.sln
    └── src
        ├── App
        │   ├── App.fsproj
        │   ├── Program.fs
        └── Library
            ├── Library.fs
            └── Library.fsproj

Substitua o conteúdo do arquivo Program.fs pelo seguinte código:Replace the contents of the Program.fs file with the following code:

open System
open Library

[<EntryPoint>]
let main argv =
    printfn "Nice command-line arguments! Here's what JSON.NET has to say about them:"

    argv
    |> Array.map getJsonNetJson
    |> Array.iter (printfn "%s")

    0 // return an integer exit code

Adicione uma referência ao projeto Library usando dotnet Adicionar referência.Add a reference to the Library project using dotnet add reference.

dotnet add src/App/App.fsproj reference src/Library/Library.fsproj

Adicione o projeto App à solução FSNetCore usando o comando dotnet sln add:Add the App project to the FSNetCore solution using the dotnet sln add command:

dotnet sln add src/App/App.fsproj

Restaure as dependências do NuGet, dotnet restore e execute dotnet build para compilar o projeto.Restore the NuGet dependencies, dotnet restore and run dotnet build to build the project.

Altere o diretório para o projeto de console src/App e execute o projeto passando Hello World como argumentos:Change directory to the src/App console project and run the project passing Hello World as arguments:

cd src/App
dotnet run Hello World

Você deve ver o seguintes resultados:You should see the following results:

Nice command-line arguments! Here's what JSON.NET has to say about them:

I used to be Hello but now I'm ""Hello"" thanks to JSON.NET!
I used to be World but now I'm ""World"" thanks to JSON.NET!

Próximas etapasNext steps

Em seguida, confira o Tour F# do para saber mais sobre F# os diferentes recursos.Next, check out the Tour of F# to learn more about different F# features.