The new BizTalk 2006 samples are really GREAT.
There is lots of stuff in it really worth a look. One of the things i have been needing for a while was a Streaming ZIP component.
And I know with the components available out there it was possible to compress a stream. But it was not really possible to do that in a streaming fashion.
But not anymore, Visual studio 2005 has it's own compression classes (I gues this is new) and one of them happens to be a CompressionStream. You can use this with ease in a pipeline component, to pass on the stream (but now compressed)
Could be really usefull in some situations.....
The sample is located at : C:\Program Files\Microsoft BizTalk Server 2006\SDK\Scenarios\PM in your BizTalk installation.
using System.IO.Compression;
using System.Collections.Generic;
/// <summary>
/// Implements a wrapper for System.IO.Stream class. In BizTalk server we always read from
/// streams. GZipStream compresses data while writing. So we have encapsulated the incoming
/// stream and GZipStream in our stream implmentation. We are providing compression while stream
/// is being read.
/// </summary>
/// <remarks>
/// CompressionStream derives from System.IO.Stream class to
/// enable streaming processing of messages while compressing.
/// </remarks>
internal class CompressionStream : System.IO.Stream
{
private Boolean _bStarted; //finished reading incoming stream
private Stream _incomingStm; //Incoming stream that needs to be compressed
private GZipStream _compressStm; //stream to compress data