Approaching The Enterprise
- By Martin Nemzow
- July 20, 2001
A NOVICE VISUAL BASIC programmer, the venerable mainframe systems developer
and the battle-wearied project manager are walking through the parking lot on
the way to lunch when they stumble upon an odd-looking bottle. The programmer
picks it up, wipes away the grime and reads the label. Just then a Jinn appears
and offers to grant each of them one wish. The junior programmer asks for a
P7 system running Windows NT 5.0 with Microsoft's Visual Studio development
tool bundle, the InterDev Web development tool, SQL Server, Transaction Server
(which only runs under Windows NT), VB Enterprise Edition, Visual Modeler, ActiveX
controls and a new office with some real windows. The mainframe developer says
she wants to be surrounded with muscular men on the beach in Cannes. "And what's
your wish," asks the Genie to the manager. "That's all just fine," says the
project manager, "But I just want them back after lunch so I can chart progress
on their conversion of that late VB 4.0 project into VB 5.0!"
Visual Basic 5.0 and the Visual Studio bundle are not a joke. The Microsoft
tools are eminently suitable for strategic development for single-user application
development by one or more developers or for building networked and Internet
applications by large teams. Corporate desktop development is neither a joke
or an inexpensive undertaking. In fact, Computer Sciences Corp., a professional
services firm based in El Segundo, Calif., estimates that the average strategic
desktop and networked development project will cost $7.8 million.
Many of the third-party tools charted by Application Development Trends
more than a year ago (April 1996) have become irrelevant, and many of those
tool makers are now history. Microsoft addressed many of the VB shortcomings
acknowledged by those third parties directly in Visual Basic 5.0. And the Visual
Studio package unveiled early this year bundles C++, Java and tools for building
dynamic Web sites. VB 5.0 is a realistic enterprise and rapid application development
(RAD) solution for corporate I/S developers and software suppliers building
mission-critical grade applications for the desktop over a network and/or for
Web-based integration. While VB 5.0 is useful in building special desktop applications
for one or many users, the database features and Windows networking support
and tools make it applicable for anything written in the database environments
of Sybase Inc., Emeryville, Calif., Progress Software, Bedford, Mass., or Oracle
Corp., Redwood Shores, Calif.
Costs for strategic desktop projects
| Project Cost
||Percentage of Projects
| Up to 1$ Million
| $1 Million to $10 Million
| $11 Million to $50 Million
| $51 Million to $100 Million
| Over $100 Million
Source: Network Performance Institute
The Microsoft toolset competes favorably with C++, IBM's VisualAge, PowerBuilder
from Sybase and Delphi 3.0 from Borland International Inc., Scotts Valley, Calif.
VB 5.0 supports cross-platform development, only if the platforms are Windows
95 and Windows NT. VB 5.0 can create ActiveX controls, useful for Web site enhancements
or construction of a unified library of visual controls and process functions.
Support within compatibility boxes under Unix is unlikely; if heterogeneous environment
support is necessary, a number of tools provide conversion to Delphi, C or Java,
complete with ActiveX support. The use of ActiveX controls dooms any cross-platform
support to Windows 95 and Windows NT, although portable code can be created with
JavaBeans and pure Java libraries, including ODBC database support.
A quick overview of the new VB 5.0 development environment finds it better
than industry observers expected. But VB 5.0 is not perfect. In fact, for many
corporate development efforts today, VB 3.0 is a better choice. Migration from
existing 16-bit applications to 32-bit desktops and servers is not easy, even
with API migration, help libraries and code conversion wizards. Further, though
VB 5.0 represents several years of development and is very advanced in terms
of integrated tools, the toolset still requires supplemental tools and add-ins
for enterprise and network application development. The VB 5.0 Learning and
Professional Editions are good on a trial basis, but corporate developers will
need the Enterprise Edition, and probably several copies -- after all, the price
of each copy is minuscule compared to a $7.8 million project budget.
The Enterprise bundle provides workflow and advanced integration tools for
single-user, desktop, networked, Web site and data warehouse program development.
It includes the long-awaited compiler. The ad hoc profiler included with VB
4.0 is now the integrated Application Performance Profiler, and its source is
included in VB.
VB 5.0 puts a lot on the table. New VB developer toys include the built-in
Class Builder (similar to the ClassAssist package from Sheridan Software Systems
Inc., Melville, N.Y.), the Visual Data Manager (still not interactive), a Template
Manager (not part of the automatic installation process), a Wizard Manager to
create runtime wizards, Animation Control to build online help with silent AVI
files and a registration database for creating an association between a file
type and an application.
Group development-ware provides the necessary robustness for team projects.
New group development features include source code control, multiple and simultaneous
project support, improved object and properties inspection, a component database
and a new code and object repository.
This repository is an open database for recycling source code, object modules,
public functions, and also is the focus for process and database modeling with
such tools as Erwin from Logic Works Inc., Princeton, N.J. and Rational Rose
from Rational Software Corp., Santa Clara, Calif. Many suppliers are updating
their own design and modeling products to use this specification, an important
concern for team development on multitiered applications and for creating the
seamless development environment. (See "Development with
The object-oriented development model is pushed further in VB 5.0 -- a boon
for new programmers but a serious distraction for veteran coders because it
represents a level of design skills that preclude quick and dirty solutions.
A component called Visual Database Tools would be helpful, but is only included
in the Visual Studio bundle. Microsoft does note that the component can be purchased
separately by VB Enterprise Edition buyers.
Visual Database Tools contains five components, including Data View, Database
Designer, Query Designer and the Source Code Editor for stored SQL procedures,
functions, triggers and ODBC scripts. Although performance improvements with
the compiler reinforce early statements that comparisons of the runtime delivery
system with a compiled single-file executable was merely a packaging issue (and
hence compiled code does not really run faster), the compiler does resolve some
decompilation issues that have become critical for software suppliers.
Generally, VB 5.0 is an improvement over VB 4.0, but not over VB 3.0 in terms
of application speed and due to the new version's lack of 16-bit support. Customers
are loath to upgrade to Windows 95 and find it difficult to run Windows NT 3.51
on most laptops. NT 4.0 is too expensive and difficult to support.
VB 5.0 can support multiple databases on the enterprise, whether it runs on
the desktop, is ODBC-compliant, networked, Web or foreign. The tool is fast,
robust and reliable. The new ODBC-compliance provides most of the improvements
seen in client/server application development and compiler speed improvements;
in fact the same benefits can be achieved with older applications by linking
in the new (RDO, ADO and ODBC) database engines and recompiling under VB 3.0
or VB 4.0. The VB 5.0 distribution options for creating a runtime, .DLL, .OCX
(that is, ActiveX), and .EXE packaging prevent decompilation and source code
recovery. However, the compiled application, even in the .EXE format, does not
bypass the need to include one 1.3Mb runtime library, MSVBVM5.DLL; and all other
unusual components that must be delivered with the VB executable as with all
prior releases of VB. Installation is still a chore, best automated by a third-party
setup tool. (See "Distributing VB apps".) VB 5.0 includes
new support for multithreaded processing (so as to attract those C++ and Java
developers), a point not understood by many add-in developers because the add-ins
are frequently not reentrant, and hence are purely single-user or single-process
threads. That is understandable because the VB threading support is complex
and not clearly documented, particularly with reference to multitier client/server.
The latest version of Visual Basic certainly isn't perfect. As a matter of
fact, its shortcomings represent substantial technical, business, deployment
and support hurdles for many large organizations.
The major shortcoming in VB 5.0 is its inability to run on a 16-bit client
machine. The development environment requires substantial disk space, memory
and horsepower. Fortunately for VB users, the price of powerful systems, disk
drives and RAM dropped by 50% over the past year. However, the runtime system
also requires substantial overhauling to support the VB 5.0 enterprise. The
bite is not so much in the hardware upgrade, which can run up to $2000 per user,
but rather in the required migration to 32-bit Windows 95 or Windows NT. Some
organizations do not want to upgrade now and are looking to preserve investments
in 16-bit applications and VBX and support tools. While VB 4.0 supported both
an upgraded 16-bit VB 3.0 development environment and a 16-bit deployment with
mixed VBX and OCX components, that version is inferior to VB 3.0 in terms of
user satisfaction and performance.
VB and Windows release compatibility
| VB 3.0 (VBX)
| VB 4.0 16-bit (VBX)
| VB 4.0 32-bit (OCX)
| VB 5.0 32-bit (ActiveX)
Source: Network Performance Institute
I/S managers used to define cross-platform development as support for multi-vendor,
multi-operating system, multi-database environments that could include MS DOS,
Windows, OS/2, MVS, VMS, the various versions of Unix, CICS, DB2 and other hosts.
According to Microsoft, cross-platform now means Windows 3.x with VBX and 16-bit
OCX support, Windows 95, Windows NT 3.51 and Windows NT 4.0. It also means mixed
development with VB 3.0, VB 4.0, VB 5.0, VBscript, J++, C++, Delphi, Optima,
VBXs, OCXs, DLLs and desktop applications. (See "Third-party
Such a mixed Microsoft platform set represents incompatible file systems,
and differences in protocols and macros. Additionally, creation of ActiveX applets,
controls and functions for an Internet site requires Internet Explorer 3.0 and
greater. Netscape Navigator, 2.02 or 3.01 cannot be used because it cannot accept
ActiveX components. If a Web site is enabled with ActiveX controls developed
under VB 5.0, first time surfers will automatically download the 1.3Mb runtime
MSVBVM5.DLL, (which takes 24 minutes at 14,400 bps) assuming the TCP/IP connection
actually supports that throughput.
VB 5.0 applications are also limited by the lack of full internationalization
features in Windows 95 and Windows NT. Although versions of Windows are available
in various languages, cultural differences and business habits are not fully
supported. Since many special applications are financial and database-driven,
this irritating pearl can haunt many multinational companies.
Few corporate users care if applications are built using VB, Delphi, VisualAge
or another tool. Users only want an application to work as advertised, to continue
to work and to provide robustness for future upgrading. VB 3.0 and VB 4.0 show
that upgrading and continued support is certain.
On the positive side, VB 5.0 and, the related Visual Studio development environments,
are leveled so that VB can be used for desktop applications, network solutions,
Web site integration, animated and advanced data warehousing integration, online
commerce and sophisticated workflow solutions. Additionally, the leveled development
environment has hooks for Visual C++ and Visual J++, as well as the coding and
management tools for SQL Server, Internet Information Server, Proxy Server,
Exchange Server, Merchant Server and other networked business services forthcoming.
While object support for methods, encapsulation and Active control creation
provides technical excitement for thrill-seekers, I/S managers should recognize
the importance in industrial development of stability, credibility and just
completing projects. After a few weeks of a VB project, the burden is firmly
on making progress and debugging; the initial thrill will erode. Almost any
imaginable need can be addressed with native VB code, built with ActiveX controls,
or enhanced with add-ins. What will be remembered next year is whether VB was
used and it worked. And VB should work.
No Windows 3.1 support
VB 5.0 means Windows 95 or Windows NT, not Windows 3.x, on the desktop. It
is a hurdle for corporate development and software suppliers building shrink-wrapped
products. The platform migration and early adoption of new technology is, according
to Dan Kusnetzky, Director of Client and Server Operating Environments at International
Data Corp., a Framingham, Mass.-based research firm, shifting to the consumer.
IDC research found that 62.9% of desktop systems run Windows 95, most of which
ran on hardware for home users. While desktop OS shipments grew 12% to 74.8
million units in 1996, IDC research found that corporate reliance on 16-bit
Windows is not declining rapidly. Despite application and stability problems
in Windows 3.x, "developers have crafted functional workarounds," Kusnetzky
said. "These 16-bit applications are producing results." Kusnetzky also stated
that the benefits with a Windows 95 or Windows NT migration -- and the resulting
cascade required for desktop applications, training, support, and reprogramming
-- may not pass the standard business justification test. (See "Beware
of VB reality".)
The IDC research did find that the significant growth in Unix servers, perhaps
showing that 32-bit applications and services are important, but not at the
corporate desktop -- hence, the continued rapid growth in 32-bit server-side
automation. While these statistics do not undermine the importance of Visual
Basic 5.0 and 32-bit application deployment, they certainly undetermine desktop
migration and the business need for new technologies. With two- and three-year
development cycles and one- to two-year performance analysis timeframes, many
organizations are still digesting the impact of the first installation of networked
The technology to push forward from old results takes time, at best an incremental
change. While music is still (mostly) played in the same 8-key/12-tone octave
even with new technologies and new types of synthesizers, the same cannot be
said of Visual Basic, InterDev and the IDE of Visual Studio. The network, host,
Internet and existing network and server operation systems do play their music
in the different key/tone scale of 32-bit. The move to 32-bit desktop applications
is inevitable because many software suppliers are phasing out support for 16-bit
products in favor of 32-bit systems for reasons that include lack of income
from building and supporting 16-bit products, inability to easily build more
advanced and desirable 16-bit products, and the building of corporate market
acceptance of Windows NT. Inevitable means "sometime in the future" just as
the inevitable replacement of still-running Cobol applications from 1963 means
most of these applications will be rebuilt for Y2K support before they are finally
replaced. Similarly, 16-bit VB 3.0 applications are not dead yet; they can still
activate 32-bit server-side VB 5.0 functions. VB 3.0 retains an edge for 16-bit
user-side applications over C, Delphi and PowerBuilder.
The ramifications for such mixed environments transcend VB programming. The
implication for Visual Basic 5.0 and Visual Studio is not that it is better
or more suitable than Cobol, VB 4.0, VB 3.0, C++, Java and anything, but that
the new systems are a culmination and accretive build-up of experience, workflow
changes and business needs. Some VB development issues also revolve around platform.
There is no special differentiation between an I386 and a SuperPentium chip;
for that matter, a Pentium is not much different from 6502 in the first Apple
II and Z-80 in CP/M. Each CPU does the same thing with different speeds and
different degrees of parallelism. Visual Basic won't run on an Apple II, on
OS/2, or Unix, and yields different performance characteristics on different
x86-series processors. That matters.
The new software increases software support costs slightly and potentially
raises the costs for distributing applications to users when "basic components"
mean Office, Back Office and special shrink-wrapped software. More to the point,
the issue and risk increases as integration becomes more of a design and development
problem than coding. Frequently, one or two lines of Visual Basic code or VBA
scripting replaces an entire module or even a standalone application. On one
hand, those one or two lines of code might require less than an hour of development
and debugging time. On the other hand, the ties to three or four ActiveX modules,
a few Java applets or Web site enhancements for dynamic content, and a couple
of standard desktop applications likely create integration ordeals and long-term
stability and support concerns.
The convictions presented in last year's VB feature still apply. For example,
when using VB as a front end to host DB2, CICS or a client/server SQL database,
development management and integration remains absolutely critical. (See "Error
handling".) More than just the Microsoft Enterprise Edition of Visual Basic
is needed for successful implementation. This is not just about the slam-bang
client/server tools either. Supplemental tools such as database schema designers,
workflow modeling tools, project management organizers, design and presentation
workbenches, third-party controls and utilities increase the odds of successfully
negotiating the many traps during the application development cycle and during
actual rollout -- assuming good strategy, design and controls. A few tools,
such as Data Director from CenterView Software, San Francisco, or Integra from
Integra Software, Lyden, Wash., enhance the client/server development process
and production environment with ready-made templates and native (hence faster)
SQL or ODBC drivers.
A serious undertaking
The profound message is that VB development is a difficult undertaking, a
serious effort and not a game. VB is not a simple development language, nor
is it easier to use than Cobol. While it is easier to develop Windows applications
in VB than it is with C or C++ and the MFC libraries, a VB project (particularly
one with multiple developers or a multitier structure) represents a full-blown
development task. Technical know how will make or break a project, but technical
know how and coding may account for only 10% of the time and resources of a
The financial, strategic or workflow reasons for building an application must
involve users, developers and calls for a firm grasp on technical feasibilities
and limitations. VB 5.0/VB 3.0 likely will not become one of the 40% of "mission-critical"
reengineering efforts that are abandoned before completion if limits are set,
benchmarks taken and mid-stream milestones completed to mate the business, financial
and the technical requirements.
VB is best used as a powerful design and prototyping environment (it is as
fast as most prototyping tools) for unique applications, for creating the glue
between other desktop applications and components, or for creating workflow
solutions not available with other shrink-wrapped or commercial packages. This
often means process reengineering and business workflow redesign, or the integration
of financial information with images, CAD, customer tracking databases, speech
recognition, phone or fax services, and Internet delivery. This does not mean
tabbed dialog boxes, online help, balloon help and the rest of the stock and
trade in VB component add-ins; it does mean some wilder user interface, multimedia,
integration tools or collaborative conferencing features. Here are some tools
that add-in to VB that are indeed new and different.
Mean upgrade times for
VB applications (in days)
Source: Network Performance Institute
User interface issues:
- Hyperbolic lists and perspective walls
- Dynamic cubes
- Hierarchical list boxes
- Geographic mapping
- Bound data access
- remote conferencing
- Dynamic Internet
- Data warehousing
- Active server pages
- Process flow
- Mixed information integration
- Integration of diverse services
- Visio with other desktop applications
- OLE server automation
- Intelligence-enabled applications
- Artificial intelligence
- Neural network decision making
- Rule-driven applications
Creating "fancy" or ostentatious displays may initially make an application
more attractive, but in the end the look and feel must somehow improve the overall
operability of the program. A number of tools create futuristic (at this point)
kiosk-like applications, imbed images or backgrounds into the forms or provide
different controls. One of the more durable interface controls is Sheridan's
Active Threed; some new offerings include SuiteFace [Rivet Software, Atlanta]
and Adorn 3D [SandStone Technology Carlsbad, Calif.]. These controls are not
good in and of themselves unless they provide realistic improvements to the
accuracy of data entry, data analysis by users or make it more intuitive to
use the product. For example, there are libraries that support viewing AutoCAD
or map data that is useful for resource management, such as oil-well logging,
tracking mobile trucks, plotting nearest location between warehouse and customer.
Design can have a profound effect on suitability, performance and reliability.
Although Visual Voice centralizes function calls and database access through
a single instance of its software, this methodology is equally appropriate for
multitier applications and data-intensive ones such as data warehousing. However,
this is a design-time issue, not something that can be fixed during the development
cycle when performance becomes a problem.
Performance problems are even worse when an application has passed functional
tests and is rolled out to users and, at that time, reveals fundamental scale
problems. It is very difficult to consolidate out-of-process delays and salvage
the application. Even recoding portions of the VB code to C++ is unlikely to
Nice things to know
Some loose ends not documented or covered in articles about VB 5.0 follow:
- There is a native Risc edition for Windows NT-based Alpha workstation (with
Win NT 3.51, Win NT 4.0, Win NT 5.0) that provides better performance than
the Intel compilations.
- Application, network and Web site security, even when using VB instead of
the patently insecure Java, is still dependent on basic network security.
- Development environments need user-level passwords -- users should not have
an open environment. Things can get out of hand quickly.
- Visual InterDev includes some interesting applications that would represent
major offerings from other ISVs, but they are included almost as afterthoughts.
Examples include Image Composer, Media Manager and Music Producer.
- BackOffice has limited debugging servers, although Microsoft promises a
new debugging facility for active server pages in the next iteration of IIS.
- Most versions of VB (and Visual Studio) include an advertising supplement
called Component Objects and Companion Products for Visual Basic. This ostentatiously
named booklet contains information from some of the better financed VB tool
companies. There are over 150 pages of products (about 326 products) in the
catalog. Many more promote themselves on the Internet or with thumbnail-sized
ads in the back of trade magazines.