GLGDW Session 16A
Cheap Tools for
World Class Development
A look inside the toolbox of an application developer at some simple software that can save hours of time. Includes demonstrations of shareware, freeware and commercial software essential for every serious developer.
Man is a tool-using animal… Without tools he is nothing, with tools he
is all.
- Thomas Carlyle (1795-1881)
Microsoft spent quite a bit of time and energy at the last FoxPro DevCon emphasizing the idea that the days of monolithic applications solutions were numbered. The concept that applications can and should be built with an assortment of cooperating components has been gaining favor for quite some time. Similarly, the attitude that FoxPro, and FoxPro alone, can be used to develop these applications is as unrealistic. In this session, we will examine some of these components and also consider how some standalone utilities and add-ons can be used to produce sophisticated applications faster and more effectively.
Most of the tools I discuss here are tools used at my company on a daily basis. Some are under evaluation; a few are those that have such cool features that even though I may not be using them now, I am considering their use or at least watching the product to see if a future version could meet my needs. Evaluate and test the products in your environment to ensure they will work for you. Freeware, public domain or freely distributable products typically are those that you can use with no payment to the author. Shareware is usually fully functional software with reminders to register the software if used beyond an initial testing period. Tryware, "nagware" or sample/demo products are those which you can typically evaluate for use and try out under your environments, but require a payment to be made before adding them into your applications. Read the license agreement or README files which come with each product to determine your obligations. I strongly encourage you to pay for the products you choose to use. If a product does not meet your needs, I would also encourage you to contact the author with your issues. Many new version features come from this feedback.
Before you start an application, you need to get in touch with the client. Keeping track of the client's name, address, fax, e-mail address and perhaps the content of your last discussion is essential to managing the business. A number of contact managers are available to aid you in this task. Blackstone has standardized on Microsoft Outlook for this task. Outlook is probably not significantly better nor worse at his task than a number of other Personal Information Managers (PIMs), but its ease of integration in the Windows environment, its ability to share contacts between team members and its tight integration with Microsoft Exchange and Office97 made it a clear choice for our uses. In addition, potential for closer tie-in to our existing systems via OLE Automation was an attractive feature.
The lesson of the value of reuse is a powerful one in favor of object-oriented systems, but reuse should not be confined to source code. Design issues, client proposals, and even internal telephone lists need to be kept up to date, and older versions may need to be recalled. Consider storing many of the documents you use in source code control. Visual SourceSafe is one product which closely integrates with the Visual FoxPro Integrated Development Environment (IDE), and was our choice for that reason.
The whiteboard is probably one of the most overused fixtures of our office. We constantly find the need to resolve a design or programming problem by drawing it out. Similarly, many of our important design documents first come to life as scribbles on scraps of paper. Programmers and analysts often think in symbols, and these documents are essential to the work we do. Unfortunately, napkins often have a shelflife much shorter than the projects they describe. For that reason, we attempt to capture of the technical details of the system in electronic format. We currently use Visio for general-purpose drawing, xCase for ERD analysis and design, and we are evaluating products for OO Analysis and Design. Two of them, Playground and WithClass, are listed below.
Hard as it is to believe, sometimes bugs (or at least "unintended side effects") can creep into a product. Understanding what these problems are, where they came from, how and why the problem occurred and, most importantly, how to prevent it in the future, should be an important aspect of our work. Gathering metrics can help you to understand that certain code routines seem to be troublesome to your organization, or that one type of maintenance is more likely to cause a defect. Tracking these issues can help us identify individual contributors' strengths and weaknesses, and create plans to better allocate resources or identify training needs. Anomaly tracking is an essential element of businesses that want to learn from their mistakes.
While I was unable to come up with a demo for this paper, I do encourage you to check out this emerging software category. Intriguing features in some of the newer products include linking reports to individual build numbers (in your source code control modules), abilities to link with other programs and tight integration with your customer support functions. Check out PVCS-Tracker (http://www.pvcs.com), StarBase (http://www.starbase.com) and PR-Tracker (http://www.halcyon.com/softwise/prtracker.html).
Despite its well-deserved reputation as one of the most powerful Integrated Development Environments, one of FoxPro's coolest features is the ability to extend and customize the development environment. SuperClass demonstrates this ability well, in adding a toolbar to the design surfaces when code windows are viewed. BuilderB extends the native builder technology available within VFP. DBCX, a technology to "extend" database properties with user defined attributes, is a publicly available standard available and supported by manufacturers of CodeBook, FoxFire!, FoxExpress, Stonefield Data ToolKit and xCase, which allows design- and run-time customization of, and extension to, database properties.
Other cool add-ins include the Cob Editor Extensions, for powerful macro and keyword expansion, Filer.DLL, for great text search and edit capabilities from within FoxPro, SLOB, for a quick and efficient builder.
Runtime components are those used in the application delivered to clients. Sheridan Software's Calendar Widgets fall into this category, as do Cipher50, DynaZIP, FoxFire!, GenRepoX, PhdBase, Stonefield Data ToolKit. All have found a place in one or more applications I have built. Why reinvent the wheel when other developers have already worked out the kinks and provided a solid and robust tool to build your application on?
Have you ever noticed that the topics of "Testing and Documentation," if they appear in a consultant's proposals and workplans at all, always seem to be at the end of the list? With the beginnings of some reasonable testing tools available at the low end of the market, it is worth analyzing the benefit of using one of these products, especially on larger systems. Visual Test, formerly owned by Microsoft and now a product of Rational Software (http://www.rational.com) is one to look out for. There are a number of similar products coming out, like Vermont High Test (formerly Dr. Taylor's Test, http://www.vtsoft.com ), which may also be worthy of investigation.
The fact that all of our design surfaces - table structures, forms, menus, reports and classes - are stored in table structures can lead to some cool tools. Help Angel (see below) is a product built to create RTF formatted help input files from DBF files. There is no reason that this DBF file needs to be created manually - it could in fact be generated automatically by scanning a project and generating help notes from control properties of Caption, StatusBarText, ToolTipText and perhaps an extended property generated by DBCX.
An alternative technique is done with AutoManual. AutoManual takes the unconventional attitude of actually running your application, reading the screen, and producing a hierarchical user manual that reflects what's actually in your application. While I have only toyed around with the application so far, the utility of this approach is worth examining.
You probably have heard by now that the Internet is the answer. While I am not always sure that I understand the question, there is no doubt that a tremendous amount of information can be found on the Internet. For that reason, I have included URLs for much of the software included here. Many of the packages are timed releases, and you may need to obtain a new version for evaluation. Others are updated regularly (three or four during the process of writing this document!) and new versions should be downloaded. I have not included a web browser with the other tools in this survey, as I expect that every developer can get their hands on one easily. The same goes for FTP tools, now often contained within many browsers.
The situation is similar with CompuServe: TapCis, NavCI$, WinCIM and others all have their adherents (some might say zealots), and the software may be easily obtained. The Fox forums are still among the most active places on CompuServe. Check them out for some great help, authoritative answers, and a great library of software,
The Microsoft web site is one of the good places to check for new "stuff." Recent months have seen the posting of a new GenMenu, a new Setup Wizard, the filer DLL and more. Worth cruising by weekly, at least. In addition, of course, check out your favorite web search engine on a regular basis for FoxPro keywords. More information is appearing on the net daily…
Happy Tool Using!
AutoManual Demo version, $395 to register Roger L. Woodsmall mailto:73164.3572@compuserve.com or mailto:roger@woodsmall.com Available as AUTOMA.ZIP on CompuServe's FOXUSER forum. |
An incredibly ambitious project, AutoManual attempts to create a full user manual, documentation and screen shots, by actually running the application, "reading" the menu options and forms presented, and organizing the manual based on these. The 146-page manual included with AutoManual is itself generated by the program. |
BuilderB Freely distributable Ken Levy |
A framework for builders and building builders. Includes a half-dozen simple builders to |
Calendar Widgets V. 1.0B Commercial Software Demo "Nagware" version Sheridan Software Systems, Inc. 35 Pinelawn Road Melville, N.Y. 11747 USA (516) 753-0985 |
Among the most capable of calendaring controls, the single package contains OCXs for YearView, MonthView and DayCombo with highly programmable object models, good documentation and good support online and by phone. |
Cipher50 Public Domain Originally written by Tom Rettig and Leonard Zerman;
recompiled for 5.0 by Guy Pardoe. Available on CompuServe in the VFOX forum. |
A small (6k!) and fast library for encrypting and decrypting strings, ideal for keeping snooping eyes from reading a password DBF. |
Cob Editor Enhancements (CEE) - both 3.0 and 5.0 Freely distributable COB System Designs, Inc. 1016
Clemons Street, Jupiter, Florida 33477 |
A sophisticated add-on for the Visual FoxPro editor. Aids in documentation, indenting, keyword expansion, macro functions, and far more. |
DynaZIP Commercial Software Inner Media, Inc. 60 Plain Road Hollis, NH 03049 USA (603) 465-3216 |
An easy way to integrate PKZIP-compatible files into your application. Allows the creation, update and unpacking of .ZIP files from within your application with no visible sign to the user. Package supplies DLL, OCX, VBX and command line support to support dozens of development languages, including FPW and VFP. |
Filer.DLL http://www.microsoft.com/vfoxpro
|
Filer is back! At least, the ability to perform complex text searches and open files in the VFP editor has returned. Filer.DLL is a COM-compliant component available from many OLE-capable products and is combined with a VFP Form to produce a powerful search-and-edit form. |
FinderX Ken Levy Freely Distributable |
Ken's solution to the loss of Filer's Find capability in VFP version 5.0 - this utility is provided with a command line interface only.. |
FoxFire! Commercial Software MicroMega http://www.micromegasystems.com Working Demo included on disk limited in output. |
A powerful query and report generator and manager. Available on all FoxPro 2.x, 3.x and 5.x platforms, and several localized versions as well. Various licensing plans for integration into custom software (royalty-free), OEM and VAR relationships. Excellent code tal'>arn from as well. |
FoxSQZ Demo; $89/1 copy, $300 for "Professional" version with royalty-free distribution rights. Master Creative Software, Inc 1530 Palisade Avenue Suite 2D Fort Lee, NJ 07024 |
FoxPro/DOS, Win and VFP compatible libraries to create and retrieve archives within FoxPro. Sample demo forms included show off much of the functionality of the library. |
FTP control $35/$90 Mabry Software Post Office Box 31926 Seattle, WA 98103-1926 |
Simple Internet file transfer OCX. |
GenRepoX Freely distributable Markus MaX Egger http://ourworld.compuserve.com/homepages/eps_software/ |
dth:2.05in;border:solid windowtext .5pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
An innovative tool that extends native FoxPro reports much in the same way that GenScrnX and GenMenuX extended screens and menus. Allows on-the-fly, at runtime redefinition of reporting elements. |
GPLib Demo; $149 commercial MHSoftware 1006 W. 104th Avenue, #200 Northglenn, CO 80234 |
The library for developers deploying applications on Novell networks. Take advantage of Novell security features, queue management, TTS, drive mapping, and more. |
Help Angel Shareware Julian Ransom |
A utility to convert FoxPro DBF style help into RTF files suitable for compilation with the Help Compiler supplied with Visual FoxPro or FoxPro for Windows. Options include a variety of styles, ability to create popup topics. Does not yet support context-sensitive help based on the HelpContextID properties. |
OLE2View Available from Microsoft FTP site, as an "unsupported tool" ftp://ftp.microsoft.com/developr/UnSup-ed/OLE2VIEW.EXE Also available on MSDN CD-ROMs. |
A Microsoft-supplied tool for OLE "snooping." Reveals constants stored within most OLE controls, interfaces and parameters required. A real help in debugging differences between documented and actual OLE implementations. |
PaintShopPro 3.12 Shareware, $69 JASC, Inc. PO Box 44997 Eden Prairie, MN 55344 USA Orders: 1-800-622-2793 |
A tremendously powerful image editor. Capture options allow capture of individual screen objects. Good image manipulation tools for sharpening or "fuzzing" image, reducing bitplanes, batch conversions, TWAIN support, etc. |
PHDBase III Limited demo version $499.95 Korenthal Associates, Inc. 511 Ave. of the Americas, Suite 400 New York, NY 10011 USA GO KORENTHAL on CompuServe |
Transforms FoxPro into a full-text search database with phenomenal performance. |
Playground Object International 1720 Leigh Drive Raleigh NC 27603-5159 Shareware, $95 |
A tool for visualizing object models. Free for student/personal use (read the attached documentation for details) . A good "whiteboard" to use to start the analysis and design cycle. |
RegClean Microsoft Corporation http://www.microsoft.com/kb/softlib/mslfiles/Regcln.exe |
"Fixes" problems detected in Registry. Creates UnDo files that could be merged back into Registry to restore system. Good backups of the registry are encouraged before experimenting! |
Simple Little Old Builder (SLOB) Written by the late Tom Rettig Available on CompuServe, "Helpful Utilities" library of VFOX |
A handy utility and an elegant demonstration of how builders can be used to simplify the setting of multiple properties or the modification of multiple methods. |
SnagIt/32 Shareware, $39 TechSmith Corporation Available on CompuServe. |
Simple capture program with options to save to disk, clipboard, immediate print or e-mail. Adds itself to the "tray" of Win95. |
Stonefield Data Toolkit Demo; Commercial version $249 Stonefield Systems Group Inc. 2055 Albert Street, Suite 420 Regina, Saskatchewan Canada S4P 2T8 |
A DBCX-compatible tool to provide important extensions to VFP's Database Container: autosizing, creation of captions, easy indexing, rebuilding of tables at client sites, repair of damaged header files, and more. |
(3.0 version) (5.0) |
SuperClass Freely distributable Ken Levy |
The easiest way to insert superclass references (what DODEFAULT() was supposed to do) and view and edit superclass code. The 5.0 version adds a new "Object Line Syntax Builder." |
VBA Companion OCX Version, freely distributable Full OLE version, $99 APEX Software Corporation 4516 Henry Street Pittsburgh, PA 15213 1-800-858-APEX mailto:support@apexsc.com |
A great tool for "snooping" through exposed OLE interfaces. The products allow you to find undocumented PEMs, catch problems with interfaces in conflict with documentation and get troublesome OLE projects back on track. |
WinZip® 6.2 Shareware, $29 Niko Mak Computing, Inc. Post Office Box 919 Bristol, CT 06011 mailto:support@winzip.com |
Easy drag-and-drop creation and maintenance of ZIP files from within Windows. Also supports UNIX-standard TAR, gzip, UU-encoded files, BinHex files. 16- and 32-bit versions available. |
With Class MicroGold Software, Inc. 76 Linda Lane Edison, NJ 08820 |
A tool for forward and reverse engineering code and database structures, using most of the popular modeling languages. Does not (yet) generate VFP code, but the modeling tools are worth looking at. NOTE: This special demo version is limited to 30 classes and will expire in April of this year. |
Xcase v. 2.51 for VFP5 support Commercial Software, $399+ Resolution, Inc. Limited Working Demo included on disk. +972 2 534-5390 (Israel) http://www.xcase.co.il/ |
A tool which eases creation of Entity-Relation Diagrams (ERDs). Features include reverse-engineering of existing tables, creation and modification of existing tables, remote update of client schemas. A variety of editions are under development for support of Jet, Clipper and SQL tables in addition to the current FoxPro versions. |