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