You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by Scott Inglis <ms...@gmail.com> on 2017/03/01 07:04:39 UTC

Transition Proposal of .NET 4.5 Projects to .NET Core (REEF-1237, REEF-1568, REEF-1578)

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

Re: Transition Proposal of .NET 4.5 Projects to .NET Core (REEF-1237, REEF-1568, REEF-1578)

Posted by Scott Inglis <ms...@gmail.com>.
Ah! Sorry sent to wrong alias, disregard.

On Tue, Feb 28, 2017 at 11:04 PM, Scott Inglis <ms...@gmail.com> wrote:

> 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
>
>
>