At present, the facio projects all have a hard dependency on NLog for logging. This is generally fine for the executables (e.g., fsharplex) but is an annoyance for anyone who wants to use the libraries (e.g. Reggie, Graham) within some other projects.
Now that .NET 4.7.1 is available with .NET Standard 2.0 support, let's migrate the projects up to targeting some version(s) of netstandard and netcoreapp. Once that's done, we can switch the logging implementation over to using the relatively-new Microsoft.Extensions.Logging packages. This'll allow the library projects to use only the logging abstractions (interfaces) from the interface package, perhaps falling back to a TraceSource-based provider if an instance isn't injected by the calling application. Applications utilizing the libraries (incl. other facio projects) can specify which logger implementation to use, e.g. via their app.config.
At present, the facio projects all have a hard dependency on NLog for logging. This is generally fine for the executables (e.g., fsharplex) but is an annoyance for anyone who wants to use the libraries (e.g. Reggie, Graham) within some other projects.
Now that .NET 4.7.1 is available with .NET Standard 2.0 support, let's migrate the projects up to targeting some version(s) of
netstandardandnetcoreapp. Once that's done, we can switch the logging implementation over to using the relatively-newMicrosoft.Extensions.Loggingpackages. This'll allow the library projects to use only the logging abstractions (interfaces) from the interface package, perhaps falling back to aTraceSource-based provider if an instance isn't injected by the calling application. Applications utilizing the libraries (incl. other facio projects) can specify which logger implementation to use, e.g. via theirapp.config.