NGenerics - new team member

A hearty welcome to David Schmitt who joined the NGenerics Team. David’s bio : David is a Debian Admin and .Net Developer living and working in Vienna, Austria. He’s partner in a small tech company startup at His current interests with NGenerics is the implementation of the Immutable namespace. As stated in his bio, David will be working on implementing a selection of immutable data structures.

Photo by on Unsplash

NGenerics 1.4.1 Beta released

You can find it on our new project site. This build includes the following (straight from the release notes) : New Platforms NGenerics now has a Silverlight version in this release targeting Silverlight 3. New data structures Single-Valued (i.e) not KeyValuePair version of the RedBlackTree. A generic version of the priority queue that can have a key implementing IComparable, or any object with an IComparer instance. New Patterns Added the Converter pattern under NGenerics. [Read More]

NGenerics has moved

The home of NGenerics has moved to Google Code from it’s original project site on CodePlex. We’re still in the process of migrating some of the content like the downloads, but for the most part we’re up and running. If you have any issues or feature suggestions, please submit them to the Google Code project site.


NGenerics is now hosted on GitHub here.

Photo by Joey Kyber on Unsplash

NGenerics project move update

Content migration for NGenerics went well - but please note the following changes: All downloads for releases moved to the new project site. Due to Google not being willing to add the MS-PL license to Google Code, we’ve had to re-license NGenerics under the LGPL. LGPL is practically the same license but more wordy. A User Voice site is available for feature requests - please log (and vote for) any features you would like to see in NGenerics. [Read More]

NGenerics overview - the Priority Queue

Previous instalments General Data Structures HashList ObjectMatrix Trees GeneralTree and the Visitor Pattern Binary Trees and Binary Search Trees The Priority Queue data structure has the same basic behaviour and operations as the classic queue found in .NET. A queue applies a first-in, first-out (FIFO) approach to a list of objects. This data structure is typically used in message processing to process messages in order of arrival. Queue implementations tend to have the following operations available : [Read More]

NGenerics Overview - The ObjectMatrix

Previous instalments General Data Structures HashList Trees GeneralTree and the Visitor Pattern Binary Trees and Binary Search Trees Looking at tree structures will make your eyes bleed, so we’ll take a break to discuss one of the simpler data structures NGenerics offers - the ObjectMatrix. The ObjectMatrix is a representation of a 2-dimensional array of objects, like, for example, a game board : Why not use a two-dimensional array in the first place? [Read More]

Tarjan's Algorithm

Thanks to a contribution from Andre van der Merwe (blog, twitter), NGenerics now features Tarjan’s strongly connected components algorithm on it’s Graph implementation. By using Tarjan’s algorithm, we’re able to find the strongly connected components (read : cycles) in a directed graph. You can invoke it via the FindCycles method on the Graph<T> class, available from build # (30 Jun 09 13:40).

Photo by Simon Abrams on Unsplash

NGenerics Overview - Binary Trees and Binary Search Trees

Previous instalments General Data Structures HashList Trees GeneralTree and the Visitor Pattern If you haven’t read my previous post on General Trees, it might be a good idea to do so before reading further. A Binary Tree is a refined version of the General Tree that limits the number of children each node can have - two to be exact. Child nodes are thus referred to as the Left and Right child nodes. [Read More]

NGenerics overview - GeneralTree and the Visitor pattern

Previous instalments General Data Structures HashList [ Note : This post feels a little like Computer Science 101 - but I felt it necessary to discuss the basic tree concepts before we move on to some of the more specialized trees like search trees. ] The GeneralTree<T> class in NGenerics provides a way of defining tree structures in a simple, recursive way. It has a simple, recursive definition : public class GeneralTree { T nodeData; List childNodes; } Visually, we can represent it, well, as a tree : In contrast to some of the more specialized tree structures (like binary trees and search trees), the GeneralTree enforces no constraints on the structure of the tree. [Read More]

NGenerics for Silverlight

The Code Better TeamCity guys were kind enough to install the Silverlight runtime on the build server a while ago, which means that NGenerics now has an automated Silverlight build.

If you’re interested in trying out NGenerics on the Silverlight platform, you can find the assemblies under NGenerics Trunk/Artifacts.  Be sure to let us know if you find any bugs/pain points/features that can need improvement on this particular platform.

Photo by Markus Spiske on Unsplash