sillsdev/icu-dotnet

Migrate code to .NET Core

conniey opened this issue · 6 comments

A good enhancement would be if this code compiled on .NET Core so the library would run cross-platform.

I've already done work to migrate the code to run on .NETStandard1.5 but I wanted your feedback and criteria if your team wanted this feature in your repository

Hi Connie,

Your enhancements sound useful. I am trying to track down who (if anyone)
on our team is currently responsible for this project to get a definite
response for you.

Thanks for your interest in contributing!

John Thomson

On Thu, May 26, 2016 at 1:32 PM, Connie Yau notifications@github.com
wrote:

A good enhancement would be if this code compiled on .NET Core
https://dotnet.github.io/ so the library would run cross-platform.

I've already done work to migrate the code to run on .NETStandard1.3
https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md
but I wanted your feedback and criteria if your team wanted this feature in
your repository


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#8

We're already running icu-dotnet cross-platform (with mono 3.x). Since a lot of our applications make use of Winforms I don't think we can currently switch to .NET Core for the master branch, but I'd be more than happy to see it on a separate branch. That way projects that don't require Winforms and don't rely on Mono 3.x could start using it. Would be great.

Why does our use of Winforms prevent moving to .NET core? I don't know
exactly what that is, but I would not have expected much if any UI in
icu.net.

JohnT

On Mon, May 30, 2016 at 5:34 AM, Eberhard Beilharz <notifications@github.com

wrote:

We're already running icu-dotnet cross-platform (with mono 3.x). Since a
lot of our applications make use of Winforms I don't think we can currently
switch to .NET Core for the master branch, but I'd be more than happy to
see it on a separate branch. That way projects that don't require Winforms
and don't rely on Mono 3.x could start using it. Would be great.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#8 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/ABTCiStdsgylvKULPGbSgUwj3FKbq7PNks5qGr1DgaJpZM4In0y5
.

@JohnThomson Yes, icu.net doesn't have any UI nor depend on System.Windows.Forms (I think 😄 ).

.NET Core (CoreCLR) is a subset of the .NET framework that Microsoft released under the MIT license. Among other things it is missing Winforms. And it has additional APIs that are not found in the regular .NET framework.

I haven't played around with it, so I don't know if it is possible to compile against .NET Core but then run with .NET 4.5 or Mono 3.x or if that causes problems. If that works then I don't see a problem, but I don't want to have to install both Mono 3.x and .NET Core for an application to run on Linux.

I don't know if it is possible to compile against .NET Core but then run with .NET 4.5 or Mono 3.x or if that causes problems.

According to .NETStandard to Platform mapping, if you target your library for .NETStandard, Version=1.1, it will run on .NET Framework v4.5. Mono runs on the full .NET Framework, it shouldn't be an issue.

I don't want to have to install both Mono 3.x and .NET Core for an application to run on Linux.

You can run binaries compiled against .NET Core on the platform natively. It's only if you want to run your application on the full .NET Framework that you would want to install Mono.

A benefit would be that you could ship a nuget package containing different binaries for each .NET platform they target. For example, if a nuget package supported:

lib\net40
lib\netstandard1.5

If a consumer created a project that targeted .NET Framework 4.0 - 4.5.2, they'd get those binaries in lib\net40. And any future platforms would get the libraries in netstandard1.5.

Fixed/implemented in versions >= 2.3 (beta.77)