About COE    Membership     Events & Education     Collaboration     Links & Resources
COE Newsnet - August 2002, issue 5
 
COE Feature
Inside COE
Technology Update
Tips and Techniques
Implementation Network
COE Forum Top 5
Academia News
Acting Locally
Industry Outlook

Archives

Contribute to Newsnet

About the Editor


Implementation Network

A Vision of the Future: Making the Most of Your Tools
Combining the Best of Various Components to Make Applications More Powerful and Easier to Use

By David A. Edson, M.Arch.
Director, bVisual Ltd.

The Old: Solitary Applications
I recall that at one point during my university days I was expected to complete the two most dreaded courses I ever undertook, chemistry and biology. I vividly remember struggling to maintain at least an appearance of consciousness while this very strange man in a white lab coat droned on about how "the mole is our friend." He was not talking about the wee garden pest but rather a measurement system, describing solutions of different chemicals and how their use in conjunction with each other had led to the world's greatest discoveries. However, in spite of my boredom I did take away one very important concept: the sum of the various constituent parts could, if properly applied, make a new whole that was much greater than the simple sum of the various parts. Regard then, if you will, that this same philosophy can be applied to software as it is used by the business enterprise.

You may have heard all of the marvelous marketing phrases at the many conferences you have attended in the recent past: "Digital Nervous System," "Digital DNA," "Component Architectures," "Distributed this" and "Rational that." What these are really attempting to describe is a sense of methodology and hierarchical structure as to how software is not only designed and developed, but deployed and utilized as well. Back in the Neolithic period of application development (DOS, text-based interface days) software developers wrote linear code; that is, code that ran from beginning to end in a singular huge monolithic body. Every application consisted of a single executable file, a "dot-e-x-e." The code launched, performed its logic, generated its on-screen data, saved that data to proprietary file formats, and then terminated. Numerous revolts, renaissances, and revolutions since, software is now written as a collection of discrete, reusable modules. Some of these modules "plug together" at compile time and form the core executable; some are held apart as run-time libraries, called only when needed. Still in all, these applications stood alone as their own bastion of data generation and repository. If the user created a spreadsheet of the corporate financials, those data remained in that spreadsheet's format. To share the data in any manner required one of two techniques: the data were re-entered into another application from a printed hard-copy output, or, if the application creating the data and the application requesting the data had by some stroke of luck the ability to read and write to a mutually agreed-on ASCII text-based format, they were properly delineated and formatted using the ASCII format as a data bridge.

The New: Applications as Building Blocks to Larger Solutions Many of today's applications have the ability to utilize automation interfaces to allow direct transfer of data between them. I am going to take a stand here. It is my opinion that the introduction of Visual Basic for Applications (VBA) is the single most important advance in computer technology in the past fifteen years. VBA has taken software development out of the hands of the C++ guru and brought it out to the corporate desktop, where the people who face the day-to-day challenges can utilize an easily understood language to create solutions to their own problems. However, simply having an automation interface available does not necessarily mean that it is being taken advantage of. Furthermore, simply dropping VBA into an application does not inherently mean that the application has the ability to properly share the data it creates. This requires that the developer of the software include a robust and intuitive object model. It is this object model exposed to an automation interface that brings the power to applications in today's business world.

If the software developer has done his or her job correctly, each application may be thought of as a component or building block, just as the application is composed of building blocks. These applications are then capable of being building blocks to larger and larger solutions. Take a look at Figure 1. Notice how there are effectively two tiers to the modern application structure. The application itself is composed of components, and the applications as the second tier also act as components in the greater enterprise-wide solution.

Gluing Your Components Together
Why is the component approach so critical? Each business enterprise must succeed or fail based upon its ability to remain profitable. Profitability is based on a very simple axiom: minimize expenditures while maximizing revenues. The creation of massive in-house or contracted enterprise-wide applications is inherently highly costly. The advantage is that the corporation obtains an application that accomplishes in excess of 80% of the specified functionality. Conversely, the purchase of off-the-shelf applications, each performing its own unique task as a separate island of data, is less expensive in initial buy-in but may accomplish only a limited percentage of the required functionality. The obvious solution is to gather the best-of-class applications from the entire spectrum of application areas, ensure that they are automation enabled, and then write the "glue" to bind the components together. This glue is Visual Basic for Applications, and the exposed object models of each best-of-class business application - Microsoft Word, Excel, Access, Outlook, CATIA, and FrontPage - make a solution that will bring the highest possible return on the investment and produce the maximum productivity for the business enterprise.

Putting the Component Approach into Practice
Presume that your daily job entails managing the leased office space in Chicago's Sears Tower. You are responsible for tracking the space leased by each of the building's tenants, coordinating the archival and retrieval of each tenant's lease contract, and overseeing the monthly billings for each of the leases as well as the overall and individual maintenance schedules for every leased space. It is of course possible to handle this entire operation by purchasing one database and spending a tidy sum in hiring a consultant to fully customize the database to handle all the requirements as well as to maintain the data, forms, tables, and queries associated with this database; however, this may not be the easiest thing to oversee and utilize. You could decide that a database is far too complex and attempt the same functionality in a spreadsheet. Spreadsheets may be a mystery to you and so you might attempt to handle the entire process via your favorite word processor. Quite obviously none of these less-than-elegant solutions will do. Always remember to utilize the proper tool to accomplish the task requirements.

Maximize the power of the database to track all of the lessee information: the names, addresses, telephone information, dollars per square foot paid for the leased space, billing period, and other financial information. Leverage the power of the graphics component to visually lay out and track the actual area for which each lessee has contracted. Merge the data from the database and the data behind the intelligent graphics to calculate the total period payment for the area of space leased and hand that off to the word processor to generate a clear, concise, and visually understandable and appealing billing--a billing that fully explains the fees and graphically confirms the contracted area. Pass the billing information over to a spreadsheet of all receivables to track all accounts and match this against all maintenance expenditures such that profit and loss can be easily evaluated.

Leveraging the best features of each component and binding them all together through the power of their object models and a quality automation controller such as VBA makes this scenario possible. As changes are made to the requirements for the enterprise-wide application, the individuals who perform these specific tasks can alter and enhance their own constituent parts at their own desktops.

You can contact Dave Edson at David_Edson@msn.com.

Interested in more information on integrating VBA into your products? You can hear more about it at the COE Fall 2002 Conference & TechniFair, which will be held September 29-October 2 in Tampa, Florida, where Dave Edson will present a general session on the topic.

If you're an ISV or corporate developer and are interested in finding out more about how to license VBA to integrate into your product(s), you can contact Summit Software, Microsoft's Authorized Agent for VBA. The following links will be helpful to you:

How to license VBA, the benefits of licensing, and more about the VBA Partner Program:
http://vba.summsoft.com/licensing%20VBA.htm

VBA Licensing Information Request form:
http://www.summsoft.com/vbaeval.asp

Product Support for VBA customers:
http://vba.summsoft.com/VBASupport/vbasupport.htm

VBA Customer Testimonials:
http://vba.summsoft.com/Customers/testimonials.htm

VBA Customer Success Stories:
http://vba.summsoft.com/VBASupport/SuccessStories.htm


Email This Page
401 North Michigan Avenue, Chicago, IL 60611-4267 | (312) 321-5153 | (800) COE-CALL (U.S.)