Best Practices for Building Web Services with Visual Studio ®.NET Sanguan Thammarojsakul Microsoft...

28
Best Practices for Building Web Services with Visual Studio® .NET Sanguan Thammarojsakul Microsoft MVP - .NET Department of Computer Science, Faculty of Science and Technology Assumption University of Thailand

Transcript of Best Practices for Building Web Services with Visual Studio ®.NET Sanguan Thammarojsakul Microsoft...

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

Where Can I Get MSDN? Visit MSDN Online at

msdn.microsoft.com Register for the MSDN Flash Email

Newsletter at

msdn.microsoft.com/flash Become an MSDN CD Subscriber at

msdn.microsoft.com/subscriptions MSDN online seminars

msdn.mircosoft.com/training/seminars Attend More MSDN Events