With a couple of people showing more interest in BlamLib, I'll probably take some time in the coming weeks to add some wiki
entries for it.
But in the meantime I'll answer questions here. Okay, so BlamLib is part of the "OpenSauce" codebase, but is for the most part .NET-based. If you want to get technical, the Halo game and editor extensions (basically, everything that falls under this folder
in the code) is the "Yelo" part of the codebase. "Yelo" is the internal name for actual game (Halo1_CE, Halo2_Xbox) and editor (the official HEKs) extensions.
For OpenSauce in general, this wiki entry
about using the codebase will probably help with getting started.
Now, there is a C++ part of the BlamLib libraries, found in the LowLevel library
. Anything that would require "unsafe" code blocks in C# or talking directly to native\Win32 APIs is done in here. However, that's where the C++ code stops. From here, it's all .NET (3.5, but the code should be able to target v2.0 of .NET as well). BlamLib only has two major dependencies, C++ boost (for LowLevel) and SlimDX, which are described in detail in the "using the code" wiki I linked to earlier. Everything else is either already provided by the .NET framework or included as part of the BlamLib codebase.
Not exactly sure what you're asking as far as the MS dependencies. If you're wanting to develop with Mono.NET instead you're going to have some hurdles, at the very least because Mono hasn't finalized a C++/cli compiler (last I checked), so you won't be able to use the Mono SDK to build LowLevel. However, VS2008 Express's C++ IDE should handle it just fine if you need a free alternative.
Now, as far as "using" BlamLib goes...you would normally reference it just like you would reference System.Xml or any other .NET assembly. This is what we do with OpenSauceIDE, which is where we do most of our GUI frontend crap. There's also the unmaintained BlamLib.Forms library. At one point I was rewriting the tag editor frontend for that TagInterface system but it was just going to take too much time and there were, and still are, other lower hanging fruit that need to be picked, so to speak. Then there's BlamLib.Test. This is a short of half-assed unit test library. IIRC, VS2008 Express doesn't have support for running VS unit tests. Hindsight, I should have used a free unit testing framework...but it's too late to change. Anyway, with the Test library I have code that tests the various general and game-specific components of the BlamLib library. From .map and .tag processing, to resource extraction and converting (eg, taking Halo1 and Halo2 render models and pooping out COLLADA files), there's a lot there.
I can talk about the individual parts of BlamLib later. For now, I'll leave you to digest all of that and formulate any more questions you may have!