In-Depth

Approaching The Enterprise

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 17%
$1 Million to $10 Million 48%
$11 Million to $50 Million 26%
$51 Million to $100 Million 4%
Over $100 Million 4%

Table 1
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

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 metatools".)

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.

Shortcomings

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
OS Win3.0 Win3.1 Win3.11 Win3.12 Win32s Win95 NT3.51 S/W NT4.0 S/W
VB 3.0 (VBX) Yes Yes Yes Yes Yes Yes Yes Yes
VB 4.0 16-bit (VBX) No No Yes Yes Yes Yes Yes Yes
VB 4.0 32-bit (OCX) No No No No No Yes Yes Yes
VB 5.0 32-bit (ActiveX) No No No No No Yes Yes Yes

Table 2

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 VB developers")

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 personal computers.

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 successful project.

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)
# Components Mean Variability
Low High
1 548 438 110
2 274 219 27
3 183 146 12
4 137 110 7
5 110 88 4
6 91 73 3
7 78 63 2
8 68 55 2
9 61 49 1
10 55 44 1
11 50 40 1
12 46 37 1
13 42 34 1
14 39 31 1
15 37 29 0
16 34 27 0
17 32 26 0
18 30 24 0
19 29 23 0
20 27 22 0
21 26 21 0
22 25 20 0
23 24 19 0
24 23 18 0
25 22 18 0
26 21 17 0
27 20 16 0
28 20 16 0

Table 3

Source: Network Performance Institute

User interface issues:

  • Hyperbolic lists and perspective walls
  • Dynamic cubes
  • Hierarchical list boxes
  • Geographic mapping
  • Bound data access

Multimedia applications:

  • Sound
  • Images
  • Video

Groupware:

  • E-mail
  • Workflow
  • videoconferencing
  • remote conferencing
  • Facsimile

Workflow solutions:

  • Dynamic Internet
  • Data warehousing
  • Active server pages
  • Graphics
  • Process flow
  • Mixed information integration
  • Integration of diverse services
  • Visio with other desktop applications
  • OLE server automation
  • Information
  • 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 affect performance.

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.