2008-09-06 4 views
20

Esta biblioteca de colecciones gratuitas proviene de IT University of Copenhagen.¿Recomendaría utilizar "La Biblioteca de colecciones genéricas de C5 para C# y CLI" según su experiencia con ella?

http://www.itu.dk/research/c5/

hay un video con uno de los autores en Canal 9. estoy tratando de aprender a utilizar estas colecciones y me preguntaba si alguien tiene más experiencias o cuáles son sus pensamientos sobre esta colección específica biblioteca para .NET. ¿Te gusta la forma en que están diseñados, te gusta su rendimiento y cuáles fueron tus principales problemas con ellos?

+0

Vea también esto http://stackoverflow.com/questions/12699252/small-sized-collections-from-c5-generic-collection-library-are-comparatively-ver – nawfal

Respuesta

17

lo he usado en el pasado y hay un par de notas que debo hacer:

  1. La biblioteca es muy bueno, muy rápido y muy útil. Tiene muchas estructuras de datos muy bonitas, algunas de las cuales no conocía antes de comenzar a usar esta biblioteca.
  2. ¡Es de código abierto! Este es un gran beneficio.
  3. A veces no tienes exactamente lo que quieres. Por lo que mi experiencia demostró, los autores de la biblioteca decidieron adoptar una actitud muy intolerante, arrojando excepciones sobre todo. Esto me llevó a agregar algunos métodos tolerantes a fallas.

En conjunto, una biblioteca muy agradable con algunas estructuras de datos avanzadas. Desafortunadamente, el soporte es muy escaso, como se puede ver en el hecho de que los nuevos lanzamientos (correcciones de errores, etc.) varían de 6 meses a un año.

Nota: Comenzando con Mono 2.0, C5 es bundled as a 3rd party API, lo cual creo que es un maravilloso espectáculo de fe en el producto del equipo Mono.

+0

si la biblioteca es suficientemente robusta con funcionalidad selectiva (sin paquete de otras cosas). Es normal que las versiones no sean frecuentes – Hiep

1

Además de eso, los puntos de omer van kloeten.

La licencia de código abierto es MIT (comparable a la licencia BSD) esto significa que si necesita realizar cambios en la biblioteca, no tiene que abrir los cambios. (Esto podría ser un problema con algunas empresas). Para las licencias de tipo GPL esto puede ser un problema.

+0

Los estados de lectura de la biblioteca dicen: "* C5 se lanza bajo una licencia de estilo BSD *". – Virtlink

6

He estado usando la biblioteca C5 desde hace un tiempo y con mucho éxito. Encuentro que C5 ofrece un gran beneficio en la programación para la interfaz. Por ejemplo, en System.Collections.Generic, la interfaz IList no ofrece todas las funcionalidades de las implementaciones ArrayList y LinkedList. Por el contrario, en C5, puede acceder a todas las funciones de ArrayList y LinkedList simplemente con un C5.IList.

Además, los autores originales tuvieron mucho cuidado de documentar la velocidad asintótica de muchas operaciones críticas, como el recuento de la colección, el contenido y la indexación. La biblioteca utiliza internamente estas propiedades al realizar operaciones entre colecciones para determinar qué colección sería más rápida como el "actor".

Además, aunque no se actualiza en un tiempo, el libro de documentación C5 es un recurso increíble que proporciona documentación clara sobre la biblioteca.

Cuestiones relacionadas