Inspector Comparisons

The Inspectors share some features with Microsoft products and other tools.

We make no claim that the Inspectors compete with these products/tools, as they each have a different purpose. They are shown here only to help you understand their relative capabilities.

Types

.NET Inspector ActiveX Inspector Microsoft
Visual Studio .NET
Microsoft
OLE/COM Viewer
Microsoft
ActiveX Test Container
Lutz Roeder's
Reflector
.NET CLR Types
Browse X X X X
Search X X X X
ActiveX Types
Browse X (1) X
Search X
Show COM event interfaces X
Show information in sorted order X

Objects

.NET Inspector ActiveX Inspector Microsoft
Visual Studio .NET
Microsoft
OLE/COM Viewer
Microsoft
ActiveX Test Container
Lutz Roeder's
Reflector
.NET CLR Objects
Create X X
Search X X
Invoke methods X X X
Browse method return value objects X X X
Get/set properties X X X
Get/set fields X X X
Trace events X X
Show event registrations X X
Show IList elements clearly X X
Show object names intelligently X X
Cast objects X X X
Cut/copy/paste objects between ILists X X
ActiveX/COM Objects
View/manipulate COM running objects X
Show correct ActiveX type information X
Create X X
Search X
Invoke methods X (2) X
Browse method return value objects X
Get/set properties X (2) (3)
Trace events X X
Show event registrations X
Show IList elements clearly X
Show object names intelligently X
Cast objects X (2)
Cut/copy/paste objects between ILists X

Other

.NET Inspector ActiveX Inspector Microsoft
Visual Studio .NET
Microsoft
OLE/COM Viewer
Microsoft
ActiveX Test Container
Lutz Roeder's
Reflector
Visual
Visual Design Surface X X X X
Switch dynamically between design and run mode X X (4) X
Other
Hyperlink to ActiveX documentation X
Automatic creation of .NET assemblies from TypeLibs X
Register/unregister ActiveX components X X
Hyperlink between .NET and ActiveX types X
View/open assemblies from GAC X X X
Has complete product documentation X X X X

Explanations

Show COM event interfaces - ActiveX/COM interfaces that are used for events are shown in a separate category, to be parallel with the way events are expressed in the .NET world.

Browse method return value objects - Unlike other tools, the Inspectors represent objects in a tree form where the return value of a method invocation can be accessed fully and easily, just like any other object.

Show IList elements clearly - Consider the locals panel in the VS.NET debugger, its often difficult to find the contents of an ArrayList, because you have to be exposed to the internal implementation details of the class. Same with other classes that support the IList interface. The Inspectors simply present a list of objects, hiding the uninteresting details of the collection class implementation. Should you wish to see these details, there is an option to do so.

Show object names intelligently - The Inspectors show objects by name and try to pick the best name to represent the object. Sometimes this is the ToString() value of the object. Other times, if the object has a Name attribute this is used. This makes it a breeze to browse through a list of Form objects in Access for example, since the name of the form is shown as the name of the object. Compare this with the VBA property inspector.

Show correct ActiveX type information - The ActiveX Inspector reads all of the type information from the type library and is able to determine the correct ActiveX type of any ActiveX object where type information is known. It does this by understanding the relationships of the CLR types to the ActiveX types. It is far more effective at presenting ActiveX objects with the correct types than VS.NET.

Notes

(1) Only ActiveX classes are shown in the VS.NET browser. You must also go through a separate dialog to select the ActiveX controls/type libraries you wish to browse.

(2) VS.NET cannot determine the ActiveX type of many objects. When the type cannot be determined, method invocation and property retrieval are not available.

(3) Properties can only be accessed by the ActiveX Control Test Container when the control implements the ISpecifyPropertyPages interface.

(4) VS.NET supports both design and run mode of course. But it does not allow you to have the same instance of an object switch back and forth between design and run mode. In order to go into run mode, you must execute the code in a new process.