Microsoft has supported F# on .NET Core since version 1 of that platform was released. Tooling availability has lagged in comparison to fellow .NET Core languages C# and VB.NET. This is changing with the release of Visual Studio 2017 15.5 Preview 4, as F# projects can now target .NET Core and .NET Standard. This is a big step for F# developers using .NET Core because prior to this release Microsoft’s official tooling recommendation was VS Code.
By enabling the one or more of the .NET Core workloads (.NET Core, ASP.NET, or Azure) in Visual Studio setup, a whole suite of new project templates will be made available. The F# projects receive the same benefits as those enjoyed by C# projects:
- Smaller project files that don’t have to be unloaded to be edited.
- Once edits are made and saved, VS2017 will react to the changes
- The project’s dependency node organizes all of project references, SDK references, and NuGet dependencies.
As can be expected, these projects take advantage of other traditional aspects of VS2017 support including the ability for F# web projects to be recognized as such when opened in the IDE. F# Applications may also be configured to use continuous delivery services through Visual Studio Team Services or Azure Web Services for easy deployment.
Since this is still in preview, there are some rough edges and incomplete features. Support for F# Interactive on .NET Core is considered “non-trivial” and there is no estimate as to when it will be available. Cross-platform debugging is marked for additional improvement. The compilation order for files is not shown correctly after files are first added so a project must be reloaded to reflect the updates. Finally, while this preview will support F# Web APIs, Web, and MVC projects, they currently must be created on the command line with dotnet new before opening them in Visual Studio.
Visual Studio 2017 15.5 Preview 4 may be downloaded directly from Microsoft or through the Visual Studio Installer if an existing preview build is installed.