Porting GoDiagram app to silverlight web app


I have already used GoDiagram .Net WinForm component to build .net desktop application, which is successfully running.
But now I have to evaluate whether this application could be portable to Silverlight web-based platform with all existing supported functionalities with less efforts.

So please provide me about your feedback regarding this & have a look of the following main functionalities, implemented in running application:

1. Y axis:
1.1 It’s GoView object’s width is calculated by the length of all added GoText objects.
1.2 All added GoText objects could be moved by mouse only vertically along Y axis within GoView objetcs’s range.
1.3 On moving any GoText object, all X axis GoView object’s belong to this GoText, vertically moved accordingly.
1.4 There is context menu with all added GoText objects to delete.
1.5 No scrollbar supported & it’s fixed.

2. X Axis:

2.1 It’s GoView object’s width is calculated by calculating X Axis’s length.
2.2 Derived classes from GoLink, GoIconicNode, GoText, GoGroup, GoToolManager
2.3 There is context menu with all added objects to do corresponding job.
2.4 Tooltip support with Node & link objects.
2.5 Only horizontal scrollbar is supported.

3. Multi language support.

4. Print functionality

Perhaps you have already considered it, but my first reaction is that it is very easy to port the GoDiagram part of WinForms apps to ASP.NET WebForms apps. So if you are looking for the quickest/easiest way to put your app UI on the web, it would be to use GoDiagram Web.

But the disadvantage with that approach is that the diagram is not “real-time” responsive. Images are only drawn on the server, so there is an unavoidable delay. (On the positive side, it will work in practically any browser that supports JavaScript.)

So I hope you have decided to consider porting to Silverlight with those tradeoffs in mind. Certainly it is convenient for you to port C# or VB code to Silverlight, and to use basically the same tools as before.

However, the application programming model for all Silverlight or WPF applications is quite different from WinForms (or WebForms) applications. That’s true for everything, not just the diagramming part. So you’ll need to learn about the world of programming in XAML and the features that entails: data-binding, styling, animation, asynchrony, and maybe some other non-trivial differences.

And that means that little of your app’s UI will be able to be ported. That’s true for everything, not just the diagramming part. The more that your app has been organized so that the presentation is separate from the logic/business/data, the easier it will be to port.

Anyway, to answer your question, I don’t see any fundamental impediments to implementing what you want in Silverlight and GoXam. Making the timeline will require some extra programming. Moving those Y-axis labels is easily implemented by moving all of the corresponding nodes. Silverlight provides elements like GoText (TextBlock) and GoGroup (Panel) and implementing your own GoIconicNode is easy. Silverlight has support for context menus and tooltips. But I don’t know what customizations you made of GoLink and GoToolManager.