"Recently, there has been a good deal of interest in techniques that allow .NET developers to extend Web services and mimic the behavior of a true object-oriented system. Unfortunately, these coding 'workarounds' come with a price. At best, they mask the underlying reality of Web services and encourage the developer to adopt inefficient practices. At worst, they are the foundation for Web services that perform poorly, can't scale, and won't interoperate with other platforms. The problem is that Web services aren't objects, and pretending that they are blurs the fundamental differences between stand-alone applications and distributed programming," says Matthew MacDonald in this O'Reilly OnDotNet.com article: