Download presentation
Presentation is loading. Please wait.
Published byHubert Hardy Modified over 9 years ago
1
A.NET desktop application and it’s future And solutions for command line application interoperability
2
About the application Command line number-cruncher tool – Written in C++ – Multi-threaded computation – Digests data coming from MRI scans – Inputs Configurable by an XML file Has CSV input files Has some optional command line parameters – Outputs Produces CSV output files Gives feedback on the stdout
3
About the application GUI written in.NET – Goal is to control the command-line tool – Nice user editor for the command line tool’s XML configuration file – Uses WinForms – Provides also graphical display of the end results – Interfaces simply Starts it with.NET Process class Gives feedback based on standard output *picture
4
GUI – General and Listbox XML file editing WinForms forms, controls and layouting ListBox is capable of drag-and-drop operation – Taken from codeproject.com and codeguru.com – -> demo – *picture
5
GUI - interconnection Progress indicator is controlled by stdout – Process class has many settings: UseShellExecute RedirectStandardOutput RedirectStandardError OutputDataReceived event handler ErrorDataReceived event handler StartInfo.CreateNoWindow EnableRaisingEvents Exited event handler – Magic: setvbuf(stdout, NULL, _IONBF, 0); – -> demo
6
GUI - Data visualization Canvas class – Taken from codeproject.com and codeguru.com – Capable of zooming and scrollbars – Coloring: converting the value domain to hue, and using HSV2RGB – *picture
7
GUI - Data visualization Graph – Using Perpetuum Software’s.NET ModelKit Suite (won at one of the UG events this year) – It has several components, one of them is the Graph – Highly configurable, produces an output file, it is loaded from the resx resource by the actual control – Graphs picture can be saved in different formats – -> demo – *picture
8
Future Small things – Color scale display – Mouse wheel zoom handling over the canvas – Resize handling of the canvas? The whole package – Moving everything to.NET ? – Going multi-platform XML parameter editor
9
Future of the whole package Moving everything into one software – Moving the number cruncher core into.NET C++ code uses the QueueUserWorkItem Win32 API and plain old C arrays (!) We can use parallel capabilities of.NET but arrays should be synchronized, not sure about the performance implications – Going multi platform Moving to Qt and C++? Qt has nice signal-slot (eventsource- observer pattern) UI If I move to.NET I can go to Silverlight – From UI viewpoint it’s almost like moving to WPF – What happens with the Canvas and the Graph?
10
Future – XML editor Lots of boilerplate code; how to avoid? Thought about property editor-like interface Complete solution: something which – Interprets the XSD and automatically generates classes for them – exists for Java – Interprets XSD and automatically generates GUI! – many solutions exist, lot for Java, most of them are commercial – -> demo, pictures
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.