views:

208

answers:

4

I want to write a GUI seating application that allows users to draw and annotate simple "maps" of seating areas.

The end result would probably look something a little like Visio, but specifically for manipulating my "seating" data model rather than producing files.

In Java-land, there's the Graphical Editing Framework (GEF) -- is there anything like this in the .NET space? Should I just use System.Drawing.Drawing2D primitives and handle it all myself?

+3  A: 

Here is product from Nevron. It is paid but doing it all yourself will take lot of time and effort.

Open Diagram and EasyDiagram.net are available at Codeplex. Be sure to download and look into their code.

TheVillageIdiot
+1  A: 

There is Netron Library for diagramming. It is open source and uses GDI+.

idursun
A: 

Check out our MetaDraw component - www.MetaDraw.com MetaDraw is designed to make applications like this easy. MetaDraw will support a background image and an annotation layer You can put users into a variety of editing modes - Lines, Curves, Text, Shapes, etc. Every drawn element is distinct - just like in Visio, so you can allow users to select objects and move them around or resize them. Every object can have multiple hidden tags ( like seat numbers or database record pointers ). You can recognize which objects users select ( for instance take some action when user clicks seat 22 ) . You can dynamically modify propertie by code - such as searching for seat 22 and changing it's fill color. Of course you can also scroll, zoom, print, save to a variety of formats and more.

A: 

You might consider using the DSL Toolkit from the Visual Studio SDK. It allows you to create a graphical DSL designer by first creating a domain model, and then creating the graphical notation that will allow users to create or edit instances of that model.

You may very well be able to create a graphical notation that looks like a seating area. This wuold allow your users to not only "diagram", but to produce a file containing a filled-in domain model of what was diagrammed.

John Saunders