Inside Visual Studio 7

General: Main page  Overview  Concept History  Alphabetical List
Timelines: Timeline #1  Timeline #2  Timeline #3
Languages: C/C++  Java  Visual Studio

Even if you're building what appear to be standalone Windows applications, there's no escaping the influence and power of the Web. Visual Studio 7 (VS7), the next version of Microsoft's suite of development tools, promises to harness the Web's abilities in your applications and projects (see Figure 1). In fact, that's the mission of Visual Studio 7: to simplify the development of enterprise Web applications. Every application in VS7 acquires this focus, from Visual Basic, to Visual C++ and its new variants, to Visual FoxPro.

Figure 1. VS7 Brings All the Tools Together. Visual Studio 7 embraces the "Digital Dashboard" vision of an HTML-based "Home" as a basis for development, collaboration, and project management. Each element of the new IDE is customizable and dockable-meaning you can hide particular toolboxes or explorers as tabs on the side of the screen until you need them:
  1. The new, shared IDE provides a completely customizable toolbar.
  2. The component Toolbox provides expanding headings, or categories, of components for common project types. In this screen, you'll notice data and design-time categories, as well as the expanded server event category. Note also separate sets of controls for Windows forms-called "Win Forms" and Web Forms. Web Form controls provide robust HTML controls that gracefully degrade based on the browser or HTML standard you're targeting-and you can update these targets easily using an XML file.
  3. The Server Explorer makes finding Server-based components and events much easier. Visual Studio 6 included a database explorer that listed available SQL and Oracle databases-but this goes much further, listing databases plus message queues, event logs, performance counters, and more. You can drag-and-drop each of these server capabilities or components into a project.
  4. The Task List acts as a team to-do list, and each task can directly hyperlink to associated code. If you write a little code, you can also integrate it with Microsoft Outlook and Microsoft Project.
  5. A Related Links window provides context-sensitive help from both Visual Studio Help as well as Microsoft's Knowledge Base.
  6. The HTML-based Visual Studio 7.0 Home page lists recent projects, as well as links to create a new project and open an existing project. Links to the left of the window provide quick access to community, Web, and training links.
  7. The Project Explorer window includes not only components based on language components (such as BAS files), but it also lists class files, ASP files, and XML data files.
  8. The new, shared VS7 IDE allows you to program your own macros.

Microsoft's promised a new generation of Web abilities built on a Windows platform. Microsoft calls these capabilities Web Services because they provide services to clients and applications over the Web. These Web Services, in turn, are integrated into the platform on various levels.

It's important to understand that although Microsoft offers a higher level of service when you use Microsoft platformsˇXWindows 2000ˇXto build these Web Services, it does not require that you focus specifically on Microsoft technologies. The basic layer of all these Web capabilities is built on open standards: XML, SOAP, and more. These open standards are not Microsoft-only standards: SOAP, for example, is coauthored by IBM and Lotus, among others, and the W3C standards body has accepted its submission.
Microsoft's new Web Services architecture includes several key aspects: the Visual Studio Design and Development Environment; the Services Framework; the Common Language Runtime; and the Technology Substrate, which includes XML, HTTP, SOAP, and HTML.

The Web Services platform solves several crucial business problems and improves business communication, which helps businesses, partners, customers, and developers:

Tomorrow's application model is not the same as yesterday's. An application doesn't need to be constantly connected to its data source, nor does it need a complicated, convoluted installation. Instead, the Web Services platform and VS7 enable applications that are loosely coupled, support open Internet standards such as XML, use Internet-based protocols for communication, and have transparent, self-repairing installations.

Technology Substrate:

Web Services expose business logic and services through standard Internet protocols, including XML and HTTP. Visual Studio 7.0 is both built upon these standard protocols and able to build using these standard protocols. VS7's basic foundation is built upon these platform-neutral, standards-based technologies. HTTP, the most common form of Internet communication, provides a reliable level of communication between Internet servers and clients. XML, in turn, is transmitted using HTTP, and provides a standard way of sharing data among applications, databases, and platforms. Simple Object Access Protocol (SOAP) is an XML-based standard designed to allow loosely coupled application components to invoke each other. SOAP, as you would imagine, is in turn the basis for Web Services.

Part of this low-level substrate includes new, XML-based standards, which, as of this writing, might change names but not abilities. The Service Description Language (SDL) defines an XML format for Web Services to describe what they provide to applications that might use their Web Services. Another open standard, DISCO, for "discovery," describes rules for discovering a Web Service.

Each of these Web-based standards further reinforces the massive shift Microsoft's undertaken with VS7. Although Microsoft believes Windows is the best platform for hosting and using Web Services and Web-based apps, the underlying technology remains platform-independent.

Common Language Runtime
Runtime services associated with both Visual Basic and Visual C++ have long differed-providing different capabilities to projects built in different languages. Yet, in VS7, on top of the Web Services technology substrate lies a new set of runtime services shared among all VS7 tools. This new Common Language Runtime provides the same features for all projects built using VS7, regardless of language.

Most obviously, the Common Language Runtime provides a consistent interface to base technologies in the lower levelˇXWeb Service technologies. Developers using any tool in VS7 can skip through the other layers to use this consistent set of interfaces for increased power. But some less obvious benefits promise more than just a consistent set of interfaces. The Common Language Runtime provides a more robust, secure platform for any app built using any language. Plus, because apps now share interfaces, it's easier to build distributed applications using different development languages and tools under VS7. Not only can projects benefit from more consistent interfaces, but the Common Language Runtime also provides cross-language inheritance and cross-language datatypes.

Of course, each of the Visual Studio languages has been enhanced to take advantage of the services the common runtime provides. These services provide key building blocks for applications of any type, across all application tiers.

Services Framework
On top of the Common Language Runtime lies a framework of services that facilitate access to all of the capabilities in the base technologies and common runtime. Visual Studio 7 developers can access these platform services through new rapid application development (RAD) abilities and designers.

Server capabilities, such as message queuing and event logging, are made easy to integrate into apps and projects with Visual Studio 7's RAD for the Server. New Visual Studio designers talk directly to class frameworks-enabling more productive, faster integration of key technologies, as well as quick development of fundamental application building blocks. As with other layers in the Visual Studio 7 architecture, developers can bypass the designersˇXor modify the generated code as they see fitˇXfor a greater degree of control and flexibility. Key designers include the XML Data Designer, which provides quick access to data access technologies, including the enhanced ADO+ (see the sidebar, "What's New With ADO+"); the Web Services Designer, which facilitates creating Web Services, exposing application logic and abilities to other applications through an XML Web Service interface; the Web Forms Designer, which lets you use ASP+ to build Web pages graphically and create browser-based user interfaces; and the Win Forms Designer, which lets you use the new Windows Forms engine to build user interfaces and client applications for Windows clients.

Each of the designers is customizable, as are the services they access. For example, for the first time in Visual Studio's history, if you don't like the way Microsoft tells the OS to create, say, a dialog box, you can modify that code as you like.

Visual Studio Design and Development Environment
The highest level of the Web Services architecture is built on this new structure of services and technologies, providing a productive environment for application development. VS7, as in past versions, includes enhancements to powerful programming languages. VS7, however, also includes stronger cross-language tools based not only on the new architecture and services but also on new design-time enhancements.

The first of those cross-language enhancements is a new, unified shellˇXa shared environment. This new integrated development environment (IDE) has been fully rebuilt and is completely customizable. In previous versions of Visual Studio, different languages have had slightly different IDEs. This difference is gone in VS7; developers use the same IDE to develop, debug, and deploy code. Developers working in a team use the same IDE regardless of their language choice (see Figure 1). The common IDE also provides start-to-finish debugging of Windows and Web apps across languages, projects, processes, servers, and SQL stored procedures.

Figure 2. VB Says "Hello World" to Inheritance. Visual Basic's new inheritance features move VB into the world of true object-oriented programming. The new inheritance features center on three new keywords: Inherits, Overloads, and Overrides.
  1. Note the IDE enhancement: Tabs allow you to have one-click access to toolboxes and explorers, such as the Toolbox and Server Explorer shown here.
  2. Another row of tabs along the bottom of the IDE provides quick access to other tools, such as the Task List and Related Links from Microsoft's help resources.
  3. Any function can serve as a template for inheritance—in this instance, this function (database access code still to be filled in) would retrieve customer information.
  4. The new Inherits keyword—or the class property sheet's Inherits property—allows you to derive from an existing class.
  5. Part of inheritance: the new Overloads keyword, which allows an object's methods and operators to have different meanings depending on its context—the datatype, or class, of the operands. In this instance, when a specific integer is passed with the function, it returns a specific order; when no argument is passed, it returns all orders. Without overloading, each procedure would need a different name.
  6. The new Overrides keyword allows an inherited class to override a particular function in the inherited class.

Another key enhancement: new, enhanced visual designers. These visual designers include HTML, XML, data, server-side code, and more. These designers help build crucial parts of an application-basic capabilities—so developers can concentrate on business logic, not repetitive, tedious coding. Of course, the code a designer generates is completely customizable (see Figure 2).

Other enhancements include the Visual Web Page Editor, which enables visual, WYSIWYG design of Web pages, making HTML coding unnecessary; the Task List, which facilitates team development, including the capability to jump straight to the section of code associated with a particular task or comment; the Object Browser, which provides a powerful tool for viewing and managing objects associated with a project, displaying a map of all objects, along with detailed information about each; Enhanced Help, which includes context-sensitive popup help and increased integration with the MSDN Web site Knowledge Base; the Command Window, which allows instant, command-line access; and a new extensibility model, which allows complete Visual Studio IDE customizability and programmability. Not only will the new model let third-party vendors integrate their products into the IDE, but it will enable developers to create powerful macros and automated procedures.

From bottom to top, from technology substrate to shared IDE, Visual Studio languages now have more abilities in common than ever before. With VS7, the choice of language becomes less one of which language can do the job and more one of what language you prefer to work in. Certain languages remain more conducive to particular types of projects or components. Yet Visual Basic has the same underlying technology that Visual C++ does—and can do just as much. In other parts of this special supplement, you'll find more details on the enhancements in each individual language in Visual Studio:

With Visual Studio 7, Microsoft's created a platform of technologies that provide maximum productivity, flexibility, and power to Windows and Web developers. Visual Studio developers must learn how to take advantage of this underlying platform—at each of its levels—to truly take advantage of this new world of development. VS7's powerful new designers, while based on standards such as HTML and XML, can shelter developers from unnecessary complexity. But in VS7, there are no "black boxes"—every element of an application, an implementation, or a technology is exposed and customizable.

Visual Studio 7 brings the world of Web-based development to you, the Visual Studio, Visual Basic, or Visual C++ developer. Watch these pages—and VBPJ ( and VCDJ (—for more information about Visual Studio 7—and what you can do now to prepare to take advantage of it in your projects.

Note: This page is modified from Inside Visual Studio 7.