Frans Bouma, reconocido en la comunidad por su O/RM LLBLGen Pro, ha publicado recientemente en CodePlex una biblioteca open source para .NET cubriendo una cantidad importante de algoritmos y estructuras de datos clásicas que la Base Class Library no tiene, o cuya implementación podía mejorarse.
Algunas de las estructuras y algoritmos asociados son:
- Comandos (y su administración): con soporte de undo/redo y grupos de comandos.
- Grafos: directos y no-directos, sub-grafos, clausuras transitivas y ordenamiento topológico, etc.
- Heaps
- Colas prioritizadas
- Ordenamiento
- Bolsa de Propiedades
- Implementaciones mejoradas de IEditableObject/IDataErrorInfo
- Filtro de eventos
- y otras utilidades menores
Esta biblioteca, llamada Algorithmia, se suma a las BCLExtensions, un conjunto de extension methods sobre varios tipos de la Base Class Library, para propósitos generales.
Ambos proyectos están disponibles en CodePlex, utilizando el soporte de código fuente de Mercurial y licenciados bajo BSD2.
Como Frans ya ha aclarado varias veces, no importa si a alguien le gusta más GIT que Mercurial o GitHub que CodePlex. Esas elecciones corresponden al autor, y sólo tienen importancia si uno está decidido a colaborar con el proyecto (para usarlo basta con un download plano de los fuentes), cosa que pocos hacen en la práctica, y quienes realmente quieren contribuir nunca tienen problemas en utilizar un cliente u otro de control de código.