Mike Taulty DevDays 2010 Silverlight 4 Networking
description
Transcript of Mike Taulty DevDays 2010 Silverlight 4 Networking
![Page 1: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/1.jpg)
Change the Rules
Silverlight 4 – Networking
Mike Taulty, Microsoft UK [email protected] mtaulty.com @mtaulty
![Page 2: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/2.jpg)
browser launched, rich internet apps
![Page 3: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/3.jpg)
have limited local access
files hardware
software ...
![Page 4: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/4.jpg)
different types of Silverlight 4 apps
![Page 5: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/5.jpg)
rich, controlled network access is key
firewall
![Page 6: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/6.jpg)
being network aware is useful
![Page 7: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/7.jpg)
all network access is asynchronous
your code not your code
![Page 8: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/8.jpg)
network stack sketch
![Page 9: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/11.jpg)
cross-domain security policy
![Page 12: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/13.jpg)
switching between stacks
![Page 14: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/14.jpg)
Change the Rules
demo reaching out with HTTP
![Page 15: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/19.jpg)
Change the Rules
demo reaching out with sockets
![Page 20: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/22.jpg)
Change the Rules
demo reaching out with WCF via HTTP/TCP
![Page 23: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/27.jpg)
Change the Rules
demo reaching out with WCF Data Services
![Page 28: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/29.jpg)
thank you for coming – please provide feedback
![Page 30: Mike Taulty DevDays 2010 Silverlight 4 Networking](https://reader033.fdocuments.us/reader033/viewer/2022051411/54662ddcaf795969458b4dc7/html5/thumbnails/30.jpg)
Change the Rules
Silverlight 4 – Networking
Mike Taulty, Microsoft UK [email protected] mtaulty.com @mtaulty