Web services provide a platform-neutral means of exchanging data between two systems over the Web using XML. Simple Object Access Protocol (SOAP) is a standard used to serialize and transfer object data between these systems. ASP.NET goes a long way to isolate programmers from the actual XML and allows them to concentrate on the implementation in the familiar realm of object-oriented code.
Although it's possible to simulate full object orientation in the design of Web services, consideration should be given to make them act as endpoints for the exchange of data, similarly to the way you'd call a static method from a local class. You can also package data in container classes. It's important to consider the performance implications of a Web service that needs to make many calls back and forth to arrive at an end result, as this kind of solution would not scale well.
Consuming a Web service from Visual Studio 2005 requires little more than adding a reference to the Web service. In a Web project, this reference is created dynamically, while a class library creates a physical proxy class. In both scenarios, you can code against these objects as if they were locally in your own system, releasing you from the details of how the data is exchanged with the remote system.