Checklist: Enterprise Services Performance

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

patterns & practices Developer Center

Improving .NET Application Performance and Scalability

J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman
Microsoft Corporation

May 2004

Related Links

Home Page for Improving .NET Application Performance and Scalability

Send feedback to Scale@microsoft.com

patterns & practices Library

How to Use This Checklist

This checklist is a companion to Chapter 8, "Improving Enterprise Services Performance"

Design Considerations

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Use Enterprise Services only if you need to.
Ff647710.checkbox(en-us,PandP.10).gif Use library applications if possible.
Ff647710.checkbox(en-us,PandP.10).gif Consider DLL and class relationships.
Ff647710.checkbox(en-us,PandP.10).gif Use distributed transactions only if you need to.
Ff647710.checkbox(en-us,PandP.10).gif Use object pooling to reduce object creation overhead.
Ff647710.checkbox(en-us,PandP.10).gif Design pooled objects based on calling patterns.
Ff647710.checkbox(en-us,PandP.10).gif Use explicit interfaces.
Ff647710.checkbox(en-us,PandP.10).gif Design less chatty interfaces.
Ff647710.checkbox(en-us,PandP.10).gif Design stateless components.

Object Pooling

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Return objects to the pool promptly.
Ff647710.checkbox(en-us,PandP.10).gif Monitor and tune pool size.
Ff647710.checkbox(en-us,PandP.10).gif Preload applications that have large minimum pool sizes.

State Management

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Prefer stateless objects.
Ff647710.checkbox(en-us,PandP.10).gif Avoid using the Shared Property Manager (SPM).

Resource Management

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Optimize idle time management for server applications.
Ff647710.checkbox(en-us,PandP.10).gif Always call Dispose.
Ff647710.checkbox(en-us,PandP.10).gif If you call COM components, consider calling ReleaseComObject.

Queued Components

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Use queued components to decouple client and server lifetimes.
Ff647710.checkbox(en-us,PandP.10).gif Do not wait for a response from a queued component.

Loosely Coupled Events

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Consider the fire in parallel option.
Ff647710.checkbox(en-us,PandP.10).gif Avoid LCE for multicast scenarios.
Ff647710.checkbox(en-us,PandP.10).gif Use Queued Components with LCE from ASP.NET.
Ff647710.checkbox(en-us,PandP.10).gif Do not subscribe to LCE events from ASP.NET.

Transactions

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Choose the right transaction mechanism.
Ff647710.checkbox(en-us,PandP.10).gif Choose the right isolation level.
Ff647710.checkbox(en-us,PandP.10).gif Use compensating transactions to reduce lock times.

Security

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Use a trusted server model if possible.
Ff647710.checkbox(en-us,PandP.10).gif Avoid impersonating in the middle tier.
Ff647710.checkbox(en-us,PandP.10).gif Use packet privacy authentication only if you need encryption.

Threading

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Avoid STA components.

Synchronization

Check Description
Ff647710.checkbox(en-us,PandP.10).gif Use locks or mutexes for granular synchronization.

patterns & practices Developer Center

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

© Microsoft Corporation. All rights reserved.