Understanding Visual Studio .NET 2003's Tool Windows
As you begin working with Visual Studio .NET, you'll use several of the supporting tool windows to help you design and develop your project. Furthermore, as you work through the projects and read the discussions contained within this book, the functionality of certain tool windows will be discussed in depth.
This section briefly discusses each of the tool windows and what each window's function is within Visual Studio .NET. Note that some windows are specific to a certain language or technology and might not be discussed within this book other than in this section.
By default, many of these tool windows are not visible. To view a specific tool window, select the View main menu item. Note that some windows might also be contained within the View, Other Windows menu group.
Table 1.1. Visual Studio .NET 2003's Tool Windows
The Class View window is a view into a solution that is organized based on similar type properties. For instance, all the classes within your C# project will be placed within the Classes tree view item. You can also browse your project's struct declarations, defined macros, global variables and functions, and even base classes and interfaces.
The Command Window is used to control the Visual Studio .NET IDE by invoking the objects and methods of its automation object model by using a command-line interface.
The Contents window is a tree-viewbased window that displays the contents of MSDN documentation. This is a departure from Visual C++ 6.0, which required the use of an external application to view documentation.
The Document Outline tool window is used to view the organization of the tags contained within an HTML document.
Dynamic Help, which is discussed later in this chapter, is a smart context-aware Help window that displays links to Help documentation relevant to the current task you are working on.
The Favorites tool window displays the contents of your Internet Explorer Favorites folder. Selecting a link within this window will open the corresponding website within the integrated browser window contained within the Visual Studio .NET IDE.
The Find Results window displays the results of a search operation. The search may be within the current document, the current solution, or within the file system of the operating system. Clicking an item within the Find Results window will open that document to the location where the search found the item it was looking for.
Find Symbol Results
The Find Symbol Results window is similar to the Find Results window, but is the result of searching for symbols such as namespaces, class names, and variables within your current project.
The Index tool window contains the index view of the MSDN documentation. Typing a partial name within the Look For field will scroll the index window to the appropriate index result.
Some links within the Index window might point to multiple documentation links. The Index Results window displays each of these documents as well as the section where each is included in the documentation.
The Macro Explorer window is a tree view that contains the defined Visual Studio .NET macros. By selecting a macro within the tool window, you can run, edit, rename, or delete that macro.
The Object Browser should be familiar to Visual Basic developers. This window is actually a document window due to its complex feature set. It enables you to view not only the different objects contained within your current project, but also the objects defined within the current operating system, such as the various installed COM components and .NET assemblies.
The Output window displays the output that is generated from running various command-line tools within the IDE. This window would, for example, display the results of running the compiler on a source file or the output of the linker as you link several object files.
This window is used for the source code control integration feature of Visual Studio .NET. The Pending Checkins window displays any files that are currently checked out in source code control and are contained within your current solution.
The Properties window displays the properties of the object you are currently working on. In the past, this was usually reserved for dialog or ActiveX control properties, but has been expanded to include the properties for such things as a source code file and even the properties for the current project you are working on.
The Resource View window displays a hierarchical collection of resources that are used within your solution. Resources can include such things as bitmap files, assembly manifests, icons, and string tables, to name a few.
This window displays the results of doing a search within the documentation. Each item that appears within the Search Results window contains the name of the document where the item being searched for was found as well as which section of the documentation that item was found in.
The Server Explorer is an exciting addition to Visual Studio .NET. This tool window enables you to browse not only the local machine you are working on but remote servers as well. With this tool, you can navigate and edit databases, explore system services, view event logs, interact with the message queue, and query performance counters.
The Solution Explorer replaces the File View window that was present in Visual C++ 6.0. You can view all the projects contained within your solution as well as each of the associated files within that project. Furthermore, you can organize the files within this view by creating folders and dragging files into those folders. By default, several folders are created and their subsequent files are organized automatically for you.
The Task List serves many purposes. First, it enables you to create to-do items to remind you to complete certain tasks. You can also associate an importance level with the task. Second, the IDE scans your source code and places any comments that begin with certain keywords, such as TODO, as an item in the task list. It also includes the file and line number for that task so that you can double-click the item to open the file at the appropriate location.
The Toolbox window contains all the controls necessary for graphical user interface design. The included controls consist of HTML controls, ActiveX controls, Windows Forms controls, XML schema elements. A clipboard history is maintained within the Clipboard Ring tab.
The following tool windows are used to support the debugging process. To view these windows, you must be actively debugging a project. When you are debugging, you can access these windows by selecting Debug, Windows from the main menu.
Table 1.2. Visual Studio .NET 2003's Debugging Tool Windows
The Autos window displays information about the variables currently within scope of your executing application, and only those contained within the current or previous executable statement. Displayed information includes the name of the variable, its current value, and the variable's data type.
The Breakpoints tool window is used to control the management of the various breakpoints that you have set within your application. This window contains many features, such as being able to specify conditional breakpoints and the ability to disable or remove breakpoints. The list view of the window also includes rich information contained in columns.
The Call Stack window displays the current contents of the call stack as you debug your application. Items at the top of the window are the most recently called functions, whereas the bottom items represent the beginning of the call stack. Each function also includes parameter information, such as its current value and data type.
The Disassembly window contains the disassembled machine code and its associated source code, and is not for the uninitiated developer. You might find yourself inadvertently entering this window as breakpoints within operating system code are hit inadvertently, usually as a result of incorrect source code within your project.
The Immediate window is one of the most useful, but perhaps least used, debugging windows. This tool window enables you to evaluate expressions, execute statements, get and set variable values, and print various pieces of information The Locals window is similar to the Autos window. However, the Locals window contains variables within the current scope and is not limited to just the current or previous executable statement.
The Memory window enables you to view memory contents contained within your application's allocated memory space. I have found this window useful when performing such tasks as file and string parsing and various bit-manipulation tasks.
The Modules window displays the modules, DLLs, or EXEs, currently loaded by your application. You can choose to display various pieces of information such as the module's filename, path, version information, and memory location.
As with the Disassembly window, the Registers window is definitely not for a beginning developer unless that developer is actively working with assembly language. This window displays the current contents of each of the processors registers. Furthermore, this window also enables you to change the values within the registers, although this is something that should be done only if you know what you are doing. In most cases I don't, so I don't touch the registers' values.
The This window is convenient if your application uses classes. This window displays the data members within the active this pointer. For Visual Basic .NET developers, it points to the Me object.
The Threads window enables you to view all the threads created by your application. It also enables you to control which threads are active and makes it possible for you to freeze or thaw threads.
You can think of the Watch window as a variable bookmark window. The Watch window enables you to place any variable in it, and displays the current variable's value at all times (unless the variable is not within scope of the current executing context). Furthermore, the Watch variables will be retained between debugging sessions.