Starting an F# + .NET Core Development Group
We propose to have a group focused to improve the F# story on .NET Core and integration in the .NET Core SDK.
Add yourself in or join #dotnetcore channel in FSF slack for info.
Summary
The goal is to improve the experience for:
- New users
- Existing projects in ecosystem who want to add .NET Core support
Because the goal is about the whole experience, lots of different areas/projects are interested.
It’s not about using .NET Core, but about contributing to so F# will be awesome to use on the .NET Core and .NET Core SDK.
Want to help?
Everyone can start contribute by him/herself already, everything is open source.
But the topic is new and there were also various changes in the previous months (netstandard/project.json), so it’s a bit difficult to get the current status, where start, where is going.
To help new contributors, we’ll do some quick session focused on contribuing about:
- Foundamentals:
- Topics like .net core/coreclr/netstandard/msbuild/sdk/ide
- How the sdk and f# integration works, from zero to final executable/package
- Overview of areas who require help
- Like compiler/ide/tooling/docs/testing/libraries/etc
- Everyone has their own agenda and definition of fun
- Quickstart how to hack dotnet sdk about f# integration
- from clone repo -> hack -> check if works.
- Same for core project too
- Weekly chat about progress
Features and roadmap
This continue the works done in the past.
For example .NET Core Sdk preview2 already support F# ootb for most use cases, and some projects in ecosystem already added .NET Core (or .NET Standard ) support.
But working <> awesome to use.
The lists are just to give an idea of the todo. Some features are already implemented, some not, some are partial.
Basics
list of features needed for basic usage.Additionals
are nice to have, some already works in preview2 (like docker)
Basics
- Support for .NET Core SDK preview3 (next version)
- MSBUILD based, fsproj
- Sdk+compiler from nuget package
- Supported OS: same as .NET Core Sdk
- Must be possibile to use normal workflow from sdk
- restore/build/run/pack/publish/test
- Support for multi framework targeting (crossgen)
- Should be possibile to use it in parallel to old project system
- Works and helps the ecosystem
- Paket
- FAKE
- Fable
- Ionide
- IDE Support: VS Code/FSAC/VS
- Intellisense
- Debugging
- Manually edit of project file works
- Documentation, for example
- Migration from old-fsproj (maybe with a tool too)
- From zero to standalone console app in ide
- From zero to library as nuget package (multiple frameworks)
- CI, travis/appveyor
- Should support other frameworks/profiles: Mono, .NET, PCL
- Help community projects already supporting preview2, like
- Suave
- Argu
- F# Interactive (fsi)
- Templates
- normal use case
- integrated in expected templates generators
- dotnet new
- Forge
- ProjectScaffolding
- Single FSharp.Core package with multiple target frameworks.
Additionals
- As normal as possibile, to easier interoperate with C# on same solution
- Reference C# project
- Be referenced by C# project
- CI testing of different os
- Use the new features of the sdk where useful
- like sdk tools to remove the need of bootstrapping (
dotnet reveal
)
- like sdk tools to remove the need of bootstrapping (
- Docker examples (both linux and windows)
- Mono, Xamarin, IOS, etc
- List f# project who support or doesnt support netstandard1.6
- Type Providers: require
netstandard2.0
Enrico Sada, Dave Thomas