Building Noverant's Web site was a useful project in beginning to explore the capabilities of XML, XSLT, and the XML DOM. As good as this site looks for a proof-of-concept piece, it needs more work before it will be ready for production use.
The document model is somewhat simplistic. The
element in particular needs to be expanded to accommodate different media types, relative priority, and advanced layout requirements. The query page can be enhanced to provide a more flexible query mechanism for a
In this chapter we introduced some new XML technologies, such as XSLT, and have seen how they can impact traditional Web application design. The Noverant Web storefront
By separating presentation from content, XML can help to solve many of the maintenance problems that have plagued traditional Web applications. I recommend that you begin thinking about ways in which you can
Software developers have struggled with creating User Interfaces (UIs) since the birth of the computer, and these interfaces have constantly evolved, even when the
Similarly, other UIs for desktop and enterprise applications have changed over time. Advances in computing such as faster computers and graphics hardware now enable developers to build graphic-rich applications. The Microsoft Foundation Classes (MFC) armed application developers with a suite of standard, yet powerful UI
A current interface topic concerns Web browsers. The popularity of the Internet and the Web have made the Web browser ubiquitous. First-generation Web browsers were
This chapter will discuss how developers can leverage XML to help them with UI layout, navigation, and input controls. We will explore ways to use XML to create a layer of abstraction on top of traditional UI elements, making them more dynamic and extensible. Finally we will put these ideas to us, in actual code samples.
The most important trait of an effective UI is consistency because an application with a consistent approach to human interaction is much easier to learn and use. Consistent UIs can also, with practice, be used intuitively. Intuitive use means efficient use; efficient users mean happy users; and happy users mean well-paid developers.
After consistency, the look and feel of an application's UI can be its strongest asset or its worst detractor. Naturally, users see an application's outward appearance first, and from that they draw first
XML can help enforce visual consistency across the application by wresting the power of making UI design decisions from the hands of content developers and returning it to its original owner, the visual designer. XML can also help incrementally augment a UI's palette of
No matter the nature of the application, all UIs share a number of features, such as layout and navigation. In this section we will identify and describe several of these UI features.
The layout of an application's UI governs the positioning of its content. Information should be presented so that it is easy to find, manipulate, and analyze. Data should be presented in a clean, uncluttered manner. Closely
An intuitive navigation scheme is critical to an application's
Input widgets, or components, are the atomic building blocks out of which all UIs are created. Examples include text fields, text boxes, check boxes, and any other controls that solicit input from the user. Some widgets are interchangeable. For example, combo boxes and radio
Actions are used to represent the various ways a user can manipulate data on the screen. Actions can take the form of buttons, pull-down menus, right-click
Security in an enterprise application should be flexible enough to accommodate various dynamic roles that accurately reflect the job responsibilities of many different classes of users. An application's security should control the navigation, actions, and data exposed to the user. It should not be
A well-designed Web UI will take into account changes or variations in browser capabilities. The UI should be able to accommodate more sophisticated browser controls with a minimum of tweaking. Web browsers are dynamic software packages. New features and bug-fixes are constantly being added. Therefore, you should design a UI that is well-suited to change.
Flexible UIs should allow some degree of user customization, but interfaces that are too highly customizable create needless complexity. An application should not go overboard by offering the ability to change every label, font, or screen. Ideally, allowing some customization to views,
Color can be used to improve an application's usability and