reef-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Inglis <msing...@gmail.com>
Subject Transition Proposal of .NET 4.5 Projects to .NET Core (REEF-1237, REEF-1568, REEF-1578)
Date Wed, 01 Mar 2017 07:08:46 GMT
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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message