fsprojects / FSharp.TypeProviders.SDK

The SDK for creating F# type providers
https://fsprojects.github.io/FSharp.TypeProviders.SDK/
MIT License
298 stars 94 forks source link

.NET Standard 2.0 TPDTC #237

Closed charlesroddie closed 5 years ago

charlesroddie commented 6 years ago

Keeping track of full .Net Standard 2.0 support, as explained in the README:

Making a .NET Standard 2.0 TPDTC

It will be increasingly common to make type providers where the TPDTC is a .NET Standard 2.0 component. In the very simplest case, there will just be one happy .NET Standard 2.0 component MyTypeProvider.dll acting as both the TPDTC and TPRTC. Such a type provider will eventually be loadable into all F# tooling.

However, today, for a TPDTC to be .NET Standard 2.0, it must be loadable into host tools using .NET Framework 4.6.1 or Mono 5.x, the most common platforms for execution of F# tooling. Because .NET Framework 4.6.1 doesn't fully support .NET Standard 2.0, this can only be done if the TPDTC ships alongside some facade DLLs...

Related: https://github.com/fsprojects/SQLProvider/issues/426#issuecomment-398683933

dsyme commented 5 years ago

@charlesroddie There is now full .NET Core support, though the facade DLLs still need to be shipped if you want to ship your TPDTC as a .NET Standard component.

I've been trying to assess the exact work required to get full, seamless support for SQLProvider both when targeting .NETCore/.NETStandard and when running at compile-time with .NETCore tooling, but it's somewhat complicated because it's quite a large matrix of different database technologies supported (and even .NET Framework support is not that seamless, e.g. requiring copying around different database driver DLLs, so it's not clear how seamless we need to be to achieve parity).

I think I'll create a tracking issue in SQLProvider to discuss this, and then we can create individual issues back here when specific extra technical problems are identified.

dsyme commented 5 years ago

I've created the SQLProvider tracking issue here: https://github.com/fsprojects/SQLProvider/issues/575. Nasty matrix of possibilities.

I'll close this issue since I don't know of any specific work that needs to be done in TPSDK yet