What is NCommet?

NCommet is a framework that manages ordered trees and directed graphs of attributed items that may contain custom objects as their content.
Let's decipher the definition of NCommet and outline its potential:
  • Items: The basic element in NCommet. Items form trees and graphs. Items hold content.
  • Trees: Each item belongs to a parent item or to no item at all.
  • Ordered trees: The item's order among its siblings is important.
  • Directed graphs: Items may be related to other items forming directed graphs.
  • Content: A user defined POCO that is associated with an item.

However, NCommet is much more than just another graph library. With an inclination towards content management systems and utilizing a modular approach, it supports storing everything to a database, validation rules enforcement on core operations, authorization, content based searching and sorting. All you'll ever have to do is worry about your application's business model. All the plumbing is ready for you.

What motivated NCommet?

NCommet is a component that can be used from applications (or application frameworks) as a core for the management of their entities. Types of applications:
  • Content Management systems and applications.
  • Customer Relationship Management systems and applications.
  • Enterprise Resource Planning systems and applications.
NCommet’s development team, based on the analysis and design of many small and medium scale applications of the above types, observed that their core functionality is based on the management of trees and graphs, consisting of the applications entities. For instance:
  • Sites, Pages, Modules, Documents, etc in Content Management systems.
  • Customers, Projects, Events, Reports, Handlers, etc in Customer Relationship Management systems
  • Resources, Organizational Units, Persons, etc in Enterprise Resource Planning systems
The nodes of the Trees/Graphs have rich content, which need to be manipulated in numerous ways, in order to meet the requirements posed to the entities of the final applications/frameworks. For instance:
  • Build a Tree/Graph (inserting/deleting/moving/copying nodes) enforcing rules, which depend on the nodes content.
  • Select nodes, based on their content.
  • Sort nodes, based on their content
  • Find paths, based on the content of a Tree/Graph nodes
  • Create sub-Trees/sub-Graphs based on the content of the nodes of a master Tree/Graph.
The functionality that NCommet offers for the management of Trees/Graphs goes beyond the functionality provided by standard Tree/Graph management systems, because the focus of NCommet is on the (encapsulated) content of the their nodes, called Items by NCommet. The nodes (items) correspond to the real-world entities of the final applications.

Learn about NCommet

  • NCommet Overview. Learn about ordered typed trees and directed graphs. What is an item? What is a content? Is really every user class supported? See all item operations.
  • Event Support. Learn about NCommet's event system.
  • A modular approach to functionality: Interfaces (aka agents). Persistence, authorization, typed tree validation, content based sorting and searching are all features that are cleanly moduled in separate interfaces with pluggable implementations.
  • Extending NCommet. NCommet supports custom modules to add extra functionality.

Use NCommet

Modules Documentation

Last edited May 5, 2008 at 8:41 AM by NikolaosGeorgiou, version 37