Summary ASP.NET and Web Forms: Developing Browser-Based Applications

328 Assembly=HelloWebControl html body form id=Form1 method=post runat=server OReilly:HelloWebControl id=HelloWebControl1 runat=server form body html Example 6-24. HTML generated from the page in Ex a m ple 6 - 2 3 html body form name=Form1 method=post action=TestMyControl.aspx id=Form1 input type=hidden name=_ _VIEWSTATE value=dDwyMDY0ODM0MjA7Oz4= ihello, worldi form body html Figure 6-19. Display generated by the page in Ex a m ple 6 - 2 3

6.12 Summary

ASP.NET is a brand-new framework for delivering web-based applications. It is similar in concept and usage to Microsofts previous ASP technology, though it is far more powerful. 329

Chapter 7. Web Services

A web service is a function call over the Internet. Web services are to distributed-application development as components are to desktop-application development. With web services, a component-library developer can expose programmatic functionality over the Internet. The author of a client application can easily use that functionality, even though the client application may exist on a computer on the other side of the world. Furthermore, the client application doesnt have to be web- based. It can just as easily be a GUI-based application, as long as the computer its running on is connected to the Internet. Web services are not limited to Microsoft products. They are an industrywide movement, with industrywide standardization. Web services running on one vendors platform can be used by clients running on entirely different and otherwise incompatible platforms, since they are built on HTTP, XML, and SOAP. These three specifications have extremely broad industry support and are available on virtually all major hardware and operating-system platforms. HTTP HyperText Transfer Protocol is a protocol that was originally developed to allow users to navigate through hypermedia -- documents and other media that link to still other documents and media. This protocol has become the basis for todays World Wide Web. HTTP has primarily been used to transport documents that are in the form of HTML HyperText Markup Language, a plain-text document markup language. Virtually every general-purpose computer in the world is connected to the Internet and has the capability to browse web pages. Said another way, virtually every computer in the world has the ability to transfer data using the HTTP protocol. Because of this, it makes sense to harness the power of HTTP for more than just requesting and delivering web pages. In addition to these tasks, HTTP is now used to transport XML and SOAP. XML eXtensible Markup Language is a specification for encoding all kinds of data as plain-text documents. Unlike HTTP, XML doesnt define a transport mechanism. XML documents can be transmitted over HTTP, email, FTP, or any other transport mechanism. SOAP Simple Object Access Protocol is a specification that defines how to encode function calls as XML documents. A web service is nothing more than a web server that knows how to listen for and respond to SOAP messages carried over HTTP. How the web service is implemented is irrelevant to the client of the web service. The client simply knows that it can send SOAP messages to a web server located at a specific URL and receive SOAP responses. ASP.NET makes it easy both to expose web services and to use them. In both cases, the ASP.NET runtime encapsulates the communication mechanism, including generating and receiving appropriate SOAP messages. The author of a web service merely writes a class that exposes the desired functionality. ASP.NET does the hard work of handling incoming SOAP messages and forwarding calls to the appropriate method of the class. When the method returns, ASP.NET wraps up the return value and sends it back to the client in a SOAP response. To the .NET application developer using web services, a web service seems like just another type that exposes methods to call. Behind the scenes, ASP.NET translates each method call into a SOAP request to invoke the remote functionality.

7.1 Creating a Web Service

Ex am ple 7- 1 shows the source code for a simple web service. Example 7-1. A simple web service