BclExtras Library

I published a .Net utility library on Code Gallery today called BclExtras.  It’s a set of classes meant to be used in addition to the standard .Net base class libraries (BCL).  The main focuses of the library are functional programming, multi-threading, LINQ extensions, unit testing and API’s designed to support type inference.

This project evolved from various classes and constructs I was using in personal projects.  For the last year or so I’ve kept as a separate tested library.  It started out with a lot of multi-threaded code constructs but lately is leaning to a lot of functional style API’s and collections. 

The library includes source and binaries for .Net 2.0 and .Net 3.5.  The .Net 2.0 version of the library includes many constructs added in 3.5 that don’t rely on any 2.0SP1 CLR features.  Examples are Func<T>, Action<T>, the Extension attribute and a subset of the LINQ Enumerable class.  It allows for most LINQ expressions in a 2.0 targeted application. These types are removed in the 3.5 version to avoid conflicts with types in System.Core. 

I’ve previously released this library under the name RantPack.  It originally started out as personal utility library of mine and hence ended up with the somewhat obscure name.  But, besides to me, RantPack doesn’t really convey a useful meaning.  So I decided to give it a more meaningful name for the general population. 

Comments (2)

  1. Tod says:

    Please consider extending the BCL extras to handle more image, audio and video formats by wrapping the win32 api calls.

    For example, there is no .NET BCL call to open a wave file and get information (sample rate, number samples, duration, bit rate, etc) about it.

    Image file handling is similarly cumbersome since there apparently is no documented set of image codec parameters in .NET.  Try coding and finding MSDN help pages for this SHOULD BE SIMPLE task:

    Open two color bitmap file, save jpeg file as a group 3 tiff file.

    Open two color bitmap file A, open two color bitmap file B, save both files into a 2 page TIFF file using group iV compression.