Tuesday May 3rd

Monday May 2nd

Creating Zip Archives In .Net Without An External Library

Jon Galloway offers his advice on creating your own zip library. SharpZipLib provides best free .NET compression library, but what if you can't use it due to the GPL license? I'll look at a few options, ending with my favorite - System.IO.Packaging.


I can't believe the basis for this whole article is the author's terrible understanding of the GPL. I don't write GPL software, but I've certainly incorporated both modified and unmodified GPL components in several .NET applications that I've deployed within the authoring organization (i.e., NOT for resale outside the organization). If you aren't redistributing GPL components outside your organization, you don't have to honor the GPL. It's a *distribution* license, not an EULA! If you are planning to redistribute outside your org, the GPL kicks in and you need to honor the license. About sharpziplib, he wrote:

"I'm pretty sure that the reason for this odd "sort-of-GPL" license is because some of the SharpZipLib is based on some GPL's Java code."

This claim is baseless, and serves only to intentionally FUD sharpziplib. The actual terms of the license--which he quotes and then completely contradicts--is eminently agreeable, with no need to involve the legal department. Further, he wrote:

"...most companies have policies which forbid or greatly restrict their use of GPL code, and for very good reason: GPL has been set up as an alternative to traditional commercial software licensing, and while it's possible to use GPL code in commercial software, it's something that requires legal department involvement."

What the hell is "commercial software" in the context of his ramblings? To me, commercial software is something I want to sell to other people. Dealing with GPL code in my product isn't different than any other license I might have to honor for 3rd-party components I seek to resell, all of which I WANT MY LAWYER TO LOOK AT. His solution is also laughable--the stream compression in .NET is well known to be broken for file compression. He even observes that the compressor in the BCL frequently ends up making files larger-than-original size, because it's not meant to compress files! His other alternative is "wait for .NET 3.5". Why would anyone kick this article?

Commenting on Stories is limited for now and will open up to those recommended by the community. Learn how
Loading DotNetKicks...
brought to you by the Kicks Network