Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica cómo empezar a trabajar con F# en cualquier sistema operativo (Windows, macOS o Linux) con la CLI de .NET. El proceso consiste en crear una solución multiproyecto con una biblioteca de clases que es llamada por una aplicación de consola.
Prerrequisitos
Para empezar, debe instalar el SDK de .NET más reciente.
En este artículo se da por supuesto que sabe cómo usar una línea de comandos y tener un editor de texto preferido. Si aún no lo usa, Visual Studio Code es una excelente opción como editor de texto para F#.
Creación de una solución de varios proyectos sencilla
Abra un terminal y use el comando dotnet new para crear un nuevo archivo de solución llamado FSharpSample:
dotnet new sln -o FSharpSample
La siguiente estructura de directorios se genera después de ejecutar el comando anterior:
FSharpSample
├── FSharpSample.sln
Escribir una biblioteca de clases
Cambie los directorios a FSharpSample.
Use el dotnet new comando para crear un proyecto de biblioteca de clases en la carpeta src denominada Library.
dotnet new classlib -lang "F#" -o src/Library
La siguiente estructura de directorios se genera después de ejecutar el comando anterior:
└── FSharpSample
├── FSharpSample.sln
└── src
└── Library
├── Library.fs
└── Library.fsproj
Reemplace el contenido de Library.fs por el código siguiente:
module Library
open System.Text.Json
let getJson value =
let json = JsonSerializer.Serialize(value)
value, json
Agregue el Library proyecto a la FSharpSample solución mediante el comando dotnet sln add . Este comando agrega el proyecto al archivo de solución para que la solución pueda realizar el seguimiento y compilarlo:
dotnet sln add src/Library/Library.fsproj
Ejecute dotnet build para compilar el proyecto. Las dependencias sin resolver se restauran al compilar.
Escritura de una aplicación de consola que consume la biblioteca de clases
Use el dotnet new comando para crear una aplicación de consola en la carpeta src denominada App.
dotnet new console -lang "F#" -o src/App
La siguiente estructura de directorios se genera después de ejecutar el comando anterior:
└── FSharpSample
├── FSharpSample.sln
└── src
├── App
│ ├── App.fsproj
│ ├── Program.fs
└── Library
├── Library.fs
└── Library.fsproj
Reemplace el contenido del archivo Program.fs por el código siguiente:
open System
open Library
[<EntryPoint>]
let main args =
printfn "Nice command-line arguments! Here's what System.Text.Json has to say about them:"
let value, json = getJson {| args=args; year=System.DateTime.Now.Year |}
printfn $"Input: %0A{value}"
printfn $"Output: %s{json}"
0 // return an integer exit code
Agregue una referencia al proyecto Library mediante dotnet reference add. Este comando agrega un <ProjectReference> elemento al archivo App.fsproj, que indica al compilador que el proyecto de aplicación depende del proyecto Biblioteca:
dotnet add src/App/App.fsproj reference src/Library/Library.fsproj
El comando anterior agrega el siguiente XML al archivo App.fsproj:
<ItemGroup>
<ProjectReference Include="..\Library\Library.fsproj" />
</ItemGroup>
Sugerencia
Si omite este paso e intenta compilar el proyecto de aplicación, obtendrá un error de compilación porque no se encuentra el Library módulo. Si esto sucede, puede ejecutar el dotnet add reference comando o agregar manualmente el <ProjectReference> elemento mostrado anteriormente al archivo App.fsproj.
Agregue el App proyecto a la FSharpSample solución mediante el dotnet sln add comando :
dotnet sln add src/App/App.fsproj
Restaure las dependencias de NuGet con dotnet restore y ejecute dotnet build para compilar el proyecto.
Cambie el directorio al proyecto de consola src/App y ejecute el proyecto al pasar Hello World como argumentos:
cd src/App
dotnet run Hello World
Debería ver los siguientes resultados:
Nice command-line arguments! Here's what System.Text.Json has to say about them:
Input: { args = [|"Hello"; "World"|] year = 2021 }
Output: {"args":["Hello","World"],"year":2021}
Pasos siguientes
A continuación, explore el tour de F# para conocer más sobre las diferentes características de F#.