30
Change the Rules Silverlight 4 – Networking Mike Taulty, Microsoft UK [email protected] mtaulty.com @mtaulty

Mike Taulty DevDays 2010 Silverlight 4 Networking

  • Upload
    ukdpe

  • View
    1.715

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Mike Taulty DevDays 2010 Silverlight 4 Networking

Change the Rules

Silverlight 4 – Networking

Mike Taulty, Microsoft UK [email protected] mtaulty.com @mtaulty

Page 2: Mike Taulty DevDays 2010 Silverlight 4 Networking

browser launched, rich internet apps

Page 3: Mike Taulty DevDays 2010 Silverlight 4 Networking

have limited local access

files hardware

software ...

Page 4: Mike Taulty DevDays 2010 Silverlight 4 Networking

different types of Silverlight 4 apps

Page 5: Mike Taulty DevDays 2010 Silverlight 4 Networking

rich, controlled network access is key

firewall

Page 6: Mike Taulty DevDays 2010 Silverlight 4 Networking

being network aware is useful

Page 7: Mike Taulty DevDays 2010 Silverlight 4 Networking

all network access is asynchronous

your code not your code

Page 8: Mike Taulty DevDays 2010 Silverlight 4 Networking

network stack sketch

Page 9: Mike Taulty DevDays 2010 Silverlight 4 Networking

lots of capabilities to choose from

• network protocols – HTTP, TCP, UDP

• data encodings – text, binary

• data serialization – XML, JSON, RSS, ATOM

• messaging protocols – SOAP, REST, OData

• messaging patterns – request response, duplex, multicast

• programming models – raw HTTP, WCF, WCF Data Services, sockets

• security – cross-site, authentication, cross-scheme

Page 10: Mike Taulty DevDays 2010 Silverlight 4 Networking

and two key classes for HTTP itself

• WebClient – simple, easier to use

• (Http)WebRequest – more functionality, slightly more complex code

Page 11: Mike Taulty DevDays 2010 Silverlight 4 Networking

cross-domain security policy

Page 12: Mike Taulty DevDays 2010 Silverlight 4 Networking

there are two http stacks

verbs: GET, POST automatic cookie management ( restricted ) set of request headers automatic authentication status codes: LIMITED ( 200, 400 )

verbs: ALL manual cookie management ( restricted ) set of request headers response headers & body authentication ( code & automatic ) status codes: ALL

Page 13: Mike Taulty DevDays 2010 Silverlight 4 Networking

switching between stacks

Page 14: Mike Taulty DevDays 2010 Silverlight 4 Networking

Change the Rules

demo reaching out with HTTP

Page 15: Mike Taulty DevDays 2010 Silverlight 4 Networking

lots of capabilities to choose from

• network protocols – HTTP, TCP, UDP

• data encodings – text, binary

• data serialization – XML, JSON, RSS, ATOM

• messaging protocols – SOAP, REST, OData

• messaging patterns – request response, duplex, multicast

• programming models – raw HTTP, WCF, WCF Data Services, sockets

• security – cross-site, authentication, cross-scheme

Page 16: Mike Taulty DevDays 2010 Silverlight 4 Networking

sockets

• support for streaming TCP sockets – Silverlight is a socket client, not a server – consider WCF netTCP as a better option

• security – limited to ports 4502 to 4534 – policy file authorisation required - HTTP or TCP download – these restrictions do not apply to trusted applications

Page 17: Mike Taulty DevDays 2010 Silverlight 4 Networking

sockets

• support for multicast UDP sockets – both single source & any source multicasting

• programmability is via – Udp[Single/Any]SourceMulticastClient classes

• security – port numbers must be above 1024

– policy file authorisation required – UDP download

– these restrictions do not apply to trusted applications

Page 18: Mike Taulty DevDays 2010 Silverlight 4 Networking

multicast security

for any source multicasting, the Silverlight client multicasts to the multicast group on port 9430 and waits for an authorisation

Page 19: Mike Taulty DevDays 2010 Silverlight 4 Networking

Change the Rules

demo reaching out with sockets

Page 20: Mike Taulty DevDays 2010 Silverlight 4 Networking

lots of capabilities to choose from

• network protocols – HTTP, TCP, UDP

• data encodings – text, binary

• data serialization – XML, JSON, RSS, ATOM

• messaging protocols – SOAP, REST, OData

• messaging patterns – request response, duplex, multicast

• programming models – raw HTTP, WCF, WCF Data Services, sockets

• security – cross-site, authentication, cross-scheme

Page 21: Mike Taulty DevDays 2010 Silverlight 4 Networking

WCF subset in Silverlight for HTTP/TCP

• transports - HTTP(S) and TCP • encodings - text and binary • serialization - DataContract* & XmlSerializer* • protocols - WS-I Basic Profile 1.1

– XML, HTTP, SOAP and WSDL – SOAP 1.2, WS-Addressing 1.0, WS-Security*

• patterns - req/resp, duplex*, polled duplex* • privacy - HTTPS • authN - transport or message credential • faults - only available on the client stack

Page 22: Mike Taulty DevDays 2010 Silverlight 4 Networking

Change the Rules

demo reaching out with WCF via HTTP/TCP

Page 23: Mike Taulty DevDays 2010 Silverlight 4 Networking

lots of capabilities to choose from

• network protocols – HTTP, TCP, UDP

• data encodings – text, binary

• data serialization – XML, JSON, RSS, ATOM

• messaging protocols – SOAP, REST, OData

• messaging patterns – request response, duplex, multicast

• programming models – raw HTTP, WCF, WCF Data Services, sockets

• security – cross-site, authentication, cross-scheme

Page 24: Mike Taulty DevDays 2010 Silverlight 4 Networking

RESTful services ( generically )

Resources

Res 1

Res 2

Res 3

Res 4

HTTP Request URL

VERB Payload

HTTP Response

Status

GET POST PUT

DELETE XML JSON

Payload

XML JSON

Page 25: Mike Taulty DevDays 2010 Silverlight 4 Networking

RESTful services ( more specifically )

• Open Data Protocol ( odata ) – www.odata.org

– published under the Open Specification Promise

• Extends the AtomPub standard to add – an addressing scheme

– a mechanism for schema

– alternate representation – JSON

– handling for concurrent updates

– handling for batched requests

Page 26: Mike Taulty DevDays 2010 Silverlight 4 Networking

WCF Data Services ( “Astoria” )

• implementation of odata for the client and the server

http://server/customers(‘alfki’)/Orders?$top=20

Page 27: Mike Taulty DevDays 2010 Silverlight 4 Networking

Change the Rules

demo reaching out with WCF Data Services

Page 28: Mike Taulty DevDays 2010 Silverlight 4 Networking

resources

• Channel 9 Silverlight 4 MEF Screencasts

– channel9.msdn.com/tags/SL4Networking

• Silverlight .NET

– www.silverlight.net

Page 29: Mike Taulty DevDays 2010 Silverlight 4 Networking

thank you for coming – please provide feedback

Page 30: Mike Taulty DevDays 2010 Silverlight 4 Networking

Change the Rules

Silverlight 4 – Networking

Mike Taulty, Microsoft UK [email protected] mtaulty.com @mtaulty