Hello, I wanted to add an update to Doug Service's proposal on transitioning the .NET 4.5 projects to .NET Core. This is a two fold process in that we transition to new project files as well as adding .NET Core as an additional target.
>From Doug's original email (search for "Transition from .NET 4.5 to .NET Core 1.1.."), here are the goals with a couple modifications. Our goals are: 1. Have the new projects well laid out and highly usable since they are the future. 2. Disturb the current projects as little as possible to prevent regressions. 3. Target .NET Core 2.0/.NET Standard 2.0 and .NET 4.5. 4. Create new project files that utilize the new csproj file format that is supported with the .NET Core tool set and VS 2017.This format supports multiple targets. 5. Remove the old projects as a series of deletions once we have parity with the new project files. For context on .NET Core, I have added information towards the end of the email. For the proposal: 1. Create a new project file for each C# library or executable. The new project file will live side-by-side with the existing project file. The project file will be in the new csproj format and will have DotNet appended to the title (Org.Apache.REEF.Bridge.csproj would become Org.Apache.REEF.Bridge.DotNet.csproj). 2. All libraries will target .NET 4.5 and .NET Standard 2.0 where possible. For projects that have non-.NET Core dependencies or portability issues, we still create a new csproj but will only target .NET 4.5 until the issues are resolved. 3. All executables will target .NET 4.5 and .NET Core 2.0, as well as Windows x64 and Linux x64. .NET currently targets specific flavors of Linux (ubuntu, Redhat), that we may have to reflect. 4. Any files that need to be excluded from the build (for example files related to the old project files) can be filtered in the new csproj project file. 5. Once we have parity with .NET 4.5 on the new projects we can remove the old projects. There maybe other factors here to consider as well, but overall its in our control when to do the migration. The plan is to do this one project at a time, Ill start with the Utilities project and check that in as an example of how the other projects will fall inline. Any feedback or thoughts are definitely appreciated. Thank you! For context on .NET: Explanation of .NET Standard and .NET Standard 2.0 and how its different from the Portable Class Library (PCL): https://www.youtube.com/playlist?list=PLRAdsfhKI4OWx321A_pr-7HhRNk7wOLLY .NET Standard FAQ: https://github.com/dotnet/standard/blob/master/docs/faq.md .NET Core tools on github. Note, that it defaults to a different branch from master, so be sure to change to master to get the latest bits. This link references master: https://github.com/dotnet/cli/tree/master
