Comience con F# el CLI de .net CoreGet started with F# with the .NET Core CLI

En este artículo se explica cómo puede empezar a F# trabajar con en cualquier sistema operativo (Windows, MacOS o Linux) con el CLI de .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. Pasa por la creación de una solución de varios proyectos con una biblioteca de clases a la que llama una aplicación de consola.It goes through building a multi-project solution with a class library that is called by a console application.

Requisitos previosPrerequisites

Para empezar, debe instalar la SDK de .net Coremás reciente.To begin, you must install the latest .NET Core SDK.

En este artículo se supone que sabe cómo usar una línea de comandos y tener un editor de texto preferido.This article assumes that you know how to use a command line and have a preferred text editor. Si aún no lo usa, Visual Studio Code es una excelente opción como editor de texto para F#.If you don't already use it, Visual Studio Code is a great option as a text editor for F#.

Compilar una solución sencilla de varios proyectosBuild a simple multi-project solution

Abra un símbolo del sistema o terminal y use el comando dotnet New para crear un nuevo archivo FSNetCorede solución denominado:Open a command prompt/terminal and use the dotnet new command to create new solution file called FSNetCore:

dotnet new sln -o FSNetCore

Después de ejecutar el comando anterior, se genera la siguiente estructura de directorios:The following directory structure is produced after running the previous command:

FSNetCore
    ├── FSNetCore.sln

Escribir una biblioteca de clasesWrite a class library

Cambie los directorios a FSNetCore.Change directories to FSNetCore.

Use el dotnet new comando, cree un proyecto de biblioteca de clases en la carpeta 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

Después de ejecutar el comando anterior, se genera la siguiente estructura de directorios:The following directory structure is produced after running the previous command:

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

Reemplace el contenido de Library.fs por el código siguiente: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))

Agregue el paquete NuGet Newtonsoft. JSON al proyecto de biblioteca.Add the Newtonsoft.Json NuGet package to the Library project.

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

Agregue el Library proyecto a la FSNetCore solución mediante el 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

Ejecute dotnet build para compilar el proyecto.Run dotnet build to build the project. Las dependencias no resueltas se restaurarán al compilar.Unresolved dependencies will be restored when building.

Escribir una aplicación de consola que consuma la biblioteca de clasesWrite a console application that consumes the class library

Use el dotnet new comando para crear una aplicación de consola en la carpeta src denominada app.Use the dotnet new command, create a console application in the src folder named App.

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

Después de ejecutar el comando anterior, se genera la siguiente estructura de directorios: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

Reemplace el contenido del Program.fs archivo por el código siguiente: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

Agregue una referencia al Library proyecto mediante dotnet Add Reference.Add a reference to the Library project using dotnet add reference.

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

Agregue el App proyecto a la FSNetCore solución mediante el dotnet sln add comando:Add the App project to the FSNetCore solution using the dotnet sln add command:

dotnet sln add src/App/App.fsproj

Restaure las dependencias dotnet restore de NuGet y dotnet build ejecute para compilar el proyecto.Restore the NuGet dependencies, dotnet restore and run dotnet build to build the project.

Cambie el directorio al src/App proyecto de consola y ejecute el proyecto Hello World pasando 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

Debería ver los resultados siguientes: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!

Pasos siguientesNext steps

A continuación, consulte el paseo F# por para obtener más información sobre F# las distintas características.Next, check out the Tour of F# to learn more about different F# features.