2008-09-06 2 views
20

Diese kostenlose Bibliothek stammt von der IT University of Copenhagen.Würden Sie basierend auf Ihrer Erfahrung die Verwendung der "C5 Generic Collection Library für C# und CLI" empfehlen?

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

Es gibt ein Video mit einem der Autoren auf Channel 9. ich zu lernen, wie ich versuche, diese Sammlungen zu verwenden, und ich frage mich, ob jemand mehr Erfahrungen hat oder was sind Ihre Gedanken zu dieser speziellen Kollektion Bibliothek für .NET. Magst du die Art und Weise, wie sie entworfen sind, magst du ihre Leistung und was waren deine größten Probleme mit ihnen?

+0

Siehe auch http://stackoverflow.com/questions/12699252/small-sized-collections-from-c5-generic-collection-library-are-comparativ-ver – nawfal

Antwort

17

ich es in der Vergangenheit verwendet haben, und es gibt ein paar Notizen, die ich machen muss:

  1. Die Bibliothek ist sehr gut, sehr schnell und sehr nützlich. Es hat viele sehr schöne Datenstrukturen, von denen ich einige nicht kannte, bevor ich anfing, diese Bibliothek zu benutzen.
  2. Es ist Open-Source! Dies ist ein großer Vorteil.
  3. Manchmal haben Sie nicht genau das, was Sie wollen. Soweit meine Erfahrung gezeigt hat, entschieden sich die Autoren der Bibliothek, mit einer sehr intoleranten Haltung zu gehen und Ausnahmen von allem zu machen. Dies veranlasste mich, ein paar fehlertolerante Methoden hinzuzufügen.

Alles in allem eine sehr schöne Bibliothek mit einigen fortschrittlichen Datenstrukturen. Leider fehlt es an Unterstützung dafür, wie Sie aus der Tatsache entnehmen können, dass neue Versionen (Bugfixes, etc.) irgendwo zwischen 6 Monaten und einem Jahr liegen.

Hinweis: Beginnend mit Mono 2.0 ist C5 bundled as a 3rd party API, die ich aus dem Mono-Team eine wunderbare Show des Glaubens an das Produkt zu sein glauben.

+0

wenn die Bibliothek robust genug ist mit selektiven Funktionen (ohne Bündel anderer Dinge). Es ist normal, dass Releases nicht häufig vorkommen. – Hiep

1

Zusätzlich zu diesen Punkten omer van Kloeten.

Die Open-Source-Lizenz ist MIT (vergleichbar mit der BSD-Lizenz). Dies bedeutet, dass Sie die Änderungen nicht öffnen müssen, wenn Sie Änderungen an der Bibliothek vornehmen müssen. (Dies könnte bei einigen Unternehmen ein Problem sein). Bei GPL-Lizenzen kann dies ein Problem sein.

+0

Der read-me-Status der Bibliothek: "* C5 wird unter einer BSD-ähnlichen Lizenz veröffentlicht *". – Virtlink

6

Ich benutze die C5-Bibliothek seit einiger Zeit und mit viel Erfolg. Ich finde, dass C5 einen großen Vorteil bei der Programmierung bietet. In System.Collections.Generic bietet die Schnittstelle IList beispielsweise nicht die gesamte Funktionalität der Implementierungen ArrayList und LinkedList. Umgekehrt können Sie in C5 auf alle Funktionen der ArrayList und LinkedList zugreifen, indem Sie einfach eine C5.IList halten.

Außerdem haben die ursprünglichen Autoren viel Sorgfalt darauf verwendet, die asymptotische Geschwindigkeit vieler kritischer Operationen zu dokumentieren, z. B. Anzahl der Sammlungen, Inhalt und Indexierung. Die Bibliothek verwendet diese Eigenschaften intern, wenn Operationen zwischen Sammlungen ausgeführt werden, um zu bestimmen, welche Sammlung als "Akteur" schneller wäre.

Auch wenn das C5-Dokumentationsbuch seit einiger Zeit nicht mehr aktualisiert wurde, ist es eine erstaunliche Ressource, die eine übersichtliche Dokumentation der Bibliothek bietet.

Verwandte Themen