0

I have a client which has a Visual Basic 6 point of sale software system who I have pitched them would work better in .Net, but they refuse to make the change. Their argument is that a VB6 app is far more responsive and so far I can't disprove that to them. The VB6 app is lightning fast and on a CRT touch screen provides a really good user experience.

I have not yet been able to get .Net forms to perform like it yet... Is there a method to improve the responsiveness? Will perhaps WPF be a better alternative to .Net Winforms?

TheLegendaryCopyCoder
  • 1,658
  • 3
  • 25
  • 46

1 Answers1

2

VB6 was made to perform well on ~1996 vintage hardware. That took a trick or three, it notably uses window-less controls. There was a price, VB6 controls are hard to customize and their look-and-feel pretty much set in stone. You can tell a VB6 app from a hundred feet away.

Winforms changed that, every control is a window, even a simple one like a Label. Several big advantages to doing it that way, the object model is very simple with the base object providing a lot of functionality that can be customized with very little code. And very good wysiwyg designer support. Which is also its big disadvantage, Winforms programmers tend to stuff a window with dozens if not hundreds of controls. Very easy to do, the designer makes it simple. There was a price, the dispatcher overhead is significant and most easily seen by it taking a while for all these windows to repaint themselves. Visibly, giving the perception of a slow program. The workaround is simple.

WPF went back to the VB6 approach and also uses window-less controls. But with a significantly improved DirectX-based rendering engine and strong support for look-and-feel customization. And a deep object model with a steep learning curve, the primary reason Winforms still is used. Windows-less controls are also available in Winforms from .NET 2.0 additions like the ToolStripItem classes and from component vendors like Telerik.

Community
  • 1
  • 1
Hans Passant
  • 922,412
  • 146
  • 1,693
  • 2,536