Figure 5-12 shows the Class View window.. Notice how I selected the Student class in Figure 5-12, which shows the members of the class in the bottom pane.. Class Designer Visualization W
Trang 1Navigating a Project with Class View
An alternate way to work with projects is via Class view, which allows you to view solutions and project artifacts through the logical layout of the code In C#, you can open Class view by pressing CTRL-W, C or select Class View from the View menu In VB you can open Class view by pressing CTRL-SHIFT, C or select View | Other Windows | Class View Figure 5-12 shows the Class View window
In Class view, you have a hierarchy of nodes that start at the project, include references and namespaces, and contain classes under those namespaces Under each class you have Base Types, which contains a list of base classes derived from and implemented interfaces for that specific class Notice how I selected the Student class in Figure 5-12, which shows the members of the class in the bottom pane
As shown in the Class View toolbar, you can create new folders, use the arrows to navigate up or down the hierarchy, or choose options of what to display in the hierarchy There is also a button with a glyph of objects that indicate how to create a class diagram, which is discussed in the next section
Figure 5-12 The Class View window
Trang 2Using the Class Designer
When working with a project, it can sometimes be helpful to have a high-level view of
the project contents, especially if someone else has created the project and you haven’t
worked with that project before This is where the Class Designer can help In addition to
code visualization, another capability of the Class Designer is to give you a basic tool to
perform some design yourself We’ll look at visualizing existing classes first
Class Designer Visualization
Whenever you select a project in Solution Explorer, you’ll see the Class Designer button
appear in the Solution Explorer toolbar The Class Designer button also appears on the
Class View window Clicking View Class Diagram will produce a diagram of classes in
your solution, shown in Figure 5-13
As you can see in Figure 5-13, VS produces a new file, named ClassDiagram1.cd,
with a visual representation of your code You can see that the properties window is open,
allowing you to view information about the selected Program class Additionally, the
Figure 5-13 Visualizing code with the Class Designer
Trang 3Figure 5-13 is a minimal diagram of one class with a single method, Main, and you would
have seen all of the classes in the current project if there were more This could be a good way to help you learn about an existing base of code
In addition to code visualization, you have the ability to perform some light design with the Class Designer, as discussed in the next section
Class Designer Code Generation
The Class Designer allows you to generate code graphically On the left-hand side of Figure 5-13, you’ll see a tab for the Toolbox Hovering over that tab, you’ll see a group of images for code items, such as Class, Enum, Inheritance, and more Figure 5-14 shows the results of using Toolbox items to enhance the existing Figure 5-14 diagram
In Figure 5-14, you can see the Toolbox with options for what type of items you can add to a class diagram Each of the Toolbox items matches some type of code that you would normally write The class diagram itself has additional items, including an abstract
Figure 5-14 Generating code with the Class Designer
Trang 4class named Staff, a normal class named Teacher, an inheritance relationship where Teacher derives from Staff, and an association from Program to Staff.
To create a new object, drag-and-drop the object from the Toolbox to the Class
Designer surface; you’ll see an input window similar to Figure 5-15
The New Abstract Class window in Figure 5-15 is typical of most of the Class Designer
objects you can add to a diagram where you fill in the initial data for naming the class and
specifying the file the code will be added to Not all Toolbox options work this way, though;
associations and inheritance work by selecting the item in the Toolbox, selecting the object
where the line begins in the Class Designer, and dragging the line to the object in the Class
Designer being referenced
The other two places you can modify data are in the Class Details and Properties
windows You can see how I added the GradePapers method in Class Details You can add
members to an object yourself by clicking the object in Class Designer, and then adding
the member in Class Details The GradePapers method also has a Summary comment for
documentation and a parameter named papers with a type of List<string>.
The Properties window is context-sensitive, showing you what options are available
for whatever you have selected in the Class Designer In Figure 5-14, the Teacher class is
selected in Class Designer and the Summary property in the Properties window was filled
in with a comment Listing 5-3 shows the code from the Teacher.cs (Teacher.vb in VB)
file that was generated after all of these actions in the graphical designer
Figure 5-15 Adding a new object to the Class Designer
Trang 5Listing 5-3 Code generated from the Class Designer
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ProjectDemo
{
/// <summary>
/// Teaches Classes
/// </summary>
public class Teacher : Staff
{
/// <summary>
/// Grade student papers
/// </summary>
/// <param name="papers">Papers to grade</param>
public void GradePapers(List<string> papers)
{
throw new System.NotImplementedException();
}
}
}
VB:
''' <summary>
''' Teaches Classes
''' </summary>
Public Class Teacher
Inherits Staff
''' <summary>
''' Grade student papers
''' </summary>
Public Sub GradePapers(ByVal papers As List(Of String))
End Sub
End Class
As shown in Listing 5-3, code generated from the Class Designer includes default using directives and the namespace as specified in project properties The class name, Teacher,
Trang 6is the same as the visual object in the class diagram, and the GradePapers method is the
same as specified in the Class Details window You can also see the comment on Teacher
as specified in the Property window All that’s left for you to do is replace the call to throw
new System.NotImplementedException with your own code in C# or just add your code to
GradePapers in VB
Summary
You should now know how to create a solution and a project You can set project
properties and add new members to projects Additionally, you are able to add class
libraries to a project and reference those class libraries from other projects that use those
libraries If you prefer a more formal design process, VS offers the Class Designer, which
you learned to use for both visualization and code generation The next chapter builds
upon the coding process with VS by showing you how to debug code