Microsoft's first attempt at a tools suite that includes all its development tools
Visual Studio 97 (VS97) is Microsoft's first attempt at
creating a tools suite that includes Microsoft's individual development tools. Just as sales of Microsoft Office have
eclipsed those of its individual applications (e.g., Word and Excel), Microsoft expects Visual Studio to eventually have
the majority share of the company's tools business. To help bring that development about, Microsoft is pricing VS97 very
aggressively: Any developer with several individual tools will find upgrading to VS97 expedient and cost-effective.
Like the individual development tools, VS97 comes in both a Professional and an Enterprise edition. Table 1 lists
the major component products. Of course, each component product includes several tools and add-ons. In some cases, this
compilation of tools results in overlap. For instance, the Enterprise Edition of both Visual C++ 5.0 (VC++5) and Visual
Basic 5.0 (VB5) ship with Microsoft Transaction Server (MTS) 1.0, and VB5 Enterprise Edition includes Visual SourceSafe
5.0. In other cases, the effect is a bewildering array of options, such as the many different methods for accessing
back-end data via Open Database Connectivity (ODBC). Those who aren't already familiar with all the products in VS97
need to be aware that two tools--SQL Server and MTS--are Windows NT-specific and will not run under Windows 95.
Historically, multitool projects often took the form of a VB front end using third-party components to access a
remote database. Today's typical Web applications, however, use a larger and more diverse set of tools. In a full-featured Web application, the client browser uses scripting, ActiveX controls, Java applets, and in-place-activated
ActiveX documents (using both commercial servers and servers created in-house). The server also uses scripting and
several component object model (COM)-based object servers, which MTS manages. These server components access back-end
data using Active Data Objects. ADO encapsulates ODBC (and in the future, Object Linking and Embedding Database--OLEDB)
data sources. On the client, you can use both VB and VC++ to create ActiveX controls and ActiveX documents. On the
server, you can use VB5, VC++5, and Visual J++ 1.1 (VJ++1.1--and, for that matter, Visual FoxPro 5.0--VFP5) to create
components. On both the client and the server, you can script in either VBScript or JavaScript.
Several tools in VS97--VC++5, VJ++1.1, Visual InterDev (VI), and Microsoft Developer Network (MSDN)--share the same
IDE, Microsoft Developer Studio (DevStudio). Microsoft's tools suite packaging starts to really make sense in this
environment. Screen 1, page 165, shows the tools' common look and feel. And because the latest version of DevStudio can
contain several projects simultaneously, you can develop and debug in one workspace that hosts several projects
built with different tools. Screen 2 shows that each workspace can contain a variety of project types; Screen 3
illustrates the files that make up one of the projects. Microsoft has also enhanced the DevStudio environment to include
an exposed object model with integrated macro-language support in VBScript; this enhancement gives developers and independent software vendors complete programmatic control over the DevStudio environment.
Because everything coming out of Microsoft these days has to have some form of Web connectivity, DevStudio also
provides several hyperlinks to Microsoft's Web site on the Help menu and built-in support for rendering HTML.
Actually, you don't have to upgrade to VS97 to work with multiple tools in a single workspace; tools hosted in
DevStudio automatically have this capability. In fact, besides the features of its component products, VS97 as a product
has little that's unique. One unique feature is a specially tailored version of MSDN that hosts the product
documentation on one CD-ROM. The only other unique feature is a fairly comprehensive sample corporate benefits
application that uses VB, VC++, VJ++, and client and server scripting.
Installation
Although an individual developer is unlikely to install all the VS97 products, a complete installation that includes
all options could require as much as 1GB of disk space. A more typical installation is three or four products, which
might consume 300MB to 400MB. Of course, VS97 shares some components (such as the development environment), but the
individual product files, particularly the documentation, tend to dwarf the shared components.
The product documentation in VS97 takes three forms: the traditional Windows WinHelp files, the InfoViewer
files used in Books Online documentation and in products such as MSDN, and resources available on the Web. The special
version of MSDN that ships with VS97 includes the Books Online for all the applications and uses more than 300MB (not
including some of the product documentation, such as VB5's). Typically MSDN offers a minimum installation option that
lets you read the books from the CD-ROM.
The latest version of InfoViewer can now handle both regular and compressed HTML, so Microsoft is moving toward a
system where updates available on the Web can refresh local documentation. Because you currently cannot merge these new
documentation files with the old ones, in VS97 you must either replace the documentation completely (a potentially
lengthy download) or add the new files as separate resources.
Products
Grasping the scope of VS97's many components can be difficult. Because the introduction of VS97 coincided with the
release of new versions of most of its constituent products, product marketing materials with detailed feature
descriptions have undoubtedly flooded your mailbox. Rather than give you tables of bulleted feature lists, I'll discuss
each tool briefly, highlighting the major features that affect Internet development.
Visual Basic 5.0. VB5 is the latest version of Microsoft's popular tool for rapid applications
development and thus is one of the cornerstone products in VS97. Version 5.0 has the substantially new and improved IDE
shown in Screen 4 with many of the features of DevStudio (such as the ability to host multiple projects). But,
unfortunately, VB5 is not integrated into DevStudio.
VB5's new native code compilation capability will probably generate the most press. But also new in VB5 is the
ability to create ActiveX controls and Active document server applications. In addition, VB5 ships with several
controls, such as the Internet Transfer control and WinSock control, that will make building applications that take
advantage of Internet-based technologies much easier. VB5 also has several under-the-hood language improvements. Of
these, my favorite is the new AddressOf operator, which you can use to furnish procedure addresses to external DLL
functions that require traditional callback addresses. VB5 also lets you use the WithEvents keyword to raise events and
catch them.
The Enterprise Edition of VB5 also includes several major new features: the Application Performance Explorer, a
database Connection Designer, an interactive debugger for Transact-SQL (T-SQL), and the new Repository for managing
projects. Although VB doesn't (yet) let developers manually create new threads in their applications, the Enterprise
Edition lets components without any user interface create object thread pools and effectively gain the
advantages of multithreading.
Compared with previous versions, VB5 is very complex. To deal with the increased complexity of the language and the
large number of project types now available, Microsoft includes several wizards for generating starting frameworks for
each component type. Unfortunately, these are write-once wizards that give almost no guidance and merely automate the
process by creating myriad, somewhat obscure procedure prototypes.