Click to Rate and Give Feedback
MSDN
MSDN Library
Performance
Checklists
 Checklist: Remoting Performance
Prescriptive Architecture
Checklist: Remoting Performance
 

Patterns and Practices home

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 11, "Improving Remoting Performance"

Design Considerations

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifUse .NET remoting for communicating between application domains in the same process.
ms979159.checkbox(en-us,MSDN.10).gifChoose the right host.
ms979159.checkbox(en-us,MSDN.10).gifChoose the right activation model.
ms979159.checkbox(en-us,MSDN.10).gifChoose the right channel.
ms979159.checkbox(en-us,MSDN.10).gifChoose the right formatter.
ms979159.checkbox(en-us,MSDN.10).gifChoose between synchronous or asynchronous communication.
ms979159.checkbox(en-us,MSDN.10).gifMinimize round trips and avoid chatty interfaces.
ms979159.checkbox(en-us,MSDN.10).gifAvoid holding state in memory.

Activation

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifUse client-activated objects (CAO) only where you need to control the lifetime.
ms979159.checkbox(en-us,MSDN.10).gifUse SingleCall server activated objects (SAO) for improved scalability.
ms979159.checkbox(en-us,MSDN.10).gifUse singleton where you need to access a synchronized resource.
ms979159.checkbox(en-us,MSDN.10).gifUse singleton where you need to control lifetime of server objects.
ms979159.checkbox(en-us,MSDN.10).gifUse appropriate state management to scale the solution.

Lifetime Considerations

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifTune default timeouts based on need.

Hosts

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifUse Internet Information Services (IIS) to authenticate calls.
ms979159.checkbox(en-us,MSDN.10).gifTurn off HTTP keep alives when using IIS.
ms979159.checkbox(en-us,MSDN.10).gifHost in IIS if you need to load balance using network load balancing (NLB).

Channels

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifUse TcpChannel for optimum performance.
ms979159.checkbox(en-us,MSDN.10).gifUse the TcpChannel in trusted server scenarios.

Formatters

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifUse the BinaryFormatter for optimized performance.
ms979159.checkbox(en-us,MSDN.10).gifConsider Web services before using the SoapFormatter.

Marshal by Reference and Marshal by Value

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifUse MBR (marshal by reference) when the object state should stay in the host application domain.
ms979159.checkbox(en-us,MSDN.10).gifUse MBR when you need to update data frequently on the server.
ms979159.checkbox(en-us,MSDN.10).gifUse MBR when the size of the object is prohibitively large.
ms979159.checkbox(en-us,MSDN.10).gifUse MBV (marshal by value) when you need to pass object state to the target application domain.
ms979159.checkbox(en-us,MSDN.10).gifUse MBV when you do not need to update data on the server.
ms979159.checkbox(en-us,MSDN.10).gifUse small MBV objects when you need to update data frequently on the server.

Serialization and Marshaling

CheckDescription
ms979159.checkbox(en-us,MSDN.10).gifConsider using a data facade.
ms979159.checkbox(en-us,MSDN.10).gifMarshal data efficiently and prefer primitive types.
ms979159.checkbox(en-us,MSDN.10).gifReduce serialized data by using NonSerialized.
ms979159.checkbox(en-us,MSDN.10).gifPrefer the BinaryFormatter.

Patterns and Practices home

© 2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker