State of .net core support in the exosystem

111 views
Skip to first unread message

Sotirios Mantziaris

unread,
Jun 14, 2016, 5:58:28 AM6/14/16
to F# Discussions
Hi,

i would like to ask if there is a visual indicator on the progress of supporting F# and the libraries to dotnet core.
Would it make sense to create a centralized dashboard with the progress of:
  • Tooling (project templates)
  • Libraries (FSharp.Data, Suave.io etc)
  • IDE support
i am trying to create a asp.net core project with a lib in F# that uses various libs and either cannot found the implementations or they don't exist.
This would be a nice thing for the foundation maybe.

Thanks 

Warren Young

unread,
Jun 15, 2016, 9:57:31 AM6/15/16
to fsharp-o...@googlegroups.com
On Jun 14, 2016, at 3:58 AM, Sotirios Mantziaris <smant...@gmail.com> wrote:
>
> i would like to ask if there is a visual indicator…dashboard…

It is not in the nature of open source projects to build dashboards. Open source projects generally have a tough enough time getting enough developer resources to get essential code written. Dashboards are not essential.

> the progress of supporting F# and the libraries to dotnet core.

What does that mean to you?

To me, it is almost a null statement. .NET Core is what .NET Core is. There is no status for bringing things that are not .NET Core to .NET Core, because those things are not .NET Core.

Nevertheless, I will agree that it would be useful to have a list of .NET libraries and such that have been ported to .NET Core.

The ASP.NET 5 package search engine can give you some of this:

https://packagesearch.azurewebsites.net/

That search engine isn’t specifically for .NET Core, but if a package has the netcore50 tag, it is compatible with .NET Core. You can learn what the other tags mean and decide from that how far from “portable” the package is. This blog post might help:

http://blog.marcgravell.com/2015/11/the-road-to-dnxpart-3.html

I can’t seem to trick the search engine into giving me a list of all packages it knows about, so you apparently have to poke at it one package at a time to figure out the state of things you care about.

> • Tooling (project templates)

What are you thinking of here, beyond what Microsoft provides in Visual Studio? Are you asking for some third-party project template repository?

> • Libraries (FSharp.Data, Suave.io etc)

Portability to .NET Core is a problem. I’ve tried porting a few small projects to it, and ran into piles of problems due to missing functionality.

Much of that is very much intentional, like lack of Windows Forms and WPF, which rules out porting GUI apps, but a lot also seems to be due to a brutal level of API pruning.

For example, System.IO.File.Close() does not exist in .NET Core. When I reported that as a bug, the maintainers of the project denied that it was a problem. They said I should either be using Dispose() instead, or a mutable File object, or wrap the whole thing in a “using” expression so the F# runtime cleans things up for me. All of those are indeed valid options; my point is simply that .NET Core seems to be about pruning off what the designers perceive as unnecessary functionality.

If that were the design sensibility of .NET from the start, I’d be all for it, but we’ve got 10+ years of .NET inertia now, so you just know that the vast majority of current .NET code uses at least one bit of “unnecessary” functionality.

Therefore, I predict that the adoption of .NET Core will be slow. Only projects that make an intentional effort to port to it will end up used with it.

I don’t think this is a risk of failure for .NET Core, but it does inherently marginalize it as a platform.

> • IDE support

Presumably VS.next will have wholehearted .NET Core support.

What does that leave?

Xamarin Studio seems to be going back to its non-Windows roots, with Microsoft deprecating it on Windows in favor of Visual Studio. It will be interesting to see if Microsoft invests in .NET Core support for it. They might, with the idea that they want to support Linux and OS X programmers on Azure, for example.

SharpDevelop seems to be retrenching to a C#-only Windows-centric world.

Zeus? A search for “net core” on its web forum turned up only one irrelevant hit.

What’s left? All I can think of are programmers’ editor lash-ups, not IDEs proper. (Sublime, VS Code, Ionide…) Do you mean to include those, too?

> i am trying to create a asp.net core project with a lib in F# that uses various libs and either cannot found the implementations or they don't exist.
> This would be a nice thing for the foundation maybe.

I think the only thing that’s going to move the needle are individual developers scratching their own itches. If you want Library X to be ported to .NET Core, you should just port Library X to .NET Core.

Sotirios Mantziaris

unread,
Jun 15, 2016, 2:53:55 PM6/15/16
to F# Discussions
Thanks for your comprehensive answer.
I am currently working on a project which is an ideal candidate for f#(event sourcing).
The project will be developed in asp.net core.
Unfortunately i am learning f# so porting is not yet possible.

vs is ok. a project templates for f# library in core does not exist but there is a workaround creating with cli a f# application and hacking the project.json to be a library.

The only missing piece are libraries. I feel confident that the community feels the same about asp.net core like i do and make porting to dotnet core a priority.
and maybe when i am proficient enough i could help with that but this may take a while.

Warren Young

unread,
Jun 15, 2016, 5:06:44 PM6/15/16
to fsharp-o...@googlegroups.com
On Jun 15, 2016, at 12:53 PM, Sotirios Mantziaris <smant...@gmail.com> wrote:
>
> Unfortunately i am learning f# so porting is not yet possible.

The easiest way to learn a new programming language is to go into it with a well-defined project with concrete goals. I can think of no project more well-defined or with more concrete goals than porting an existing working library to a new platform. You know exactly what the library has to do up front, and you have a working model to strive toward.

Warren Young

unread,
Jun 15, 2016, 7:12:45 PM6/15/16
to fsharp-o...@googlegroups.com
On Jun 15, 2016, at 12:53 PM, Sotirios Mantziaris <smant...@gmail.com> wrote:
>
> vs is ok. a project templates for f# library in core does not exist

There is not an explicit “.NET Core F# Library” project type, but there is an equivalent:

Templates ->
Visual F# ->
Portable Library …bla bla… Profile 259

This comes from:

https://oren.codes/2015/07/29/targeting-net-core/

Presumably the naming will be clearer in VS.next.

Sotirios Mantziaris

unread,
Jun 16, 2016, 6:01:42 AM6/16/16
to F# Discussions
You are correct. This is exactly the project i am working on. Learn a F# and solve the projects problem.
If i did not have a goal your approach would be perfect. thanks

Dave Thomas

unread,
Jun 16, 2016, 1:23:58 PM6/16/16
to F# Discussions
One thing that would be interesting is a full "mono-less" dotnet core installation with editor support on osx/linux.

Has anyone put this together yet?

Warren Young

unread,
Jun 16, 2016, 2:49:36 PM6/16/16
to fsharp-o...@googlegroups.com
On Jun 16, 2016, at 11:23 AM, Dave Thomas <kukulca...@gmail.com> wrote:
>
> One thing that would be interesting is a full "mono-less" dotnet core installation with editor support on osx/linux.
>
> Has anyone put this together yet?

Other than calling “dotnet build” when you invoke the editor’s “make” command, what else would you need?

Until you get that, wrapping dotnet in a Makefile would be easy enough.

Dave Thomas

unread,
Jun 16, 2016, 3:03:34 PM6/16/16
to fsharp-o...@googlegroups.com
What I mean is using vscode or Atom etc without mono having to be installed for anything to work in the editor. Mono-less
> --
> --
> To post, send email to fsharp-o...@googlegroups.com
> To unsubscribe, send email to
> fsharp-opensou...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/fsharp-opensource
> ---
> You received this message because you are subscribed to a topic in the Google Groups "F# Discussions" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/fsharp-opensource/cmTOrLoZUx4/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to fsharp-opensou...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Artem Koshelev

unread,
Jun 16, 2016, 3:05:13 PM6/16/16
to fsharp-o...@googlegroups.com
At least FCS to be able to run on corefx, not mono

--
--
To post, send email to fsharp-o...@googlegroups.com
To unsubscribe, send email to
fsharp-opensou...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/fsharp-opensource
---
You received this message because you are subscribed to the Google Groups "F# Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fsharp-opensou...@googlegroups.com.

Sotirios Mantziaris

unread,
Jun 17, 2016, 6:35:48 AM6/17/16
to F# Discussions


On Wednesday, June 15, 2016 at 4:57:31 PM UTC+3, Warren Young wrote:
Reply all
Reply to author
Forward
0 new messages