Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Building and Using Web Services with ASP.NET Rob Howard Program Manager .NET Framework Team Microsoft Corp. Agenda        Overview Standards Based Building Web Services Using Web Services Beyond the Basics Web Service Security Summary What is a Web Service?  Browser is the most common tool for accessing information on the Internet    Web browser is not enough… Devices, etc. A web service is programmable application logic accessible via standard Web protocols  Programmable…   Available to a variety of clients (platform independent) Standard protocols…  Network level interoperability Common Questions/Issues   How do you publish the location of a web service? How do you describe a web service?    Challenges    What protocols does it support? What data types does it use? Programming model Understanding of protocols, serialization, discovery, etc. Solutions today still have complexities:   Microsoft SOAP Toolkit IBM (SOAP Toolkit) Standards Based  SOAP (Simple Object Access Protocol)   WSDL (Web Service Description Language)   XML document describing the location and interfaces a particular service supports – the client's contract DISCO (Discovery)   Explicit serialization (HTTP + XML description) protocol used in service exchanges XML document describing (URI) of service UDDI (Universal Description Discovery and Integration)  Yellow pages directory for services Web Services (In Practice) Find a Service http://www.uddi.org UDDI Link to DISCO or WSDL document Discovery Web Service Consumer http://yourservice.com HTML or XML with link to WSDL How do we talk? (WSDL) http://yourservice.com/?WSDL XML with service descriptions Let me talk to you (SOAP) http://yourservice.com/svc1 XML/SOAP BODY Design-Time or Dynamic Runtime Web Service ASP.NET Web Services  Goal: Make building web services easy  Compiled on first request or pre-compiled First class feature of ASP.NET  File extension is .asmx   Write application logic   Use features of .NET to enable SOAP We’re doing the interop work… ASP.NET Web Services  Part of the ASP.NET application model    The web service emits no UI    Web Service is represented by an URL Access to common objects: Request, Session, Application, etc. SOAP is for applications However…. Supports multiple protocols   Including SOAP Extensible… Demo: Simple and Complex  Demo 1 – Writing a simple service   Demo 2 – Comparing VB and C#   Add Fibonacci Demo 3 – Writing a more complex service  Data Access .asmx Deconstructed 3 Mandatory additions, 1 optional addition  <%@ WebService class=“[class]" %>   Imports System.Web.Services   Required namespace [WebMethod] or <WebMethod()>   Names the class and/or language used Method is ‘web callable’ WebService base class  Access ASP.NET intrinsic objects Protocols  Http-Get / Http-Post   Html forms name/value SOAP (Simple Object Access Protocol)      Simple, lightweight XML protocol for exchanging structured and typed information on the Web W3C note (May 8, 2000) Supported by Microsoft, IBM, and others Data is sent via POST (or M-POST) Extensible XML document (Envelope, Encoding Rules, RPC) Using Web Services  Proxy characteristics    Visual Studio.NET   Classes are strongly typed Supports both async and sync Add Web Reference to a Project WebServiceUtil.exe    Classes can be created in any .NET language WSDL file from a given .NET class Defined server .NET class from an WSDL Demo: Building Proxies  Demo 1 – Building a Proxy with VS.NET   Data Access Demo 2 – Building a Proxy with Command line tool  Data Access Beyond the Basics  Soap Headers     XML Attributes     Great way to send out of band data Not part of the body Similar to HTTP Headers Shape the XML to the format you need XmlAttribute, XmlElement, XmlArray SoapAttribute, SoapElement, SoapArray Screen Scrape  Turn any HTML site into a web service* Demo: Beyond the Basics  Demo 1 – Working with SOAP Headers   Demo 2 – Shaping an XML document   Simple Order Details Demo 3 – Screen Scraping  Barnes and Noble Built-in Security Features  Data hiding (encryption):     Supports HTTPS Use .NET Crypto classes ‘roll your own’ Beta 1 does not support certificates Authentication / Authorization    Supports Forms authentication Supports Windows authentication Supports ‘roll your own’ Design Suggestions      Know and understand the supported data types Don't send unnecessary data (such as an image) when you can send a URL Eliminate latency in the server first Use caching where possible Build the service to be asynchronous if the potential exists to block other work Design Suggestions     Handle client errors when the server is unavailable Cache data from the service where possible, rather than requesting the same data 100 times Be efficient about the number of requests for dynamic data - collapse multiple web service methods into one Read the SOAP, DISCO, and WSDL specs Summary  Building and using web services is .NET  Microsoft provides the leading platform for building web applications and services    Great support for XML, HTTP, HTML Full extensibility enables developers to support the latest protocols ASP.NET technology makes writing web services simple     Share application logic Use existing skills and knowledge Consistent development framework Tool support is incredible! Resources  Microsoft ASP.NET Web Site   Books    http://www.asp.net Wrox - “Preview of ASP+“ Others definitely on the way Additional Sites      http://msdn.microsoft.com/ http://www.4guysfromrolla.com/ http://www.asptoday.com http://www.aspfree.com http://www.aspng.com/ Web Services Adopters