Visual Studio 97

Is Microsoft's first stab at integraing its developer-oriented products a bona fide tools suite or a collection of products that are on speaking terms?

Michael Otey

April 30, 1997

12 Min Read
ITPro Today logo

Microsoft's first attempt at a tools suite that includes all its development tools

Visual Studio 97 (VS97) is Microsoft's first attempt atcreating a tools suite that includes Microsoft's individual development tools. Just as sales of Microsoft Office haveeclipsed those of its individual applications (e.g., Word and Excel), Microsoft expects Visual Studio to eventually havethe majority share of the company's tools business. To help bring that development about, Microsoft is pricing VS97 veryaggressively: 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 liststhe major component products. Of course, each component product includes several tools and add-ons. In some cases, thiscompilation of tools results in overlap. For instance, the Enterprise Edition of both Visual C++ 5.0 (VC++5) and VisualBasic 5.0 (VB5) ship with Microsoft Transaction Server (MTS) 1.0, and VB5 Enterprise Edition includes Visual SourceSafe5.0. In other cases, the effect is a bewildering array of options, such as the many different methods for accessingback-end data via Open Database Connectivity (ODBC). Those who aren't already familiar with all the products in VS97need 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 aremote 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-activatedActiveX documents (using both commercial servers and servers created in-house). The server also uses scripting andseveral component object model (COM)-based object servers, which MTS manages. These server components access back-enddata 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 theserver, you can use VB5, VC++5, and Visual J++ 1.1 (VJ++1.1--and, for that matter, Visual FoxPro 5.0--VFP5) to createcomponents. 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 sameIDE, Microsoft Developer Studio (DevStudio). Microsoft's tools suite packaging starts to really make sense in thisenvironment. Screen 1, page 165, shows the tools' common look and feel. And because the latest version of DevStudio cancontain several projects simultaneously, you can develop and debug in one workspace that hosts several projectsbuilt with different tools. Screen 2 shows that each workspace can contain a variety of project types; Screen 3illustrates the files that make up one of the projects. Microsoft has also enhanced the DevStudio environment to includean 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 alsoprovides 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 inDevStudio automatically have this capability. In fact, besides the features of its component products, VS97 as a producthas little that's unique. One unique feature is a specially tailored version of MSDN that hosts the productdocumentation on one CD-ROM. The only other unique feature is a fairly comprehensive sample corporate benefitsapplication 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 includesall options could require as much as 1GB of disk space. A more typical installation is three or four products, whichmight consume 300MB to 400MB. Of course, VS97 shares some components (such as the development environment), but theindividual 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 InfoViewerfiles used in Books Online documentation and in products such as MSDN, and resources available on the Web. The specialversion of MSDN that ships with VS97 includes the Books Online for all the applications and uses more than 300MB (notincluding some of the product documentation, such as VB5's). Typically MSDN offers a minimum installation option thatlets 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 asystem where updates available on the Web can refresh local documentation. Because you currently cannot merge these newdocumentation files with the old ones, in VS97 you must either replace the documentation completely (a potentiallylengthy 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 therelease of new versions of most of its constituent products, product marketing materials with detailed featuredescriptions have undoubtedly flooded your mailbox. Rather than give you tables of bulleted feature lists, I'll discusseach 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 applicationsdevelopment and thus is one of the cornerstone products in VS97. Version 5.0 has the substantially new and improved IDEshown 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 theability to create ActiveX controls and Active document server applications. In addition, VB5 ships with severalcontrols, such as the Internet Transfer control and WinSock control, that will make building applications that takeadvantage of Internet-based technologies much easier. VB5 also has several under-the-hood language improvements. Ofthese, my favorite is the new AddressOf operator, which you can use to furnish procedure addresses to external DLLfunctions that require traditional callback addresses. VB5 also lets you use the WithEvents keyword to raise events andcatch them.

The Enterprise Edition of VB5 also includes several major new features: the Application Performance Explorer, adatabase Connection Designer, an interactive debugger for Transact-SQL (T-SQL), and the new Repository for managingprojects. Although VB doesn't (yet) let developers manually create new threads in their applications, the EnterpriseEdition lets components without any user interface create object thread pools and effectively gain theadvantages of multithreading.

Compared with previous versions, VB5 is very complex. To deal with the increased complexity of the language and thelarge number of project types now available, Microsoft includes several wizards for generating starting frameworks foreach component type. Unfortunately, these are write-once wizards that give almost no guidance and merely automate theprocess by creating myriad, somewhat obscure procedure prototypes.

Visual C++ 5.0. VC++5 is another foundation tool in VS97. In addition to the expected language andlibrary enhancements, VC++5 includes a repackaged Microsoft Foundation Classes and Templates (MFC&T), which combineslegacy MFC with what Microsoft calls the Active Template Library (ATL). New MFCs support several important Internettechnologies: asynchronous (URL) monikers, Active Documents, and the Win32 Internet API (WinInet). MFC now alsosupports Data Access Objects (DAO) 3.5 and offers updated support for ODBC 3.0. Microsoft created ATL to supportdeveloping small components such as ActiveX controls and Active Server components, where the relatively large overheadof MFC was inappropriate. After all, Microsoft designed MFC to support full-scale applications and not discrete applets.ATL includes support for windowless controls and optimized painting, and you can download and instantiate componentsthat use ATL instead of MFC much faster.

VC++5 also features compiler support for COM, DAO, and OLEDB software developer kits. The VC++5 EnterpriseEdition includes the same MTS that ships with the Enterprise Edition of VB, and VC++5 contains several database tools,such as an interactive debugger for T-SQL and a DataView utility for creating database diagrams to manage databasesgraphically (Screen 5, page 167, shows DataView).

Visual J++ 1.1. VJ++1.1 is the other major language development tool in VS97. Sun Microsystems hascertified Microsoft's version of Java, the de facto industry standard for Internet development, as 100 percent Javacompatible. The applets and applications VJ++1.1 produces run on all platforms and under all Java-enabled browsers.Screen 6 shows that DevStudio fully hosts VJ++. VJ++ compiles quickly (10,000 lines per second is a widely quotednumber) in DevStudio, and DevStudio lets you debug many Java applications at the same time, either in a browser or atthe byte code level.

Of course, Microsoft couldn't help but add support for COM-based ActiveX interfaces, native Win32 API calls, andsubstantial data access capabilities. Support for COM is particularly important, because COM integrates Javaapplications with other components. COM also lets Java applications run on the server side and lets MTS manage them. COMprovides the interface for VJ++1.1 to access enterprise ODBC data sources through three mechanisms: Remote Data Objects(RDO), DAO, and the new ADO that ships with version 3.0 of Microsoft's Internet Information Server (IIS). BecauseMicrosoft ships an ODBC driver for Microsoft Access databases and DAO works with Access databases directly, you can alsouse VJ++1.1 on client machines and departmental servers to access workgroup data. The use of this functionality is, ofcourse, optional: Although using these platform-specific features will break strict Java compatibility, Microsoftobviously is hoping to entice Web developers to focus on Windows.

Visual FoxPro 5.0. VFP5 is definitely an odd component of the package: Developers are unlikely touse VFP for any serious new development, particularly anything to do with the Internet. VFP5--like VB5--has its own IDE(shown in Screen 7) and is not integrated into DevStudio. Although VFP doesn't offer much Internet technology support,it has some useful features for developers, such as class inheritance, a basic object-orientation facility sorelylacking in VB5. VFP5 is also well integrated with Microsoft's ActiveX technologies, hosting ActiveX controls and lettingdevelopers create both ActiveX automation controllers and servers. This integration makes it possible, forinstance, to create server-side components such as the sample Internet Server API (ISAPI) DLL that ships with VFP5.Also, VFP5 (and thus VS97) includes a rudimentary bug-tracking tool, the Anomaly Tracking System (ATS). Written entirelyin VFP, the ATS is somewhat rudimentary, and as Screen 8 shows, it has an unfriendly user interface; but some developersmight find ATS useful. Finally, though most developers probably associate VFP with xBase databases, VFP5 goes beyondthat limited format by including new features (such as Views and upsizing wizards) to make it easier to develop smalldatabases and deploy them into enterprise databases that use, for instance, Oracle and SQL Server.

Visual InterDev 1.0. VI (formerly Internet Studio and, even earlier, Blackbird) is a toolkit in itsown right. Developers can use VI primarily for building Web client- and server-side pages. On the client, pagestypically include complex HTML layouts; on the server, pages usually contain scripting code as part of a server-sideapplication. The HTML layout capabilities in VI improve the ActiveX Control Pad tool that Microsoft released withInternet Explorer (IE) 3.0. Though both methods use the same underlying HTML layout control, VI provides better editingsupport and an ActiveX control editor for easily changing the properties of ActiveX controls embedded on Web pages. Thepages reside in virtual roots--representing projects--on an IIS Web server running the FrontPage Server Extensions.Because DevStudio hosts VI, VI can take advantage of InfoView's built-in ability to show the HTML code and the resultingWeb page (Screen 9 shows this capability).

You can use several other tools in VI separately: the DataView project window described above in the section onVC++, an ODBC query designer, an ODBC updatable browser, a database designer for SQL Server 6.5 and later, and two toolsfor writing and debugging stored procedures.

VI contains three more tools for working with multimedia content:

*Image Composer 1.0 for manipulating images, color tables, and format conversions and for generating animated GIFs

*Music Producer 1.0 for automatically generating MIDI sound files for people to use on their Web pages (this is onetool I hope doesn't catch on!)

*Media Manager 1.0 for finding and managing media files in a variety of formats

Microsoft Transaction Server 1.0. MTS, code-named Viper, packages server-side components intoapplications and automatically handles such processes as threading, scaling, and transaction monitoring. Fundamentally,MTS provides the execution environment for groups of object servers, which hook together with documented (in typelibraries, that is) COM interfaces. MTS requires an OLEDB data source to record data transactions. The first availableOLEDB data source is for SQL Server, which isn't surprising, given that the first release of this technology was thedistributed transaction coordinator (DTC) that shipped with SQL Server 6.5.

Other than using defined MTS programmatic interfaces or the MTS Explorer (shown in Screen 10, page 169) to set upand administer application packages, Microsoft has chosen to hide much about how the component works. Instead,developers and administrators are supposed to treat MTS like a black box and take its operation on faith.

Better Integration to Come
VS97 includes everything developers need to build distributed Web applications, including client and serverscripting using VBScript and JavaScript; server components using VC++, VB, VJ++, and VFP; client components, includingJava applets, ActiveX controls, and Active document applications; HTML pages using VI; and back-end database queries.Beyond its Web development capabilities, however, VS97 is also an enterprise-level application development toolkit.

Future versions of VS will provide better integration: The first version sometimes comes off more as a collectionof tools that are mostly on speaking terms with one another than as a well-designed tools suite.

In the short term, Microsoft's aggressive pricing will make VS97 attractive to developers who need more than acouple of tools. For example, the estimated full price of the six components of the Professional Edition of VS97 is$2594 if you buy them individually, compared with $999 for the VS97 Professional Edition package. (Owners of licensedcopies of certain Microsoft and competing products are eligible for discounted upgrade editions of the components andthe package.) Eventually, the underlying framework of COM interfaces and Internet technologies will let Microsoftbetter integrate what has been, up until now, a handful of mostly autonomous, developer-oriented products. Only then canyou expect to reap the benefits of, for instance, a single distributed debugging model.

TABLE 1: Products Contained in VS 97

Professional Edition

Enterprise Edition

Visual Basic 5.0, Professional Edition

Visual Basic 5.0, Enterprise Edition

Visual C++ 5.0, Professional Edition

Visual C++ 5.0, Enterprise Edition

Visual J++ 1.1, Professional Edition

Visual J++ 1.1, Professional Edition

Visual InterDev 1.0

Visual InterDev 1.0

Visual FoxPro 5.0, Professional Edition

Visual FoxPro 5.0, Professional Edition

MSDN Library, Special Edition

MSDN Library, Special Edition

SQL Server 6.5, Developer EditionTransaction Server 1.0Visual SourceSafe 5.0

Microsoft 206-882-8080 Web: http://www.microsoft.com/vstudio

Read more about:

Microsoft
Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like