Export (0) Print
Expand All

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

Design Considerations

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

Activation

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

Lifetime Considerations

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

Hosts

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

Channels

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

Formatters

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

Marshal by Reference and Marshal by Value

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

Serialization and Marshaling

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

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.

Show:
© 2014 Microsoft