Application Performance Explorer (APE) helps with the design process by setting up test cases with various logical and physical deployment configurations, and measuring performance under run-time workload conditions you define. Using APE to define and save profiles that prototype your design choices, you can adjust and evaluate those choices more easily than has traditionally been possible.
One of the key assumptions in designing modern multi-tier, client/server, distributed applications is that components are valuable. Using components you can break up a big problem into smaller, more manageable pieces, often with the benefit of reusing work from other developers. In addition, in component-based applications, you can use valuable design options such as asynchronous execution, remote resources, and differing logical and physical deployment configurations.
It's not unusual for a developer to have very little experience with multi-tier, distributed component architectures. Unfortunately, the design assumptions that often lead to a successful workstation application are often tragically wrong for a component-based, distributed enterprise application. In the classic desktop or mainframe programming scenario, resources are fully dedicated to the application's demands. In distributed applications, this idea of on-demand allocation of shared server resources is actually an expensive and damaging notion that developers should not carry from their desktop-centric application model.
For example, while it's true that the location transparency of DCOM allows an application to call remote objects as if they were local, this model is not efficient as the workload increases. The overhead of creating the objects and the associated resource consumption required to satisfy dozens or hundreds of simultaneous users eventually consumes a machine to the point of thrashing. Instead, design strategies that incorporate service queuing and object pooling can provide higher performance in distributed application architectures.
For More Information You can find guidelines for designing enterprise applications in Defining Application Logic.
In order to understand the performance opportunities and design consequences of your distributed applications, you can use Application Performance Explorer to create real run-time scenarios, stressing all of the application's infrastructure in accordance with adjustable settings.
APE is configurable to show the performance implications of client loads, network bandwidth, machine boundaries, component instancing and reuse, queuing, DCOM business service processes, data access and transfer methods, server capacity, and various physical deployment options.
Design and performance testing options include modeling various Microsoft BackOffice technologies such as Microsoft Transaction Server (MTS) and Microsoft SQL Server.
Application Performance Explorer can help you understand and evaluate different design strategies and discover the optimum architectural model for your application by providing:
In addition, APE is itself an example of a well-designed distributed application. The APE source code is commented, and is structured to serve as a template for component-based applications. This source code has been designed so that you can use it as the starting point for your own distributed multi-tier application.
For More Information The source code for the Application Performance Explorer is in the ..\Program Files\Microsoft Visual Studio\Common\Tools\Ape\Source
subdirectory of your Visual Studio installation.