
Programming .NET Web Services
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Table of Contents
- Preface
- What This Book Covers
- Audience
- What You Need to Use This Book
- How This Book Is Organized
- Conventions Used in This Book
- Comments and Questions
- Acknowledgments
- Alex
- Matthew
- Understanding Web Services
- Why Web Services?
- Web-Enabled Applications
- What Is a Web Service?
- The Roles of Web Services
- The Origin of Web Services
- A Brief History of Web Services
- Sharing code between applications
- Sharing code between computers
- Sharing code between networks
- COM/DCOM
- CORBA/IIOP
- Java RMI
- Problems with Existing Standards
- The Promise of .NET Web Services
- The .NET Web Service Architecture
- The Underlying Technologies
- WSDL
- SOAP
- DISCO
- UDDI
- Competing Web Service Technologies
- Other Technologies
- .NET MyServices
- .NET Remoting
- XML-RPC
- Message Queuing
- BizTalk Server
- Creating ASP.NET Web Services
- Creating a Web Service: "Hello, World"
- Creating a Web Service with Inline Code
- The WebService directive
- The using directive: importing .NET namespaces
- The namespace keyword
- The WebService class
- The WebMethod attribute
- Creating "Hello, World" with Visual Studio .NET
- Setting up VS.NET for the web service project
- Creating a C# web service project
- Exploring the solution and project
- Exploring the .asmx file and service design view
- Displaying all files in Solution Explorer
- Understanding the autogenerated service code
- Understanding the code-behind model
- Building the service
- Testing the Service
- Viewing the Service Description
- Invoking the Web Method
- The WebService Attribute
- The WebMethod Attribute
- The Description and MessageName Properties
- The EnableSession Property
- The CacheDuration Property
- The TransactionOption Property
- The BufferedResponse Property
- Deploying a Web Service
- Deploying a Web Service with VS.NET
- FrontPage Extensions and UNC
- Locally and remotely hosted projects
- VS.NET UNC support
- FrontPage and UNC performance
- Deploying a Web Service Directly to IIS
- Example deployment
- Using the .NET Compilers
- Consuming Web Services
- The Web Service Consumer Model
- Publish/Find/Bind Consumer Model
- Client/Service Model
- Accessing Web Services: HTTP
- Internet Information Server (IIS)
- Working with HTTP
- Using HTTP GET
- Using HTTP POST
- Using SOAP
- Comparing HTTP GET, HTTP POST, and SOAP
- Exposing Web Services: WSDL
- WSDL Elements
- Deconstructing a WSDL Document
- Calling Web Services: the Client Proxy
- Creating a Client Proxy
- Using VS.NET
- Using wsdl.exe
- Using a Proxy Class
- Working with the Proxy Class
- WebClientProtocol
- HTTPWebClientProtocol
- Other Proxy Class Implementations
- Consuming a Web Site Using a Screen Scraper Service
- Traditional Screen Scraping
- Regular Expressions
- WSDL Extensions for Regular Expressions
- Scraping the Web Service Way
- Working with Data Types
- Working with Simple Data Types
- XML Schema
- .NET Primitive Data Types
- Structs
- Arrays
- Working with Complex Data Types
- Serialization
- Shaping XML Output
- Shallow and Deep Serialization
- Using Complex Data Types as Arguments
- Accepting Complex Types: Service View
- Passing Complex Arguments: Consumer View
- Passing Data with DataSets
- Using a DataSet
- Returning Typed and Untyped DataSets
- Creating a typed DataSet from the command line
- Creating a typed DataSet in VS.NET
- Using Binary Data
- Managing State
- The Great State Debate
- Stateless Versus Stateful Design
- Web Services and Property Procedures
- Transactional Web Services
- State Management Scenarios
- Thin Layer Design
- Stateful Design
- Aggregate Design
- ASP.NET's Session State Facility
- The Session Cookie
- Using Session State
- The Items Collection
- Accessing Stateful Services
- Session State Configuration
- Mode
- Out-of-Process State Servers
- Using a Windows Service for State
- Using a SQL Server Database for State
- Timeout
- Designing Session-Friendly Classes
- Example: Managing Session State
- Application State
- Custom Cookies
- Stateless Web Services and Tickets
- SOAP Headers
- Defining a SOAP Header
- The Proxy Class
- Using SOAP Headers
- Required headers
- Output headers
- Unknown headers
- SOAP Header Issues
- Asynchronous Services
- Asynchronous Consumption
- The BeginInvoke and EndInvoke methods
- Polling Asynchronous Requests
- Calling Several Methods Simultaneously
- Using a WaitHandle
- Using Callbacks
- Using a Complete Threading Class
- Asynchronous Services
- OneWay Methods
- Asynchronous Services with Components
- The Service class
- The ServiceMonitor class
- Compiling the component
- The web service
- The client
- Threading safely
- Other Approaches to Asynchronous Services
- Caching and Profiling
- ASP.NET Caching
- The Purpose of Caching
- Testing with Cached Web Services
- Simple Output Caching
- Disabling the Cache
- Candidates for Output Caching
- Caching Times
- Data Caching
- Inserting Items into the Cache
- Absolute Expiration Versus Sliding Expiration
- Other Cache Members
- Cache Priorities
- A Simple Data Caching Example
- Cloning
- Cache Dependencies
- Creating File Dependencies
- Creating Dependencies on Other Cache Items
- The Item Removed Callback
- Replacing Stateful Design with Caching
- Profiling Your Web Service
- The Testing Environment
- Performance Counters
- Important ASP.NET Counters
- Debugging, Tracing, and Logging
- Debugging in Visual Studio .NET
- Creating a Web Service-Client Solution in VS.NET
- Setting Web Service Breakpoints
- Using Exceptions
- The Message Property
- The StackTrace Property
- Creating Enlightened Exceptions
- Logging Errors with .NET
- Logging with the Application Log
- Retrieving Logs
- Logging by Email
- Tracing and Assertions
- SOAP Extensions
- The SOAP Extension Classes
- Creating the SoapExtension Class
- Processing the Message
- Creating the SoapExtensionAttribute
- A Simple Logging Extension
- Advanced SOAP Extensions
- Initializing Data
- The ChainStream() Method
- A More Advanced Logging Extension
- Proxy Extensions
- Security and Authentication
- Potential Vulnerabilities
- Web Service Authentication
- IIS Security Features
- User Authentication and Client Certificates
- Basic Authentication and SSL
- IP Address and Domain Name Restriction
- Application Mappings Restrictions
- IIS Security Flow
- ASP.NET Security
- The machine.config and web.config Files
- ASP.NET Authentication Providers
- Using Windows Authentication in Web Services
- Configuring Windows authentication
- Restricting access by user and group
- Restricting access by HTTP verb
- Configuring explicit impersonation
- IIS and the Windows authentication provider
- Avoiding Forms Authentication
- Avoiding Passport Authentication
- Programmatic Security
- Identities, Roles, and Principals
- Understanding the WindowsPrincipal and WindowsIdentity Objects
- The WindowsPrincipal object
- The WindowsIdentity object
- Using the WindowsPrincipal and WindowsIdentity Objects
- Impersonation
- Programmatic impersonation
- Impersonation using security tokens
- Custom Authentication Techniques
- Designing for Performance and Scalability
- Implementing Per-Method Authentication Using SQL
- Getting Warmer: a Ticket System
- Drawbacks of a ticket system
- Opportunities for improvement
- En Fuego: a Custom Authentication Provider
- Process Security
- Publishing and Discovery
- Publishing
- UDDI
- History of UDDI
- What Is UDDI?
- Why UDDI?
- Platform-independence
- Open architecture and the freedom to innovate
- Wide support
- UDDI Business Registries
- Registry Contents
- Categorization
- Accessing a Registry
- Registering a Business Entity
- The Classification System
- WSDL and UDDI
- WSDL and the UDDI Data Structures
- Abstract and concrete service definitions
- The frictionless marketplace
- WSDL and tModels
- Adding a tModel
- Associating a Web Service with Your Business
- Associating a Service with a tModel
- Visual Studio .NET and UDDI
- UDDI Messaging
- SOAP and UDDI
- The Inquiry API
- The browse pattern
- The drill-down pattern
- The invocation pattern
- The bigger picture
- The Publish API
- UDDI Access with .NET
- The .NET UDDI SDK
- Using the .NET UDDI SDK
- UDDI SDK Usage Patterns
- The WS-Inspection Alternative
- Customizing the IE Test Page
- Interoperability
- State of the Specifications
- Implementation Differences
- SOAP Message Formats
- Document style versus RPC style
- The SoapDocumentService and SoapRPCService attributes
- SOAP Encoding Formats
- SOAP Interoperability
- Common SOAP Interoperability Issues
- SOAP Builders
- The SOAP Interoperability Test
- WSDL Interoperability
- HTTP Interoperability and M-Post
- Known Interoperability Problems
- Apache SOAP v2.2
- SOAP level: SOAPAction header dispatch
- XML level: byte order mark (BOM)
- SOAP level: xsi:type dependency
- Additional potential issues
- SOAP::Lite 0.51
- MS SOAP Toolkit v3.0
- Maximizing Interoperability
- Namespace Quick Reference
- The System.Web.Services Namespace
- WebMethodAttribute
- WebService
- WebServiceAttribute
- WebServiceBindingAttribute
- The System.Web.Services.Protocols Namespace
- AnyReturnReader
- HtmlFormParameterReader
- HtmlFormParameterWriter
- HttpGetClientProtocol
- HttpMethodAttribute
- HttpPostClientProtocol
- HttpSimpleClientProtocol
- HttpWebClientProtocol
- LogicalMethodInfo
- LogicalMethodTypes
- MatchAttribute
- MimeFormatter
- MimeParameterReader
- MimeParameterWriter
- MimeReturnReader
- NopReturnReader
- PatternMatcher
- SoapClientMessage
- SoapDocumentMethodAttribute
- SoapDocumentServiceAttribute
- SoapException
- SoapExtension
- SoapExtensionAttribute
- SoapHeader
- SoapHeaderAttribute
- SoapHeaderCollection
- SoapHeaderDirection
- SoapHeaderException
- SoapHttpClientProtocol
- SoapMessage
- SoapMessageStage
- SoapParameterStyle
- SoapRpcMethodAttribute
- SoapRpcServiceAttribute
- SoapServerMessage
- SoapServiceRoutingStyle
- SoapUnknownHeader
- TextReturnReader
- UrlEncodedParameterWriter
- UrlParameterReader
- UrlParameterWriter
- ValueCollectionParameterReader
- WebClientAsyncResult
- WebClientProtocol
- WebServiceHandlerFactory
- XmlReturnReader
- Web Service Technologies
- Transactions
- XAML (Transaction Authority Markup Language)
- Security
- XKMS (XML Key Management Service)
- XML Signatures (XML Digital Signatures)
- XML Encryption
- SOAP Security Extensions
- WS-Security
- WS-License
- Description and Discovery
- WSDL
- UDDI (Universal Description, Discovery, and Integration)
- WS-Inspection
- JXTA Search
- Routing and Process Flow
- WS-Routing
- XLANG
- WSCL (Web Services Conversation Language)
- WSFL (Web Services Flow Language)
- Message Encapsulation
- DIME (Direct Internet Message Encapsulation)
- Jabber
- Index
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.