Web services represent the next generation of computer connectivity. Instead of relying upon a closed network protocol and wire format, Web services open up the availability of an application to the entire world. Web services are built upon an already existing network using a wire format that many enterprises agree upon for making method calls.
ASP.NET automates the detailed work necessary to unpack a SOAP request and turn it into a real method call. ASMX files are handlers in the same way as ASPX and ASHX files. ASMX files implement IHttpHandler by parsing the incoming XML, calling a method in the code-behind class, and returning a result. Simply adorning the method with the [WebMethod] attribute inserts the necessary functionality.
Visual Studio is also useful for consuming Web services. By adding a Web reference to your application, Visual Studio will consult the Web service for the WSDL code and use it to build a proxy. From there you simply instantiate the proxy and call methods. The proxy takes care of preparing the SOAP payload and sending it. The proxies generated by Visual Studio also support asynchronous method invocation so that the main calling thread doesn't block for too long.