Essential Diagram is an extensible, high-performance .NET diagramming framework for ASP.NET applications. It can be used for developing Microsoft Visio-like interactive graphics and diagramming applications. It stores graphical objects in a node graph and renders those objects on the screen. It supports both vector and raster graphics on the drawing surface.
Nodes are graphical objects that can be arranged in a diagram page. Nodes can be added to the diagram
page either programmatically or during run time by dragging them from a built-in symbol palette.
Node shapes can be set to any of the predefined shapes provided. You can also design these shapes using a symbol designer utility
(included with the Essential Diagram install). Nodes can be grouped together and common operations can be performed on them.
The Diagram control lets you create nodes embedded with any ASP.NET control. You can move nodes around just like any other node
and double-click them to activate the controls inside. It also provides editable text nodes and rich-text nodes.
A connection port is an object used to establish a connection between a node and a connector.
A connection port can be placed anywhere within a node or at the edge of a node. You can choose one of the predefined
symbols like arrow, circle, or diamond, or define a custom connection port. The look and feel of these connection ports is fully customizable.
Connectors are objects used to create a link between diagram nodes. Essential Diagram offers built-in support for automatic line routing and
line bridging for connectors. The line routing functionality uses a highly optimized routing strategy to automatically route orthogonal connectors
around existing diagram nodes. The line bridging feature creates a bridge for connectors to smartly cross over other connectors at points of intersection.
Bridge styles such as arc and square are also available for connectors in a diagram.
Several customizable options are provided to change the look and feel of different portions of a diagram, thus enabling the creation of professional-looking diagrams
that reflect style patterns commonly used in business. Essential Diagram provides options to fully customize the look and feel of nodes, connectors, connection ports and tooltips.
Essential Diagram comes with advanced user-interface features such as zoom, pan, and rulers to provide end users with a rich visualization experience.
The diagram surface on which all the nodes are rendered is fully customizable. The drawing area of Essential Diagram can be rendered with horizontal and vertical gridlines.
Along with that you can enable horizontal and vertical rulers to precisely indicate the coordinates of the nodes within the diagram. As you drag and move nodes, you have the option
to make the nodes snap to the grid when dropped. This greatly helps to ensure that different nodes are laid out with exactly the same margins.
A layer organizes graphical objects into groups that share a common set of default properties, and most importantly, a z-order. You can add any number of layers to a diagram and move objects between layers.
Formatting and Customization
The comprehensive set of editing tools provided by Essential Diagram allows users to work interactively with the Diagram control for diagram-building applications.
Besides the built-in tools, custom tools can be defined and added to the diagram controller to provide custom functionalities.
Essential Diagram is designed to be a high-performance, modular, easy-to-use and easy-to-customize engine.
Many of the classes and components in the library can be sub-classed, providing users the ability to extend and customize the library to meet their needs.
Essential Diagram employs a model-view-controller (MVC) design to clearly separate data, presentation, and user interaction.
Essential Diagram is integrated with the Essential Scripting Library to support diagram creation with scriptable interactivity.
This framework also provides enhanced design-time support through a rich user interface for creating and editing scripts.
The scripting feature allows end users to define behaviors for diagram entities at run time using one of the supported scripting languages.
The scripting languages currently supported are C#, Visual Basic .NET, and JScript .NET.
Essential Diagram lets users export diagrams to a variety of data formats such as bitmaps, enhanced metafiles, and SVG files.
Alternatively, with a license of Essential PDF, diagrams can be exported as PDF documents as well.
Diagrams can be directly saved as bitmaps, or rendered to an external graphics device interface to write out an enhanced metafile image.
The Diagram class contains methods for loading and saving files in both binary and SOAP formats that are supported by the .NET serialization framework.
It also supports serialization and deserialization of diagram (.edd) files and symbol palette (.edp) files.
Essential Diagram provides out-of-the-box data-binding support for all popular data sources, such as the following:
LINQ to SQL,IEnumerable and IQueryable collections,IList and IBindingList collections, andADO.NET Entity Model.
When data-bound, nodes can be positioned in a tree-like fashion by using predefined layout algorithms without specifying a coordinate location for each node.
Essential Diagram provides a layout manager that automatically arranges nodes.
Directed Tree Layout — Arranges nodes in a tree-like structure.Hierarchical Tree Layout — Arranges nodes in a tree-like structure. However, unlike the directed tree layout, the nodes in a hierarchical layout may have multiple parents.Organization Chart Layout — Arranges all the nodes in a parent-child relationship with the new organizational line connector, which connects nodes to get an organization-layout appearance.Radial Tree Layout — A specialized type of tree layout that arranges nodes in a circular layout.Symmetric Tree Layout — Arranges nodes in a symmetric fashion based on the vertical input distance, which specifies the distance between the adjacent nodes.Table Layout — Arranges nodes in a tabular structure.Custom Layout—You can provide your own layout management routines for the diagram.
Essential Diagram can be used to create a rich, Visio-like diagram builder application. This framework provides many utility controls to help you put such an application together very easily.
You can provide your end users with a symbol palette, which is a large collection of predefined nodes and connectors. It allows nodes
and line connectors to be dragged onto a diagram page, making them easier to manage. Custom symbols can also be added to the symbol palette. You can choose to hide the labels for the nodes in the palette.
An overview window provides you a concise view of your entire diagram when you are building a large diagram.
A rich set of commands in the command bar provides you numerous editing options for nodes and connectors in the diagram.
The Diagram control also features drawing tools that easily draw nodes and connectors in a diagram at run time. Tools for everything from circles to polyline connectors are available.