Return to
HomePage
Checklist: Enterprise Services Performance
Source:
http://msdn.microsoft.com/library/en-us/dnpag/html/ScaleNetCheck04.aspJ.D. Meier, Srinath Vasireddy, Ashish Babbar, Rico Mariani, and Alex Mackman
Design Considerations
* Use Enterprise Services only if you need to.
* Use library applications if possible.
* Consider DLL and class relationships.
* Use distributed transactions only if you need to.
* Use object pooling to reduce object creation overhead.
* Design pooled objects based on calling patterns.
* Use explicit interfaces.
* Design less chatty interfaces.
* Design stateless components.
Object Pooling
* Return objects to the pool promptly.
* Monitor and tune pool size.
* Preload applications that have large minimum pool sizes.
State Management
* Prefer stateless objects.
* Avoid using the Shared Property Manager (SPM).
Resource Management
* Optimize idle time management for server applications.
* Always call Dispose.
* If you call COM components, consider calling
ReleaseComObject.
Queued Components
* Use queued components to decouple client and server lifetimes.
* Do not wait for a response from a queued component.
Loosely Coupled Events
* Consider the fire in parallel option.
* Avoid LCE for multicast scenarios.
* Use Queued Components with LCE from ASP.NET.
* Do not subscribe to LCE events from ASP.NET.
Transactions
* Choose the right transaction mechanism.
* Choose the right isolation level.
* Use compensating transactions to reduce lock times.
Security
* Use a trusted server model if possible.
* Avoid impersonating in the middle tier.
* Use packet privacy authentication only if you need encryption.
Threading
* Avoid STA components.
Synchronization
* Use locks or mutexes for granular synchronization.
Return to
HomePage