I’m supervising a client to pick a platform for a porting an old app to .NET platform. There are lots of graphs and schemas used in the app today; although only static bitmaps with direct drawing using x/y coords. I want access to all nodes and edges programmatically. I also want to store a graph config in an xml or similar to more easily adapt to changes in the graph model.
GoDiagram is more mature than GoXam in most respects, but there are a
number of non-platform-dependent features that only GoXam has. So GoXam is not a proper subset of GoDiagram.
Their designs and implementations are quite different, although there were many significant pieces of code that were ported from GoDiagram to GoXam. GoDiagram tends to require more programming than GoXam, but for that reason it also tends to have more flexibility.
So GoDiagram is more stable than GoXam. But I believe most programmers think they are more productive in WPF and XAML than in WinForms and code. And the resulting applications look nicer and feel smoother.
Conversely, XAML/data-binding/templates/styling is distinctly slower at run-time than the GoObjects we defined in GoDiagram. If you expect to have many thousands of nodes or more in your diagrams, you should use GoDiagram.
Thank you for an informative reply!
GoDiagram for ASP.NET (a.k.a. GoWeb) is a thin-client solution where almost all of the work is done on the server. It’s hard or impossible to implement very interactive diagramming features, but almost all standard gestures produce the expected results, including drag-and-drop both within a Diagram as well as from a Palette to a Diagram.
Yes, we have tried to implement the same features on all browsers, and there are some variations that we could not avoid. But I think you don’t need to worry about it unless you try to do a lot of JavaScript programming on the client. In which case using a rich-client solution such as Silverlight might be best after all.