Special Edition Using Microsoft® Visual Studio for Enterprise Development

Previous chapterNext chapterContents


- 1 -
An Inside Look at Visual Studio 97

by Greg Sullivan

Learn about the individual components that make up Visual Studio 97 and how it is packaged and licensed.
See how your computer must be configured to install and use Visual Studio 97.
Discover why Visual Studio 97 is important to software developers today and what its role is in the world of software development.
Find out if Visual Studio 97 is right for you. Learn which tools apply to your work and why.

Mixed-language programming has been a way of life for many software developers for several decades. Until the acceptance of object-oriented software design and development techniques in recent years, the primary reason for mixed-language application development was to gain some advantage in performance. A good example of this is a video control function library written in assembler to display information on a monitor more efficiently (with respect to speed and memory) for an application written in a high-level language such as C or BASIC and for execution on a PC.

There are other reasons for using multiple languages for a development project. Support for the capability to call procedures written in other languages has become increasing available in most target environments (such as Windows 95), making the choice of language for a specific component more flexible. In a particular organization, the choice is sometimes dictated by the knowledge of those working on the project--with what language are they most comfortable? Sometimes one language offers a feature unavailable in other languages and might be the best choice for meeting a specific need. For example, Visual Basic's support for ActiveX documents, a new feature, makes it an attractive language for developing applications that must be hosted in a web browser. Integration with additional design tools can also be a factor. With the growing practice of implementing systems as a collection of components, the advantages of choosing different languages for various needs have never been greater.


See "Understanding ActiveX Documents" Chapter 12

The need for mixed-language programming doesn't necessarily imply that you should be an expert in multiple programming languages. Some software engineers choose to possess technical breadth--knowledge of numerous tools or languages. Other software engineers prefer technical depth--being the most knowledgeable about a specific tool or language. Whether you're deep or broad technically, Visual Studio 97 is an important tool to use in creating software components or assembling software solutions. The most effective application development efforts are carried out by teams, with some software engineers deep in the selected languages and tools and others with broad knowledge of the selected languages and tools. 

What Is Visual Studio 97?

Visual Studio 97 is a product bundle including most of Microsoft's most powerful software development tools for building modern-day applications and their associated software components. Similar to the way it has bundled desktop products in Microsoft Office for end users and server products in Microsoft BackOffice for network administrators, Microsoft has put together a suite of products in a package targeted at software developers.


ON THE WEB:Microsoft maintains a page on its corporate web site dedicated to Visual Studio 97, at http://www.microsoft.com/vstudio. You're encouraged to stay current with Visual Studio 97 developments and updates with frequent visits to this site.

Microsoft's package of software development tools is known as Visual Studio. The initial release of the complete package occurred in mid-1997 and is labeled Visual Studio 97 (see Figure 1.1). As with any initial release of a new software product, Visual Studio 97 has some identifiable shortcomings. A significant missing feature is a common front end shared by all tools, as the development tools don't yet share the Integrated Development Environment (IDE). Future plans for the product package include integrating each tool with a common user interface. Regardless of when this becomes available, Visual Studio 97 is a significant breakthrough in software development technology and should be given serious consideration for any application developed today in a client/server or I-net environment. (In this context, I-net refers to the use of Internet technologies to develop applications for the Internet or intranets.)

FIG. 1.1
Visual Studio 97 is the first development tool suite released by Microsoft.

The primary development tools that comprise the Visual Studio 97 package are

You can buy each Visual Studio 97 product separately; however, if you're in a team environment developing an application that requires more than one of these languages, Visual Studio 97 offers several advantages:

Visual Studio 97 is available in the Professional and Enterprise editions. Both editions are intended for use by serious application developers who are developing in a multitier, I-net application development environment. The Enterprise Edition adds products and tools that allow you to deal more effectively with database access and enterprise scalability issues.

What's in a Name?

Before providing a brief description of each product included with Visual Studio 97, bringing some clarity to the product names might be helpful. Microsoft now makes a practice of making product code names available to the public. Some products in Visual Studio 97 have had code names similar to actual product names (of other products), causing some confusion over which product is which.

Visual Studio 97--the entire product package and the focus of this book--was code-named Boston. One product included with Visual Studio 97 is Visual InterDev, originally code-named Internet Studio. Because this code name was widely used in industry press, some people confused Internet Studio with Visual Studio. As if the word studio wasn't overused enough, the name of the Visual Studio IDE is Developer Studio, so we now have Visual Studio (the entire product package) and Developer Studio (the IDE shared by some of the Visual Studio products) as officially released products. Internet Studio, simply a code name for Visual InterDev, is no longer valid.

Visual Studio 97 Professional Edition

The most basic version of Visual Studio 97 is the Professional Edition. This product package contains all the primary component-building and application-development tools available from Microsoft. It also contains an Integrated Development Environment for some of the products. The Professional Edition of Visual Studio 97 includes the following tools:

In addition to these development tools, Visual Studio 97 Professional Edition includes a special edition of the MSDN (Microsoft Developer Network) Reference Library in CD-ROM form. This edition of the reference library is geared specifically to Visual Studio 97 software developers, with an index and cross-reference of documentation associated with all the Visual Studio 97 products. It comes with Visual Studio 97 and includes interesting articles, samples of source code, text from reference books, and consolidated product documentation. A complete subscription to the MSDN library is available to Visual Studio 97 licensees for a special price. The MSDN library is an important tool for any software engineer developing software in a Windows environment with Microsoft tools; a complete subscription is highly recommended.

Visual Studio 97 Enterprise Edition

Visual Studio 97 Enterprise Edition includes the development tools contained in the Professional Edition; however, the Enterprise Editions of Visual C++ and Visual Basic are sub-stituted for their Professional Editions. The Enterprise Editions contain enhancements designed to provide an improved environment for multitier client/server application development, I-net application development, and data management.

The Enterprise Edition of Visual C++ adds the following features:

The Enterprise Edition of Visual Basic adds the following features:

The Enterprise Edition of Visual Studio 97 also includes other products and tools intended to extend the functionality of Visual Studio 97 Professional Edition, or to enhance support for software development in teams. Briefly, these products and tools are as follows:


 See "ADO Versus RDO2: Which Access Method Should You Use?" Chapter 23


See "Using the T-SQL Debugger," Chapter 3

Microsoft likely will continue to extend the power of this product package by adding new tools to the Enterprise Edition, targeted at complementing the primary development tools included in the Professional Edition. The license fee for the Enterprise Edition is typically 50 percent to 100 percent more than the Professional Edition, depending on the type of pricing used.

Licensing

Visual Studio 97 is licensed per developer--that is, you must pay a license fee to Microsoft for each developer seat on your team. Although you may also license each Visual Studio 97 product individually, there's a pricing advantage to acquiring the Visual Studio 97 license as opposed to the individual licenses. The size of the advantage depends on current pricing of the entire package and the individual components, as well as the selection and number of tools required for your development effort.

Microsoft now offers licenses to Visual Studio 97 in three forms. First, there are license fees for the Professional and Enterprise editions at full price. Second, Microsoft offers a discount to full price if you're upgrading from certain previous versions of the primary development tools included in Visual Studio 97. Finally, to encourage more people to switch to Visual Studio 97, Microsoft offers a discount to those with certain competitive development products. The competitive and version upgrade discounts are typically available through rebate coupons provided by Microsoft.


ON THE WEB:Stay current with Microsoft pricing for Visual Studio, including competitive and version upgrade discounts, by checking its web site at http://www.microsoft.com/vstudio.

System Requirements

Visual Studio 97 requires a powerful computer with substantial amounts of hard disk space and memory. In fact, if all products are installed, the total hard disk space requirement can exceed 1GB. The minimum processor required to execute Visual Studio 97 is an Intel 486/66; however, an Intel Pentium 90 or higher is recommended.

Visual Studio 97 is available to operate on Windows 95 or Windows NT Workstation 4.0 or later. Components and applications developed with Visual Studio 97 might need to support execution on Windows 95 or Windows NT. If so, it's recommended to maintain a development computer with both operating systems for testing purposes. This increases the hard disk requirement, but the cost of storage is trivial compared with the cost of inconvenience to developers in testing software.

Minimum acceptable RAM for Windows 95 is 16MB. For Windows NT Workstation, the minimum acceptable RAM is 24MB. Microsoft recommends 32MB RAM; however, it's prudent to use at least 64MB RAM. Additional RAM is important when testing database applications with SQL Server 6.5 access on the same computer, in which case RAM in excess of 64MB is highly recommended.

In addition to these requirements, a CD-ROM is necessary. (Visual C++ and Visual J++ require a 32-bit CD-ROM driver.) It's possible to use a VGA monitor; however, a Super VGA monitor of at least 17 inches in size is highly recommended. A mouse or compatible pointing device is required, and additional tools and information are accessible on CD-ROM (189MB for the Professional Edition and 151MB for the Enterprise Edition).

Hard disk requirements vary, based on which edition of Visual Studio 97 is installed. It's possible to split installation across multiple drives (with the restriction that only the shared components can be separate--about 300MB without documentation). Also, it's possible to execute Visual Studio 97 from the installation CD-ROM with a minimal portion of it installed on your hard drive. Figure 1.2 shows all of Visual Studio 97 installed on a single drive. Table 1.1 depicts the minimum and maximum storage required for each product in Visual Studio 97 Professional Edition. Installing the individual products is optional.

FIG. 1.2
By default, all Visual Studio 97 products install in the same program group--DevStudio.

Table 1.1  Storage Requirements for Visual Studio 97 Professional Edition

Tool Minimum Disk Storage Maximum Disk Storage
Visual C++ 5.0 120MB 500MB
Visual Basic 5.0 30MB 220MB
Visual InterDev 37MB 52MB
Visual J++ 1.1 35MB 55MB
Visual FoxPro 5.0 15MB 190MB
MSDN 10MB 1GB
Totals 247MB 2.02GB

In addition to more products, Visual Studio 97 Enterprise Edition includes larger versions of Visual C++ and Visual Basic, as shown in Table 1.2.

Table 1.2  Storage Requirements for Visual Studio 97 Enterprise Edition

Tool Minimum Disk Storage Maximum Disk Storage
Visual C++ 5.0 125MB 550MB
Visual Basic 5.0 35MB 345MB
Visual InterDev 37MB 52MB
Visual J++ 1.1 35MB 55MB
Visual FoxPro 5.0 15MB 190MB
SQL Server 6.5 80MB 95MB
Transaction Server 1.0 11MB 23MB
Visual SourceSafe 5.0 8MB 16MB
MSDN 10MB 1GB
Totals 356MB 2.33GB

SQL Server 6.5 is available only on Windows NT 3.51 or later, and Transaction Server 1.0 runs only on Windows NT 4.0.

The Role of Visual Studio 97 in Software Development

Software applications created with Visual Studio 97 are developed by assembling individual software components. The software engineers who "glue" software components together to form the entire solution are sometimes referred to as solution developers. Software engineers playing the role of component builders develop the software components used to build applications. These software components are purchased from industry vendors or are developed by component builders on your application development team.


NOTE: Microsoft offers a Microsoft Certified Solution Developer (MCSD) certification for software engineers. Although the name solution developer seems to imply that this is intended only for those who assemble software components into applications, it can also apply to component builders.

Some software development tools are designed to develop components, whereas others are created for assembling components into solutions. Given the significance of this approach to software development, it's no surprise that Visual Studio 97 contains a combination of tools suited to one or the other purpose--or, in some cases, to both purposes. Moreover, in the world of multitiered application development, software components are needed in client-side application development and in server development. Again, Visual Studio 97 includes tools for both. Table 1.3 shows Visual Studio 97's development tools, with an indication as to whether they can create or assemble components. You can use component producers to create software components, and component consumers can assemble software components into applications.

Table 1.3  Visual Studio 97 Server Components and Client Components

  Server Components ClientComponents
Tool Producer Consumer Producer Consumer
Visual C++ 5.0 4 4 4 4
Visual Basic 5.0 4 4 4 4
Visual InterDev 4 4
Visual J++ 1.1 4 4 4 4
Visual FoxPro 5.0 4 4
SQL Server 6.5 4

As Table 1.3 shows, Visual C++ 5.0 and Visual Basic 5.0 can produce and consume software components. Visual InterDev and Visual FoxPro are available only to assemble software components into solutions. Visual J++ is designed to create software components in support of Java applet or application development. Finally, SQL Server 6.5 delivers the capability to use server-side software components through extended stored procedures.

To understand better the role of Visual Studio 97 in software development today, you need to examine some goals for the product. Clearly, the concept of integrating design, development, and development-management tools into one package can ease some of the burdens associated with software development, if the integration is implemented appropriately. Following is a review of some of the most important objectives set forth by Microsoft for Visual Studio 97:


See "Client/Server Implementation Models," chapter 20

This is just a short list of some of the most important aspects of Visual Studio 97. With the introduction of Visual Studio 97, Microsoft has made it clear that it understands the needs of software developers and software development teams to have tools that work better together and take advantage of the most powerful technologies. Future versions of Visual Studio 97 and its associated products are expected to continue to enhance developer productivity.

Visual Studio 97 from Your Perspective

Visual Studio 97 represents a breakthrough in many ways to the world of software development. Although other development tool suites have existed before its introduction, this product varies in that it's backed by Microsoft's muscle. Microsoft is committed to improving the integration of Visual Studio 97 products and continuing to enhance the capabilities and efficiency of software development teams. Already, Visual Studio 97 means many things to many people.

Software development teams faced with selecting tools often debate the relative merits of a given tool based on its power and flexibility versus its productivity. Typically, the most powerful and flexible software development tools are the most difficult to learn and the most inefficient because they're lower level in nature, require more in-depth knowledge of the underlying technology, and are more difficult to debug when problems arise.

On the other hand, the tools that tend to yield the shortest development times are usually less powerful or less flexible. Although throwing together a simple database application quickly is possible with a database tool such as Microsoft Access, it can't begin to match the performance or features of a full-blown implementation of the same database in SQL Server. This example is simply one of the trade-offs facing developers, administrators, and managers when selecting development tools (and production servers).

Many factors go into determining the best tool for a given job or portion of a job. An important factor is understanding--at least qualitatively--the relationship certain tools have to one another. Figure 1.3 suggests how the development tools included in Visual Studio 97 relate to each other in this regard.

FIG. 1.3
It's helpful to understand how Visual Studio 97 products relate to one another with respect to flexibility and productivity.

This chart is intended to provide a basis for decision-making but isn't intended to be the definitive answer in tool selection. Its purpose is to support discussion about tool-selection decisions. The graph does bring to light the following points about the Visual Studio 97 tool suite:

As you contemplate Figure 1.3, keep in mind the continuous patching and updating of these individual products by Microsoft. An upgrade to one product can change its relationship to the others--in some cases, quite dramatically. A good example is the recent incorporation of a true compiler into Visual Basic, increasing its position with respect to flexibility. It's recommended to keep this type of graph current in development groups based on the opinions of those on the team.

As a Development Manager

The most appealing feature of Visual Studio 97 from the perspective of a development manager is the opportunity for a more organized development environment. The tools in Visual Studio 97 and their integration simplify the task of administering a complex development environment. This provides an opportunity to lower software development costs through more efficient coding practices and also by giving software engineers the tools to write code with fewer errors. Specifically, the Visual Studio 97 development environment offers the following benefits from the perspective of a development manager or development team leader:

FIG. 1.4
The MSDN CD-ROM that comes with Visual Studio 97 is customized for software developers who use the product.

FIG. 1.5
Visual SourceSafe 5.0 is included with the Visual Studio 97 Enterprise Edition.

As an Application Architect

The biggest difference between the Professional and Enterprise editions of Visual Studio 97 is that the Enterprise Edition contains several tools pertaining to application design, including Visual Modeler (see Figure 1.6) and the Microsoft Repository. The best news is that application architects and object modelers now have tools for design purposes that integrate tightly with the development tools.

FIG. 1.6
Visual Modeler supports a variety of approaches to application design, including a traditional multitier model for client/server applications.

You can generate source code for Visual C++, Visual Basic, and Visual J++ from object models created in Visual Modeler. You can even extract source code from a source module and create an object model to import into Visual Modeler. This two-way interface is valuable for application architects and object modelers.

The other great news for Visual Modeler is that it supports the emerging standard for object modeling: Unified Modeling Language (UML). UML has been developed by several key object-oriented industry leaders employed by Rational Software Corporation, one of the leading object-modeling tool vendors, and has been licensed by Microsoft. At least 25 other leading vendors in the software industry support UML. This means that object models created in other tools that support UML can be imported into Visual Studio 97, and object models created by Visual Modeler can be exported to non-Visual Studio 97 tools that support UML.


See "The UML Diagrams," Chapter 27

As a Component Builder

Developing software components to support COM has always been difficult and time- consuming. With the advent of ActiveX technology, the job became simpler in some respects and more complex in others. It remains possible to develop ActiveX components with Visual C++, but it's also now possible to develop these components with Visual Basic.

The advantage of developing ActiveX components in Visual Basic is that the developer is shielded from many of the complexities associated with COM. This simplifies the process of developing software components, makes the process of developing software components accessible to a broader group of developers, and--most important--reduces the cost of software development (by saving time) without a sacrifice to project quality.


CAUTION: That ActiveX components can now be developed with Visual Basic is no reason to avoid learning the fundamentals of COM and ActiveX technology.

You can use the development tools in Visual Studio 97 to develop several different types of software components. In particular, component builders can create Java applets, ActiveX controls, and Active Server components with Visual Studio 97. The purpose of the various components and details about building them is a topic to which an entire section of this book is dedicated. See the chapters in Part II, "Creating Controls and Components for Reuse," for a complete coverage of these components and important issues related to their construction and use.

Another advantage Visual Studio 97 provides to component builders is the Microsoft Repository, a tool that catalogs and stores software components. The Microsoft Repository can also store object models and documentation associated with the models and components. Because the Microsoft Repository supports UML, it's possible for other non-Visual Studio 97 tools to interoperate with Visual Studio 97 through the Microsoft Repository. If you accept UML as the standard by which your software components are designed and developed and by which your object models are created, the Microsoft Repository will prove to be a valuable tool regardless of which UML-based development tool suite you're using.

As a Solution Developer

Mixed-language development is a foregone conclusion in software development today, so software engineers will have some advantage if the user interface for the different languages is the same. Microsoft has recognized this need and delivered a common user interface called the Developer Studio IDE (see Figure 1.7).

FIG. 1.7
The Developer Studio IDE supports Visual C++ 5.0, Visual InterDev, and Visual J++ 1.1.

Although all the visual programming tools included in Visual Studio 97 share similar user interfaces, it's advantageous for the IDE to provide access to each development tool. It's anticipated--although not absolutely guaranteed--that future versions of Visual Studio will add support for Visual Basic to the Developer Studio IDE.

Visual Studio 97 is available to host only on a 32-bit Windows platform--Windows 95 or Windows NT Workstation 4.0 or later. Out of the box, Visual Studio 97 targets the development of 32-bit Windows applications. Of course, these applications are available only for execution on Windows 95 and Windows NT operating platforms.

Although Microsoft is "nudging" software developers toward 32-bit application development, a large base of users remain in 16-bit Windows 3.1. It's possible to use Visual Studio 97 to create 16-bit Windows applications, but to do so you must order separate features from Microsoft. Another consideration in developing 16-bit applications is that only Visual Basic, Visual C++, and Visual FoxPro have versions that support this type of development. Clearly, the direction is toward 32-bit application development, even to the extent that adding 16-bit development can significantly increase overall development costs.

From Here...

In this chapter, you learned whom Visual Studio 97 is for and what it means to the various people involved in software development. You also saw what tools make up Visual Studio 97 and how Microsoft licenses the entire product package. Finally, you explored how Visual Studio 97 affects software development in today's world and its significance to software developers.

For more information on some of the topics addressed in this chapter and the steps to take next in your exploration of Visual Studio 97, see the following chapters:


Previous chapterNext chapterContents


© Copyright, Macmillan Computer Publishing. All rights reserved.