Subclassing Node and Link instead of templates?

I’ve encountered the same issue as described in the topics Performance and How to add a collection of nodes?.

I’m assigning a model that has a large number of simple nodes (~160) and links (~600) at startup, and this process takes a very long time (30-40 seconds in debug mode, 10 seconds in release mode).

In MindFusion DiagramLite, which I’m also evaluating, this process is much faster, apparently because I’m able to define subclasses of the basic Link and Node classes and provide the content XAML for them, rather than defining DataTemplates that have to be expanded by the runtime.

Is there a recommended way to do the same thing in GoSilverlight, i.e. have the PartManager create parts by instantiating user-defined subclasses instead of expanding templates?

EDIT: Should I just override PartManager.MakeNodeForData and PartManager.MakeLinkForData?

If your links have Routing=“AvoidsNodes” or if your links have Curve=“JumpOver”, loading diagrams is a lot faster in version 1.2.

Yes, you could override PartManager methods for creating Nodes and Links, but I haven’t tried it to see if it actually saves much time.

Has version 1.2 been posted yet? It’s not in the release announcements or on the evaluation download page.

No, it’s not public yet. Soon, I hope…

It turns out that in Release mode, the initialization performance difference disappears (whereas in Debug mode, GoSilverlight takes about four times as long as DiagramLite for my dataset). So I’ll stop searching for a workaround for now.