Recommendations for graphical application

C

CraigH

Hi,

I am at the early stages of defining the technology requirements for a
graphical, 2D Windows Forms application with display features along the
lines of MS Visio. It has a requirement to display it's data in a number of
tree or network like formations.

The "workspace" will take up the bulk of the UI space and must be able to
cope with large numbers of objects, connector lines, pictures, etc and allow
the user to scroll, zoom, drag and drop, select objects within their work
area. The number of objects that it needs to cater for runs into the
thousands. The same information then must be able to be transferred to
printed documents and various other image formats.

What graphics technology would people recommend to implement a system such
as this on .NET Framework 2.0?

I have investigated using GDI+ (although with Framework 1.1) but have found
that performance is too slow with large (virtual) workspaces, large numbers
of objects and zooming/scrolling/panning.

Due to this, I've started looking into the Managed DirectX extensions but
most of the information I have found relates to games development rather
than traditional Office like diagramming tools hosted in Windows Forms
application.

Any suggestions to approaches or sources of information would be greatly
appreciated.

Thanks,

Craig

Note: This is a repost due to previous post using incorrect reply address.
 
T

Tim Scott

Craig,

You may check out the Netron project at
http://netron.sourceforge.net/wp/
I don't know if it will meet all of your requirements, but it's always
looked interesting to me.

For commercial products, see the Nevron commercial component
(http://www.nevron.com) and Northwoods Diagramming components:
http://nwoods.com/.

There's also VG.net, but it may be more a design-time tool than a
runtime tool for a user: http://www.vgdotnet.com/.

Good luck! Report back and let people know what worked and didn't work
for you.

-- Tim Scott
http://geekswithblogs.net/tscott
 
T

TerryFei

Hi Craig,
Welcome to MSDN Newsgroup!

Based on my experience,GDI+ performance problems are usually caused by
using GDI+ incorrectly or thinking that it will magically solve your
problems for you.
A combination of smart invalidation, efficient paint clipping and possibly
double-buffering will likely give all the performance you need for a
Visio-style application.

You also could do this kind of thing in DirectX. (This might get you
started http://www.ircomm.net/blogs/mykre/archive/2005/05/24/339.aspx)

It's non-trivial to implement this kind of a design surface in GDI+ but
it's not any easier in DirectX (certainly if a goal is to enable printing,
there are a lot more parallels using GDI+ than DirecX). If I were
implementing this, I would prefer to GDI+

I hope the above information is helpful for you. Thanks and have a nice day!

Best Regards,

Terry Fei [MSFT]
Microsoft Community Support
Get Secure! www.microsoft.com/security


--------------------
 
C

CraigH

Thank you for your help everyone, that gives me some ideas to start looking
at.

I agree with Terry in that I would rather go down the GDI+ route but having
used it before from a Delphi (VCL) application I found that no matter what
optimized clipping, etc approaches were taken, there was still an underlying
performance issue compared to it's previous GDI version. Maybe I didn't use
the best techniques or my approach was wrong for GDI+.

I know that without going into specific details about the application it is
difficult for me to explain what the problems are but you've given me some
food for thought.

Another thing that I would like to consider is the ease by which I will be
able to migrate to WinFX/Vista when they become available. Does anyone know
how applications like this will be delivered under that platform?

Regards,

Craig
 
T

TerryFei

Hi Craig,
Thanks for your response!

If you develop your application using WinForm in .Net, your project can be
migrate to WinFX/Vista smoothly and easily.
It's my pleasure to work with you. If you have any questions later, please
feel free to let me know. I'll do my best to support you. Thanks for your
understanding!

Best Regards,

Terry Fei [MSFT]
Microsoft Community Support
Get Secure! www.microsoft.com/security

--------------------
Subject: Re: Recommendations for graphical application
Date: Mon, 30 Jan 2006 12:47:46 -0000
Lines: 52
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2527
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
X-RFC2646: Format=Flowed; Original
Message-ID: <[email protected]>
Newsgroups: microsoft.public.dotnet.framework.windowsforms
NNTP-Posting-Host: 212.125.66.142
Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
Xref: TK2MSFTNGXA02.phx.gbl microsoft.public.dotnet.framework.windowsforms:93614
X-Tomcat-NG: microsoft.public.dotnet.framework.windowsforms

Thank you for your help everyone, that gives me some ideas to start looking
at.

I agree with Terry in that I would rather go down the GDI+ route but having
used it before from a Delphi (VCL) application I found that no matter what
optimized clipping, etc approaches were taken, there was still an underlying
performance issue compared to it's previous GDI version. Maybe I didn't use
the best techniques or my approach was wrong for GDI+.

I know that without going into specific details about the application it is
difficult for me to explain what the problems are but you've given me some
food for thought.

Another thing that I would like to consider is the ease by which I will be
able to migrate to WinFX/Vista when they become available. Does anyone know
how applications like this will be delivered under that platform?

Regards,

Craig

"TerryFei" said:
Hi Craig,
Welcome to MSDN Newsgroup!

Based on my experience,GDI+ performance problems are usually caused by
using GDI+ incorrectly or thinking that it will magically solve your
problems for you.
A combination of smart invalidation, efficient paint clipping and possibly
double-buffering will likely give all the performance you need for a
Visio-style application.

You also could do this kind of thing in DirectX. (This might get you
started http://www.ircomm.net/blogs/mykre/archive/2005/05/24/339.aspx)

It's non-trivial to implement this kind of a design surface in GDI+ but
it's not any easier in DirectX (certainly if a goal is to enable
printing,
there are a lot more parallels using GDI+ than DirecX). If I were
implementing this, I would prefer to GDI+

I hope the above information is helpful for you. Thanks and have a nice
day!

Best Regards,

Terry Fei [MSFT]
Microsoft Community Support
Get Secure! www.microsoft.com/security
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top