Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

netstandard support? #106

Closed
xied75 opened this issue Apr 7, 2016 · 17 comments
Closed

netstandard support? #106

xied75 opened this issue Apr 7, 2016 · 17 comments
Assignees
Labels
enhancement Feature request or other improvements of existing functionality xplat Cross Platform, related to running SharpZipLib in non-windows environments
Milestone

Comments

@xied75
Copy link
Contributor

xied75 commented Apr 7, 2016

Dear Team,

Just trying to nuget SharpZipLib.Portable into my PCL (targeting UWP, NET46, and ASP.NET Core 1.0), then I got error msg like this:

SharpZipLib.Portable 0.86.0.3 is not compatible with DNXCore,Version=v5.0.
Some packages are not compatible with DNXCore,Version=v5.0.
SharpZipLib.Portable 0.86.0.3 is not compatible with DNXCore,Version=v5.0 (win7-x86).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x86).
SharpZipLib.Portable 0.86.0.3 is not compatible with DNXCore,Version=v5.0 (win7-x64).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x64).

Any plan to extend the support?

@McNeight
Copy link
Contributor

McNeight commented Apr 7, 2016

Dong,

The package you are using is currently a fork of SharpZipLib by @ygrenier at https://github.com/ygrenier/SharpZipLib.Portable

At the moment I am focused more on cleaning up the existing code and bug fixing, rather than adding new features. Hopefully soon, we can take a look at incorporating those features into our project.

-Neil

@xied75
Copy link
Contributor Author

xied75 commented Apr 7, 2016

Thanks for clarify that. And I'll take the chance here to edit a bit my request: once you finish the spring clean, it will be great to able to support coreclr/corefx (or the new name they call it: netstandard). :)

@McNeight McNeight added the enhancement Feature request or other improvements of existing functionality label Apr 15, 2016
@McNeight McNeight self-assigned this Apr 15, 2016
@McNeight McNeight added the xplat Cross Platform, related to running SharpZipLib in non-windows environments label Apr 15, 2016
@tdctaz
Copy link

tdctaz commented Aug 2, 2016

I too would like to add a vote for netstandard support, are there any plans for adding support for it?

@justdmitry
Copy link

+1 for netstandard support.

@xied75 rename issue please (there is no more dnx, dotnet and netstandard are released)

@xied75 xied75 changed the title DNXCore support? netstandard support? Aug 8, 2016
@xied75
Copy link
Contributor Author

xied75 commented Aug 8, 2016

Shall I propose a mini hackathon to get this going? I'm sure Neil is pretty much occupied by his work, if nobody volunteers then this would never happen.

@McNeight
Copy link
Contributor

@xied75
Would it make more sense to integrate the SharpZipLib.Portable fork into the main repository first, or would you rather start from the main repository first?

-Neil

@McNeight McNeight modified the milestone: post 1.0 Aug 14, 2016
@xied75
Copy link
Contributor Author

xied75 commented Aug 15, 2016

@McNeight Thanks for asking.

From my understanding, Yan Grenier @ygrenier mentioned in his fork Readme, that he did "remove" a bunch of things from base when he did his port. My feeling is that to merge these back wouldn't be a simple task and also it serves no purpose anymore, since his port is not netstandard ready as well. Unless we are thinking about very rare legacy requirements, having the main stream to retro support the port seems unnecessary. (I could be wrong)

Now talking about the main repo and netstandard, what I gathered is that Microsoft think given native zlib is everywhere where dotnet will be, the related classes in corefx will only wrap around calling zlib. They also mentioned in the past they have a pure managed implementation to fall back on where zlib is absent, I'm not sure where that part of source code is.

So in my opinion SharpZipLib can target to be the best performing Pure Managed Implementation, without touching native zlib at all, and leave that to corefx.

Going forward I would like to see:
1, we can remove anything Java (legacy code, idiom, weird stuff)
2, we can continue to improve performance
3, we can utilize new features in dotnet (e.g. System.Buffers to avoid alloc very often, etc.)

@Bond-009
Copy link

+1 netstandard support would be fantastic

@shanestevens
Copy link

+1 dotnet core

@ViktorHofer
Copy link
Contributor

The .NET Core team is currently looking into popular repositories which have potential for netstandard targeting. I forked the repository and migrated to netstandard1.3. There were a few lines of code that are wrapped around and #if net45 statement but I didn't really saw its usage anywhere? The migration went flawlessly, did I miss something or is the entire code already netstandard ready?

If support for net45 is critical than multi targeting would be an option. In that case assemblies for netstandard1.3 and net45 would be created. If support for net45 isn't that necessary than I would recommend to only target netstandard1.3, as net46 and above is supported in that case. More on that here: https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

The test library is currently written in net45 and could be converted to net46 or to netcore2.0. The advantage of netcore2.0 would be, that the entire solution could be cross plattform. netcore1.1 isn't possible as BinarySerializer isn't supported < netcore2.0. The only problem with that is that nunit CURRENTLY does not support netcore. See here: nunit/dotnet-test-nunit#91.

@McNeight how should be proceed? You might want to contact me per mail, so that we can fasten up communication

@xied75
Copy link
Contributor Author

xied75 commented Mar 30, 2017

@ViktorHofer When you say

looking into popular repositories which have potential for netstandard targeting

you meant help to get the repo work under netstandard is that right?

Something else you might also be able to offer help on? This repo is in the middle of switching license to MIT, #103, from what I see there, it's not complete 100%, suppose those people who contributed 1 line never turn up, how should this proceed legal-wise? Surely one line of code shouldn't tie the whole thing to GPL forever? You probably have access to legal people on this which we all lack.

nunit people is still in the middle to get runner work for netstandard, with all duly respect, I think switching to xunit is much easier than workaround, I can try to PR on this if you guys agree.

@McNeight here too with all respect, with some borrowed courage, I felt that this project probably can set up a Tech committee and involve more people with merge rights (as the Apache model goes, e.g. jgit, or maven), so that the wheel can turn a bit faster?

@ViktorHofer
Copy link
Contributor

@xied75 regarding nunit: I would have also made the suggestion switching from nunit to xunit as it is used by huge repositories like corefx and coreclr but as their are a LOT tests written in nunit I thought the migration would take to much effort. Still if you would take the time for that I would definitely be happy. But who am I to decide? ;)

regarding your licensing concerns, maybe @danmosemsft can help?

@christophwille
Copy link
Member

@xied75 design by committee sounds like a bad idea. But more maintainers: yes. That's what we definitely want once the redesign is done (relicensing I think is complete @McNeight).

@jiabiao
Copy link

jiabiao commented Jun 3, 2017

.NET Core 2.0 added the support for referencing .NET Framework libraries and NuGet packages.
I try to reference v0.86 to .netcoreapp2.0 project. Creating and unpacking zip file works well on Linux.

It just needs to add a line of code

ZipConstants.DefaultCodePage = Encoding.UTF8.CodePage;

@christophwille
Copy link
Member

netstandard1.3 is now officially supported

@ghost
Copy link

ghost commented Jan 12, 2020

What version of the library do we need to run on .NET Core 3?

thanks - dave

@Numpsy
Copy link
Contributor

Numpsy commented Jan 13, 2020

The .NET Standard 2.0 build should work, so 1.0 or newer I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature request or other improvements of existing functionality xplat Cross Platform, related to running SharpZipLib in non-windows environments
Projects
None yet
Development

No branches or pull requests

10 participants