1 / 10

A .NET desktop application and it’s future

A .NET desktop application and it’s future. And solutions for command line application interoperability. 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

justus
Download Presentation

A .NET desktop application and it’s future

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 ModelKitSuite (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 QueueUserWorkItemWin32 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

More Related