Intelligent Applications With MapObjects
by Mark Pearson, Principal
Who really cares what GIS is? Obviously we as GIS professionals care, but if you talk to people in mainstream corporations or many governmental agencies, you find these people aren't interested in GIS. What they are interested in is ready access to information that will allow them to work faster, more intelligently, and more efficiently. More than ever before, desktop GIS applications, especially MapObjects-based applications, are the tools that make people in a wide variety of occupations more productive.
Products such as MapObjects and MapObjects Internet Map Server (IMS) represent the next great advance in GIS on the desktop. Predictions of "GIS for the masses" can now be realized. While GIS applications are nothing new, the difference is that lightweight inexpensive desktop applications can be easily written for use throughout an organization. Perhaps most importantly, these applications can be developed in a manner that shields the casual user from needing to know GIS terminology and concepts.
GeoNorth, Inc., has been developing computer applications, including GIS applications, for years. The MapObjects applications GeoNorth has developed have generated more excitement among users and managers than any other type of application work. Why? There are several reasons.
First, MapObjects applications help users retrieve information quickly in a graphical manner that is easy to comprehend. Second, these types of applications make heroes of our clients because the application and data can be delivered to a larger audience to make maximum use of the significant investments organizations have made in GIS technology and data. Last, applications can be designed to let the end user perform incredibly complex GIS tasks without requiring the user to know even the fundamentals of GIS technology or terminology.
With all of the tremendous advances from this technology resulting in easier, faster, and more cost-effective applications, there must be a downside, right? Well, sort of. In designing and implementing MapObjects applications, there are a number of technical issues that must be considered and addressed. The next section will address issues and point out pitfalls to avoid when developing MapObjects applications. Most of these issues are not unique to MapObjects--they are relevant to developing any modern Windows application.
Buddy! Want a Nice App?
With inexperienced and/or untrained programmers hacking code for your project, all of the usual and predictable problems arise: uncommented code, branching and looping problems, inconsistent or undecipherable variable names, inadequate error handling, and all manner of bizarre methods. Suppose you gave two million people a pencil and instructed them to draw a picture. The result would be quite a bit of forgettable and possibly strange scratching with occasionally some very creative and effective work. This holds true in the programming world as well.
As a general rule most people need training in order to become effective programmers. While this statement might cause many programmers to bristle, we find that without a good and thorough foundation, many undesirable and less than optimal programming traits tend to surface. A running program is not necessarily a good program. Confusing spaghetti code, poor error handling, nonstandard user interfaces, and other less obvious inefficiencies can create long-term maintenance headaches.
Make sure that you or your staff have some basic training and experience before starting on any serious application development. Programming is an art and science: even with training, some very intelligent people just do not have the aptitude to be good programmers.
Professional consultants and programmers are available to help develop quality applications. These professionals can provide a spectrum of services from help with specific tasks to turnkey solutions. Often consultants can be instrumental in building expertise within an organization quickly while helping to keep projects on schedule.
There are other things to consider when deciding if your application is to be developed by your staff or with the help of a consultant. The pros and cons of each approach include cost, personnel availability, project support, and the level of complexity required for the application. Managers often overlook the real cost of their staff when comparing it to the hourly cost of a consultant. Often professional developers can produce an application in a fraction of the time required by an inexperienced in-house developer who must often divide time between application development and other job duties.
Virtues of Prototyping
and Data Maintenance Considerations
Data handling is equally important. Data that will be used on a query only basis by the application should be identified, as well as data that will be maintained from within the application. Often it is not possible for the application to access live data from other sources due to network connectivity or preprocessing requirements. For example, an organization might store GIS data in ArcInfo map libraries. For security reasons or performance considerations a mirrored data set might need to be created using shapefiles. Determine how and when the mirrored data will be refreshed after deployment, and who will perform the refreshes.
Creating indexes is another often overlooked aspect of application planning. Applications that use large data sets need indexes for both attribute data and graphical data to perform at optimal speed. A method to refresh each index in the event that the data changes must also be engineered.
Fortunately, some great tools are available for creating installation programs. Tools such as InstallShield and Visual Basic's Application Setup Wizard take much of the pain out of creating installation routines. Even with these tools, it is often necessary to get "under the hood" in order to solve problems. We have had some particularly onerous problems occur due to versioning of components. For example, when Microsoft released a new version of Office, its installation program installed some newer versions of basic Windows DLLs that caused our programs to stop working. In order to find and fix these types of problems, it is often necessary to become intimate with many of the support DLLs and files that you had been able to conveniently ignore in the past.
Planning Your Application Today
GeoNorth, with offices in Anchorage, Alaska and Portland, Oregon, deployed the first MapObjects application and the first Web site implementing . They have developed many MapObjects applications in use throughout the United States and abroad.