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 [email protected]
or [email protected].
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