GithubHelp home page GithubHelp logo

nshape's Introduction

NShape Logo

.NET Diagramming Framework for Industrial Applications

NShape is an Open Source diagram designing framework for .NET WinForms. Software developers use NShape to integrate diagramming capabilities into their applications. Using NShape, applications let users view, annotate, modify and create diagrams like flow charts, wiring schemes or project charts.

  • NShape is targeted towards large industrial applications, which differentiates it from most other diagramming frameworks.
  • NShape offers all the required basic functionality like glue points, aggregation, undo/redo, zooming, layers and grouping.
  • NShape is powerful and scalable to work also with large diagrams of many thousand shapes.
  • NShape is template based to enable the user to manage large diagram sets. Modification of templated properties are immediately reflected in all shapes instantiated from this template.
  • NShape is style-based, so you can change the look of all diagrams in a project consistently with only a few mouse clicks.
  • NShape provides a repository interface to integrate it in your applications persistency concept. A SQL Server and an XML implementation are already contained in the package.
  • NShape comes with a built-in permission management to control the actions the user may perform.
  • NShape's WinForms controls all implement the Controller-Presenter pattern to allow for perfect integration into your application's user interface.
  • NShape promotes a model-view architecture to clearly separate the applications model from the presentation functionality provided by NShape.
  • NShape allows for binding shape properties to model properties, which updates the user interface immediately when the corresponding model data changes.

NShape was written in pure C#. For maximum backward compatibility, it is based on .NET Framework 2.0 but can also be combined with all newer versions. Please send an e-mail to [email protected] for all questions regarding NShape.

License

NShape is published under a dual license and you can choose which license is best suited for your project.

  • The GNU General Public License version 2 (GPLv2) basically allows you to use and modify the framework in any free program, even if it is used in businesses. Please read the exact license terms delivered in License.rtf together with NShape, if you want to choose this license.

  • If your program is not free, that means if you do not publish its source code or if others are not allowed to distribute it, you must buy a license from dataweb in order to use NShape for this program. Please turn to [email protected] for more information on licensing.

Download

As the main target platform is Windows, we recommend to download the setup installer which contains all you need:

  • Source Code
  • Sample Programs
  • Documentation
  • Compiled Assemblies (AnyCPU)

Documentation

The documentation is available here. It is also included in the setup installer as *.chm file (compiled HTML).

Credits

NShape was developed by dataweb GmbH and initially realeased in 2011.

nshape's People

Contributors

kholzinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nshape's Issues

feature: svg export

Hi,

thanks for NShape. Using it a lot to draw flow charts.

In my opinion, a export to svg would be a perfect addition. Any chance of implementing it?

Documentation seriously out of date

I am trying to understand how to use NShape but the documentation that comes with it is written for a much earlier version of Visual Studio than I have available. I am using VS 2017 and none of the instructions in your Basic tutorial map to anything I have available in VS 2017.

I have some experience with WPF and none with WinForms. If you could provide some examples using WPF and a more recent version of Visual Studio (preferably 2017) it would help greatly in deciding whether to use your product in a project we are looking at.

Events for shapes being connected (ignoring line shape)

I'm looking for a way to be informed when two shapes are connected.

I can see there are two connection events being fired (origin shape glue point -> line shape followed by line shape -> target shape connection point).

Does anything exist that combines these? Ideally I would like an event that returns the origin shape and target shape.

Any help appreciated.

Polyline issue when it comes back on same Y axis

i have set of XY

  1. 100,300
  2. 400,300
  3. 130,300
  4. 130,350

when i draw this polyline, it is not drawing correctly.
because it starts from Point 1 and End at Point 2,
Again from Point2 its coming back on same Y-axis to Point3.
And from Point3 it draws a vertical line.
at the end it will be like and L shape line. But i am getting a curved line.

in my case from Point 3 to Point4 it has to draw a straight line. But it is drawing from Point2 to Point4.

this is my code.

       Polyline p5 = (Polyline)project.ShapeTypes["Polyline"].CreateInstance();
        p5.X = 100;
        p5.Y = 300;
        p5.AddVertex(400, 300);
        p5.AddVertex(150, 300);
        p5.AddVertex(150, 350);

       // get the glue point id. 
        ControlPointId cp5 = p5.GetControlPointIds(ControlPointCapabilities.Glue).Last();

        // assign the glue point coordinates to the last point coordinates. 
        p5.MoveControlPointTo(cp5, 150, 350, ResizeModifiers.None);
        diagram.Shapes.Add(p5);

Please help me in this issue.

LibraryManagementDialog: invalid assembly path handling

In the project "WinFormsUI" the class "LibraryManagementDialog.cs", method "GetAssemblyFilePath()" uses a UriBuilder to return a path to a given assembly object.
However, this fails for any paths containing a hashtag in their name, e.g.:
C:\projects\c#\NShape\libs
The UriBuilder uses the # sign as fragment separator, resulting in above example path to become:
C:\projects\c

Easy fix in the above method would be to just return assembly.Location as that contains the full path (tested with VS2019).
I can't see why the UriBuilder is used at all there.

want to draw closed Polygon/path of Points.

Is there any object to draw a closed polygon or path.

Lets say i have different XY coordinates.
i have to connect all these coordinates and fill with some color.

In normal GDI+ we can achieve this with GraphicsPath.

How to do with NShape Tool.
Please help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.