WebForms are definitely the
easiest way to build most Web interfaces, but if you’re building custom content
handlers, or have special needs for processing the incoming or outgoing
content, or you need to build a custom application server interface to another
application, using these lower level handlers or modules can provide better
performance and more control over the actual request process. With all the
power that the high level implementations of WebForms
and WebServices provide they also add quite a bit of
overhead to requests that you can bypass by working at a lower level.