Best Practices for Building Web Services with Visual Studio® .NET
Sanguan ThammarojsakulMicrosoft MVP - .NET Department of Computer Science,Faculty of Science and TechnologyAssumption University of Thailand
What we will cover ASP .NET Web Services ACT SOAP Security Global XML Web Services Architecture
(GXA) scalability, interoperability, reliability, and
security
Session Prerequisites
Familiarity with .NET Programming Know Visual Basic® .NET Familiar with ASP .NET
Level 300Level 300
Agenda
Architecture of Web Services Testing Web Services Securing SOAP Web Services in the Enterprise
Architecture of Web ServicesOpen Middle Tier Implementation What is a Web Service?
A website without the user interface A method for defining interfaces above the
transport protocol XML Interoperability
Web Services support 4 protocols Http Get - Interoperable Http Post - Interoperable Http SOAP - Interoperable Import as a DLL for an object interface - .NET
Architecture of Web Services Implementing XML Services <WebService(Namespace :=
"http://msdn.microsoft.com/DevT1-46")> Declares the interface, indicates that the class
defined is a web service Inherits System.Web.Services.WebService
Parent class for all web services in .NET <WebMethod()>
Each method which is exposed as part of the service. Return values can be supported in any request format
but Output parameters are only supported in SOAP
Architecture of Web ServicesService Discovery UDDI: Universal Description, Discovery
and Integration Design time specification for the discovery of
services and communication of their interface Does not define the service implementation
and protocol details. Complemented by WSDL Managed by an industry-wide consortium; for
details visit http://uddi.org
Agenda
Architecture of Web Services Testing Web Services Securing SOAP Web Services in the Enterprise
Testing Web ServicesDefault ASMX Pages
Visual Studio creates a default test frame for each web service
Accessible from the <service>.asmx page The automated page only supports and
test the http Get protocol Can act as the starting point for both
functional and performance testing
Testing Web Services Performance Testing Application Center Test
Allows for the automated execution of web based resources using VB Scripts
Two versions Full version in Application Center Server Developer Version in Visual Studio .NET
Enterprise Architect edition
Produces XML based results Supports Side by Side Comparison
Integrated with Performance Counters for collection of Transaction Cost Analysis data
Testing Web Services Transaction Cost Analysis Transaction Cost Analysis Equation
Cycles = N * S * avg (Pt) / avg(Rps)
Where: N = Number of Processors S = Speed of Processors Pt = System: % Total Processor Time Rps = ACT ASP Requests per second Cycles = Average CPU cycles
Demonstration 1Transaction Calculator
Service
Run the T_Calc ServiceCreate a Simple ACT TestRun a Custom ACT Test
Agenda
Architecture of Web Services Testing Web Services Securing SOAP Web Services in the Enterprise
Securing SOAPAuthentication & SSL Authentication is supported
Selected from Internet Services Manager NTLM and Basic authentication are available Use: New Net.NetworkCredential()
Authentication does not protect data To protect data can use SSL
From Browser preface call with https:// From Code modify <service>.url property to
include https://
Https is transport specific
Securing SOAPEncoding & Encryption
UTF-8 Encoding Can be used for the contents of a SOAP
Message Allows for the inclusion of binary data
Encryption .NET supports several forms of encryption Can be used to protect data without relying
on transport protocol Requires key synchronization
Demonstration 2Authentication/Security
Create a service requiring Authentication
Create a Windows Form ClientCall a Service that Encodes
response Data
Agenda
Architecture of Web Services Testing Web Services Securing SOAP Web Services in the Enterprise
Web Services in the EnterpriseMessaging Infrastructure
Global XML Services Architecture (GXA) GXA has four key specifications to date WS-Security
Credential exchange, message integrity, and message confidentiality
WS-License Encoding for common license formats
Web Services in the EnterpriseMessaging Infrastructure
WS-Referral Partition URL namespaces between nodes
WS-Routing Route messages across intermediate SOAP
nodes
GXA is still under development as an industry wide standard.
Other specifications may be added as the standard develops.
Web Services in the EnterpriseSOAP Extensions SOAP Extensions Added to the SOAP envelope Provide a generic means of implementing
additional capabilities. .NET SoapExtension
System.Web.Services.Protocols.SoapExtension
Will be the core of implementing GXA
Session Summary
Use Web Services as Middleware Use ACT for lifecycle testing support Use .NET’s built in mechanisms for
securing web services SOAP Extensions
For More Information… MSDN Web site at
http://msdn.microsoft.com/webservices
WebServices Specifications http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/dnsrvspec/html/wsspecsover.asp
Reliable XML Web Services http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/dnexxml/html/xml11192001.asp
Using SOAP Extensions for Encryption http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/dnaspnet/html/asp09272001.asp
For More Information… Transaction Cost Analysis
http://www.microsoft.com/applicationcenter/techinfo/planning/2000/wp_tca.asp
Global XML Web Services Architecture http://www.gotdotnet.com/team/
XMLwebservices/gxa_overview.aspx
GotDotNet.com
MS PressEssential Resources for Developers
To find the latest developer related titles visitTo find the latest developer related titles visit
www.microsoft.com/mspresswww.microsoft.com/mspress
TrainingTraining Resources for Developers
Developing XML Web Services Using Visual C# Course #2524
Building ASP.NET Applications Course #2063
Programming with Microsoft® Visual Basic .NET Course #2373
To locate a training provider for this course, please accessTo locate a training provider for this course, please access
mcspreferral.microsoft.com/default.aspmcspreferral.microsoft.com/default.aspMicrosoft Certified Technical Education Centers (CTECs) Microsoft Certified Technical Education Centers (CTECs)
are Microsoft’s premier partners for training servicesare Microsoft’s premier partners for training services
Training & Training & EventsEvents
MSDN Training, Tech-Ed, PDC, MSDN Training, Tech-Ed, PDC, Developer Days, MSDN/Onsite EventsDeveloper Days, MSDN/Onsite Events
MSDNEssential Resources for Developers
Subscription Subscription ServicesServices
OnlineOnlineInformationInformation
MembershipMembershipProgramsPrograms
Print Print PublicationsPublications
Library, OS, Professional, Enterprise, Library, OS, Professional, Enterprise, Universal Delivered via CD-ROM, DVD, WebUniversal Delivered via CD-ROM, DVD, Web
MSDN Online, MSDN FlashMSDN Online, MSDN Flash
MSDN User GroupsMSDN User Groups
MSDN MagazineMSDN MagazineMSDN NewsMSDN News
MSDN Subscriptions THE way to get Visual Studio .NETVisual Studio .NETVisual Studio .NET MSDN SubscriptionsMSDN Subscriptions
NE
W
ProfessionalProfessional• Tools to build applications Tools to build applications
and XML Web services for and XML Web services for Windows and the WebWindows and the Web
MSDN ProfessionalMSDN Professional$1199 new$1199 new
$899 renewal/upgrade$899 renewal/upgrade
MSDN EnterpriseMSDN Enterprise$2199 new$2199 new
$1599 renewal/upgrade$1599 renewal/upgrade
MSDN UniversalMSDN Universal$2799 new$2799 new
$2299 renewal/upgrade$2299 renewal/upgrade
Enterprise DeveloperEnterprise Developer• Enterprise lifecycle toolsEnterprise lifecycle tools• Team development supportTeam development support• Core .NET Enterprise Core .NET Enterprise
ServersServers
Enterprise ArchitectEnterprise Architect• Software and data modelingSoftware and data modeling• Enterprise templatesEnterprise templates• Architectural guidanceArchitectural guidance