10.2. Web Services Versus Remoting

Performance considerations make it just as important to know when to use web services as when not to use them. In this race, as shown in Figure 10-4, web services come in dead last every time.[1]

[1] The results differ depending on the size of the objects used. When very small objects are used, web services actually perform slightly better than HTTP binary. This conclusion is based on information (and source code) published at www.dotnetremoting.cc. My tests mirror these results.

Figure 10-4. Mean relative method call duration

There seem to be several misconceptions about when to use web services. One common fallacy is that web services should be used when the client must traverse a firewall. Another myth is that if the client makes method calls over the Internet, web services must be used. Both assumptions are plainly false because these tasks can be accomplished easily with remoting.

The question of when to use web services over .NET remoting is answered by looking at the endpoints of the application. If the client is .NET, use remoting: it's just faster and more configurable. You can use binary and XML-based protocols. If security is an issue, use IIS to host the object, as shown in Chapter 9. In most cases, using binary over HTTP is faster than using a web service. Also, the client experience has the potential to be richer because events ...

Get Object-Oriented Programming with Visual Basic .NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.