MultiValue Applications and Web 2.0: Providing a Desktop-Like User Experience
Ever since the days of Windows 3.1, the appeal of a GUI interface has been plain. Customers (and, to be honest, developers as well) enjoy the ability to interact with rich desktop controls. They look nice, and they behave in interesting, responsive, and useful ways. While not necessarily more productive (it is hard to beat data entry performance on a green screen character application), the GUI "user experience" is certainly expected from modern applications.
Similarly, since the early days of the (consumer-accessible) Internet, the appeal of a browser interface has been apparent: easy software deployment (or none at all), a standardized user interface with which nearly everyone is familiar, and — perhaps most revolutionary — ubiquitous availability. The Internet, and the browser interface, allowed potential "anyone/anywhere" access to applications.
Note, though, that the attributes of the browser that make it appealing, and the attributes of the desktop that make it appealing, do not overlap. Until recently, the user experience on the desktop could not easily be brought to the browser, and many "first generation" web products in the MultiValue marketplace therefore lack the dynamic "look and feel" of a desktop GUI application. This has been changing with the advent of higher-speed internet connections and "smarter" browsers with more sophisticated communication abilities, allowing applications in the browser to provide a user experience that is comparable to desktop GUI applications. This new functionality is a hallmark of "Web 2.0."
Building Web 2.0 Applications
Fig. 1 O4W page prior to click event
Fig. 2 O4W page after click event
Of course, this enhanced functionality implies that the host routine must be more sophisticated if it is to reply to these various events. Indeed, rather than a typical "green screen" application (which expects the user entry to happen in a more or less linear, predictable fashion), MultiValue Web 2.0 applications must look more like Windows programs, responding in an "event-driven" fashion.
Fig. 3 Event driven BASIC+ code for the Click event on the form
While it is possible to create an entire Web 2.0 application from scratch, it is certainly more efficient to take advantage of open-source libraries that already include huge amounts of functionality. OpenInsight's O4W web development environment relies on jQuery (www.jquery.com) to provide much of the back-end communication functionality and the associated jQuery UI (www.jqueryui.com) to implement many of the desktop-like GUI features, including tab controls, dialog boxes, resizable/draggable/dropable elements, etc. In addition, the use of an open-source, community-driven library means that new "plugins" are constantly being developed and released, allowing a niche market community (like the MultiValue developer's community) to leverage the development efforts of a great many more people — typically at no additional cost.
Fig. 4 jQuery date picker control
Fig. 5 O4W Form Wizard
With the advent of Web 2.0, it is now possible to have "rich" applications available to everyone, everywhere. The advantages of the desktop application, and the browser application, can now be combined. By properly building upon community efforts, ongoing developments and functionality can be more readily incorporated in MultiValue applications, keeping the application fresh and up-to-date. In fact, as more and more elements of the desktop "user experience" become available in the browser, it is easy to imagine a time when the line between "desktop" and "browser" application disappears entirely.