Because server/client round-trips are inherently inefficient, you should try to eliminate the need for excessive round-trips. When you design a class or a user-defined interface, you should never expose three public methods or properties when a single method can accomplish the same. If your class exposes two public properties, a remote client will require two round-trips to access all the data. Example of an ineffficient design of an rectangle class is:
Dim Rectangle As CRectangle
Set Rectangle = New CRectangle
' initialize object
Rectangle.Width = 300
Rectangle.Height = 200
Marshaling a complete set of data in a single round-trip is much better than marshaling smaller amounts of data in multiple round-trips. So you should try to create a single signature that lets you do move all the required data across the network in one shot. For example, if you create a SetRectangleData method that takes two input parameters, the client can initialize the object in a single round-trip, like this:
Rectangle.SetRectangleData 300, 200