Winning Apps - The Bridge Network
Transcription
Winning Apps - The Bridge Network
BEST VB APPS Winning Apps BY ROBERT W. SCOBLE Impress your future clients and learn from entrants’ mistakes in the VBPJ Application Design Contest. The winners also consistently blew away the judges’ assumptions of what VB could do. Because most of the judges themselves develop professional business applications, they were most impressed by the multimedia and game entries, applications outside their day-to day sphere. However, even business productivity applications impressed the judges as a re- sult of attention to detail, speed of execution, and creative database access. The judges pointed out that most of the applications they received were not ready for prime time. They wanted to give readers a chance to learn from both the winners’ triumphs and the losers’ mistakes (see the sidebar, “Winners, Judges, and Sponsors,” for more information). he results are in from the first Visual Basic Programmer’s Journal’s Application Design Contest. We received entries in the categories of user interface, DBMS, student, multimedia/ games, and networked applications. The eleven professional programmers we enlisted as judges perused each application for hours. Each application was reviewed by two judges. Category winners were critiqued a third time in order to pick an overall winner. How did the winning applications distinguish themselves from the rest of the pack? Simple—they executed the details well. The winning applications ranged from the glitzy to the pragmatic. However, even the glitziest of the winners was easy to use and consistent in its design. It also installed properly on the judges’ systems. The judges loved seeing consistent design in interfaces and code. The winners proved that an app doesn’t have to look like Excel to be considered a good app, but if you diverge from Office as a standard, you’d better do it well, and do it consistently. T Robert W. Scoble is associate editor and computer guru at Fawcette Technical Publications. He’s a sysop on the VBPJ Forum. Reach him at 74774.305@compuserve.com or VBPJ@msn.com. Help for Denturists. Tracker for Denturists, the overall contest winner in the VBPJ Application Design Contest, was picked because it made the best use of Visual Basic’s database and networking features. It also was one of the few that strictly followed Microsoft’s user interface guidelines. It had several Microsoft Office-type features including ToolTips, Tip of the Day, Tabs, and a Schedule Plus-like module for scheduling appointments. FIGURE 1 ©1991–1995 Fawcette Technical Publications H O M E Visual Basic Programmer’s Journal DECEMBER 1995 73 BEST VB APPS Attend a “Virtual” Conference. Presentation World, special runner-up in the VBPJ Application Design Contest, took best user interface honors because it was one of the few applications submitted that breaks all the rules and still succeeds as an application. Users move around a graphically rich conference hall, and can click on the telephones and coke machine, or enter any number of doors to hear professional presentations on how to speak in front of audiences and how to develop presentation content. The judges liked this application because it gives immediate feedback to the user and employs several easily learnable idioms and metaphors in its user interface. FIGURE 2 In fact, our crew of judges has some programming hints that may help you win the next really important contest—getting a programming contract or perhaps a raise. Interestingly, the judges strongly criticized the finished quality of some of the applications. Common reactions were to the use of nonstandard user interfaces; hard-coded directories on install or use; a lack of help manuals or poorly executed help aids; coding style that deviated from generally accepted VB standards (many of the projects were saved as binary, which old-timers know leaves your projects open to corruption); databases hard-coded into the data control; and frequent crashing. Because your own applications are being judged every day by these same criteria, let’s go over the judges’ recommendations before discussing the details of the winning apps. FOLLOW STANDARDS Darryll Petrancuri (see Basic Heroes, VBPJ, March 1995) says it best: “Adopt one standard and stick to it.” He wasn’t the only judge who noticed that programmers have trouble sticking to standards in user interface design, database design, or code style. “Why do programmers of general office utility programs feel they need to try to prove Microsoft’s designers wrong?” asked several judges, speaking of design style. Some applications had colors hard-coded on their forms that were incompatible with many color schemes, especially the new Windows 95 colors. “Do you know how hard it is to stare at a yellow background for three hours?” Harry Ekmekjian queried in one of the judging sessions. “In most cases programmers don’t know what the interface should be like,” contest judge Arthur Edstrom explains. “The big companies have people who specialize in that. I always tell everybody to follow the interface design Microsoft’s designers are doing because they spend lots of money to learn what works.” Edstrom designs multimedia applications for a living and is head of the VBPJ Forum’s Multimedia section on CompuServe. “Quite a few apps had no typed declarations,” observed contest judge William Storage. “Everything was variant,” Storage 74 DECEMBER 1995 Visual Basic Programmer’s Journal Hang Illiteracy. Catherine Moore designed this application to help out the Cambridge Literacy Council in Cambridge, Ontario, Canada. It’s a well-implemented play on an age-old game. FIGURE 3 says. “The thing I’m realizing is that most VB people are rising to the occasion, but they haven’t risen yet. The average skill level out there is pretty low.” Like the other judges, Storage recommends always using Option Explicit and not using variants, but he warns that things change a lot with VB4. Storage is section leader of the Program Design/OOP section on the VBPJ Forum. “Enforce standards across teams,” Petrancuri recommends. “Do not allow team members to adopt their own code styles.” Petrancuri emphasizes that not following self-imposed codestyle standards will cause serious problems later when you need to share that code with other members on the team, or when you need to maintain the code. “Use variables and data types that suit the task at hand,” Petrancuri suggests. “Use of the correct data type can improve performance. Also, keep the use of variants to a minimum. Variants are your enemy.” L.J. Johnson believes that the lack of variable naming conventions and inconsistent use of defined constants, along with inconsistent form and control naming conventions, makes it difficult to maintain code over the years. Johnson, a leader of the 32-bit DLL/API section of the VBPJ Forum and a past VBPJ Basic Hero, declares, “Any convention is better than none.” “Read Code Complete by Steve McConnell,” Petrancuri suggests. In fact, each judge made this suggestion, underlining the importance of standards. “If you’ve already read it, read it again,” Petrancuri urges. Johnson points out that the entries could use better code formatting. “Use consistent indention, more white space, more comments, particularly comments on why this code section is there, not how it works…intention is always the hardest thing to determine.” OTHER TIPS “There was too much code in forms, not enough in modules,” Petrancuri notes. “(Programmers) are making bloated and slow applications and they are limiting their ability to re-use their code. If you modularize your code you will see the trends better and understand your architecture better, and you will see opportunities for re-use and optimization.” Storage agrees. “People executed a lot of stuff in the event procedures. Instead, have well-named functions that describe the event procedure. Chances are you might be doing the same thing somewhere else.” ©1991–1995 Fawcette Technical Publications H O M E BEST VB APPS Manage that Warehouse. WMSLite, a Warehouse Management System, won the DBMS category because it has a flexible and configurable database that handles information from a variety of sources including hand-held bar-code scanners. FIGURE 4 “In general, if brought in to maintain the programs I saw,” observes Johnson, “I would suggest extensive rewriting. Even for a relatively small project, maintenance is 50 to 80 percent of the project. And most of these projects would be a maintenance nightmare. “McConnell points out that code is written for humans, not computers,” Johnson continues. “Computers, through compilers, can understand almost any garbage. Humans, however, are more selective.” “Conventions are not really restrictive, but give you freedom to be really creative,” McConnell emphasizes. “There are a lot of ways to be creative when writing computer programs, but naming variables, controls, and forms is not something you need to spend your creative juices on.” Poor installation affected the judging results for some apps. Edstrom agreed with the other judges that an application that didn’t install properly didn’t do well in the results. For example, one application that looked nice in the multimedia/game category wouldn’t install for him, so he couldn’t judge it. The judges wanted installations that would never overwrite newer files without at least asking the user first and would never have the target directory in which the application will be installed hard coded. They also highly recommend version-checking VBXs on installation. EXAMPLES OF WHAT TO DO OK, enough brow-beating over what not to do. Let’s switch gears and look at the individual winners. Tracker for Denturists by Issie Chaimovich, the overall winner, was an example of good programming, according to the judges. Tracker made the best use of Visual Basic’s database and networking features. It solved a business problem. It felt like a Windows application you’d been using for four years. And it installed properly. Tracker has a decidedly “Microsoft Office” feel to it. It even had the “Tip of the Day”-style dialog that comes up when you start up your Office apps. Chaimovich says he works hard to ensure that his applications will fit into Microsoft’s suite of applications, because his users already use Word and Excel (see Figure 1). He’s even beta-testing Windows 95 and VB4 in order to ensure his application will work properly in the 32-bit field, because he knows that Windows 95 will be very popular with his clients. Tracker is an application that runs denturists’ offices. Chaimovich found plenty of packages already on the market for dentists, but none for denturists. Denturists are dental practitioners who work independently from dentists, but do similar work. “We wrote it to eventually go after the larger dentist 76 DECEMBER 1995 Visual Basic Programmer’s Journal Comic Relief. Johnny Cocktail by Tim Glasser and Bob Etheridge allows users to construct a stand-up comedy routine (pick your jokes, actions, insults from drop-down pick boxes), and watch the presentation unfold. It’s fun, and the Claymation animation is of high quality. FIGURE 5 market.” The application tracks patient history, doctors’ schedules, and prices for various types of work, and writes reports and invoices, among other things. Chaimovich believes that third-party tools shouldn’t be overused, but cites the user interface tools that come with MicroHelp’s VBTools (formerly called Gizmos) as particularly helpful. Chaimovich uses them to build the hint boxes, called tool tips, that pop up when the cursor passes over a control. The judges remembered his application because it was one of the few that successfully installed using the Visual Basic setup kit. Johnson suggests that version checking would be useful to cure a flaw he found in the app. “It tries to copy over same version of TRACKER.EXE, and probably other files on install to second machine to the same directory. Thus installation fails.” Petrancuri and the other judges liked the Tracker for its simplicity. “It is a simple and easy to use, yet powerful system for streamlining a dental practice. Its screens are visually pleasing, intuitive, and balanced, with self-explanatory input requirements,” Petrancuri explained. “Reports are easily produced and professional in quality. Other excellent features include built-in back-up and restore functionality, general-ledger export capability, a limited customizable desktop, and the ability to fill in standard dental claim forms.” The judges also pointed out that Tracker had some of the best documentation and help features of the applications judged. While Tracker won both the overall prize—a check for $4000—and the networking category, several applications were close behind. The final judging panel considered all the category winners for the overall prize. To determine the finalists, they met for six hours at Fawcette Technical Publication’s Palo Alto, California, headquarters. Also considered for the top prize were Catherine Moore’s Hangman, which won the student category, John Quinn’s WMSLite, which won the DBMS category, Lyle Warnke’s Presentation World, and Tim Glasser and Bob Etheridge’s Johnny Cocktail, which won the multimedia/game category. Presentation World is an example of the new genre of multimedia business applications (see Figure 2). It is a virtual conference, where business users can navigate a conference hall and attend presentations on speaking in front of people or ©1991–1995 Fawcette Technical Publications H O M E BEST VB APPS Winners, Judges, and Sponsors VBPJ Application Design Contest Winners Entrants endured two judging rounds to determine top designs, and once more to identify the best in each category. Category Overall Overall Runner-Up User Interface First Place User Interface Second Place DBMS First Place DBMS Second Place Application and Author Tracker for Denturists, Issie Chaimovich Presentation World, Lyle Warnke Presentation World, Lyle Warnke Bug Track, Young Lim Edwin, Robert Smirnow Health Tracker, Bob Etheridge Maya Calendar, Gregory Reddick Parcel Post, Marc L. Vick Polymer Primer, Patrick Norman Visual Passage, Pat Degroodt and Rob Gehrsitz WinDarts, David Holstius Word Master, Marvin Reinhart WMSLite, John W. Quinn DataComm 2, Michael Hammons InfoSports CardBase for Windows, Daniel Fox Problem Tracker, J. Hank Rainwater Petsitting Manager, Edwin B. Ehrgott TR-834 Test Simulator, Daniel Lynch Networking First Place Networking Second Place Tracker for Denturists, Issie Chaimovich ATICS Workstation, Robert L. Bradley WinRep, David Metzger Student First Place Student Second Place Hangman, Catherine Moore Alert4, Zsolt Halmos PI Check, Andrew Fruhling Spanglish, Patrick Mc Neill WinDarts, David Holstius Multimedia/Game First Place MultimediaGame Second Place 78 were seamlessly incorporated into the backgrounds. Presentation World evoked pleased exclamations from the judges as they played with the app. They were particularly taken with two elements of Presentation World: • Constant cursor feedback about what the user could do. If the user points at something that can be activated by a mouse click, the cursor graphically changes into a finger. If you point at a door, it changes to an arrow to indicate you can move through it. The implementation of such idioms makes the interface instantly usable. • Presentation World’s code design, which allows the programmers to easily customize the app. The code is written to be super-optimized and is easily understandable. DECEMBER 1995 Visual Basic Programmer’s Journal Craig Goren * Harry Ekmekjian * Darryl D. Petrancuri * Kathleen Joeris * Arthur Edstrom * L.J. Johnson * David P. McCarter * William Storage* Bob Dover ** Allan Colby ** Allan Wolff ** * VBPJ Forum section leader ** VB user group leader Sponsors Thanks to these generous parties, who donated prizes. All of these companies can be found in the Windows Component Vendor Forums on CompuServe (GO COMPA and GO COMPB). Aardvark Software Inc. Bennet-Tec 201-833-4355 516-997-5596 Johnny Cocktail, Tim Glasser and Eric Goldberg, SBD Productions Earth Quake Zeeno Survivor, Sadiq Somjee Go Moku Narabe, Steve Neeley How to be Perfect, Tim Glasser and Eric Goldberg at SBD Productions Presentation World, Lyle Warnke WinDarts, David Holstiud developing professional content. Users listen to or watch about 10 hours of content, Warnke says. The application deserves special mention, the judges explain, because it was one of the few examples that properly broke the Windows user interface guidelines. The app’s interface uses a VCR metaphor along the bottom of the screen. Warnke also employed elements users would commonly recognize, such as notebooks with pages that turn for the conference proceedings. A video wall on one end of the conference hall looks like a real video wall, and when users attend a talk, other participants in the room move around and even ask questions. The judges liked the application for its extensive use of AVI files, which Judges These hardy volunteers perused nearly 100 apps. You can meet many of the judges in the VBPJ Forum on CompuServe, where most are section leaders. ImageFX 716-272-8030 Mabry Software 206-634-1443 Microsoft Corp. 800-426-9400 Sax Software 1-800-MIKESAX Sheridan Software 516-753-0985 Stylus Innovation Inc. 617-621-9545 SuccessWare 909-699-9657 Synergy Software 802-878-8514 Presentation World was not the overall winner because Warnke works at Media Architects, and Media Architects programmed the application under contract for Cinemar. The judges felt that a commercial application written by a VBPJ advertiser broke the spirit of the contest, although VBPJ did not establish a rule preventing commercial programmers from entering their products in the contest. “Should Encarta or the Windows 95 tour be allowed?” one judge asked for the sake of example. Both products are VB apps, but the judges felt that awarding a top prize to a VBX vendor would be inappropriate. CATEGORY WINNERS Moore’s Hangman, a play on an age-old game, helps people to learn to read. “Literacy is my main interest,” Moore ex- ©1991–1995 Fawcette Technical Publications H O M E BEST VB APPS plains. The Hangman project took about a month to build, and was based on concepts Moore learned at the Institute for Computer Studies in Toronto, Canada (see Figure 3). The game was a charity project for the Cambridge Literacy Council which she heads in Cambridge Ontario, Canada. Quinn’s QTech Software Development Company developed the winning application in the DBMS category for DataSource Systems (HK) Limited. The application, WMSLite, uses bar-code technology and portable computer laser scanners as input devices to drive the main inventory management system for warehouses (see Figure 4). Currently, it runs several large warehouses in China. “Warehouse workers scan cartons as they are received from incoming trucks,” Quinn says. The data, fed into a PC through a comm port, is then processed by the application. In designing the application Quinn used Sheridan’s Data Widgets, his prize in the 1993 BasicPro magazine (the predecessor of VBPJ) Application Design contest. He used MicroHelp’s Comm Library and Crystal Reports 4.0 to handle his reports. “The DBMS Design in WMSLite is very flexible and configurable,” notes Johnson, one of the DBMS category judges. “It’s neat. It’s appropriate to the design goals and makes extensive use of data-driven programming via a private INI file.” WMSLITE USES BAR-CODE TECHNOLOGY AND PORTABLE COMPUTER LASER SCANNERS AS INPUT DEVICES TO DRIVE THE MAIN INVENTORY MANAGEMENT SYSTEM FOR WAREHOUSES. “WMSLite has an above-average user interface,” Petrancuri says. “It was consistent and well thought out.” Johnny Cocktail, by Glasser and Etheridge, lets the user pick jokes, actions, insults, and other comedy items from drop-down pick lists to construct a stand-up comedy routine (see Figure 5). The animated playback uses Claymation figures stored as AVI files and BMP files. “The program is a clever concept that is well implemented using VB,” judge Edstrom finds. “The digital audio is of very good quality, and the Claymation graphics are superbly done.” The rules are changing. Next year’s applications will be 32-bit, will include a decent uninstall feature as well as a good install routine, and will use the Windows 95 user interface properly. Next year’s contestants will follow the lead of contest winner Chamovich, who is already off and running with Windows 95 and NT, and a VB 4.0 rewrite to make TRACKER run in 32-bit environments. Sounds like a good start for future contests. 80 DECEMBER 1995 Visual Basic Programmer’s Journal ©1991–1995 Fawcette Technical Publications H O M E