This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1. Silverlight HTML5 vs.How to get the best out of the web "A
better EBay with Silverlight"
2. Agenda Online Auctions AuctionsPlus The showdown The
communication The technology & practices 11 lessons
learned
19. Java appletStart-up timeNew features?Rigid UIJava devs vs
.NET devs
20. 2010 #1 Fix it?#2 Rewrite?
21. I called Adam Cogan: "Fixing is better" "Unnecessery risk"
"Incremental change is better" "Code doesnt rust" "Do some
refactoring"
22. The rewrite
23. Silverlight HTML5 vs.The showdown
24. Fact 1/2HTML runs everywhereSilverlight runs only in
someplaces
25. Fact 2/2Silverlight always a little aheadSilverlight
release every 6monthsHTML release every 6
yearshttp://en.wikipedia.org/wiki/HTML#Version_history_of_the_standardhttp://en.wikipedia.org/wiki/Microsoft_Silverlight#Release_history
26. Purpose HTML Content in browser Silverlight RIA
27. What we need? Push updates to connected users Not polling
the server Support lots of users > 2000 Immediate Updates Push
updates 4x sec Update delay max ~1/4 sec
28. SL
29. Need unique plugin Use Pluginfunctionality?
30. Consider Team Knowledge Technology limitations What gets
you there faster?
31. Proof of conceptHTML+JSvsHTML5 web
socketsvsSilverlightvsFlash/FlexvsJava FX
32. Proof of conceptHTML+JSvsHTML5 web
socketsvsSilverlightvsFlash/FlexvsJava FX
36. Advantages of Silverlight Target 1 runtime Instead of
Browser version IE 6 IE 9 FireFox 3 FireFox 4 Chrome 10 Safari 4
Safari 5 ...
37. Advantages of Silverlight Target 1 runtime Instead of
Browser version OS version IE 6 Windows XP IE 9 Windows 2000
FireFox 3 Windows 2008 FireFox 4 Chrome 10 x Windows 7 Mac OSX 10.4
Safari 4 Mac OSX 10.5 Safari 5 Mac OSX 10.6 ... ...
38. I called Adam Cogan: "HTML5 is the future" "jQuery gets you
almost there" "XAML is harder than HTML" "Who cares if AJAX polls -
Teach them to press F5" "Dont worry too much about what clients
want Push back on that 4x sec"
39. #1 Making Silverlight walk Linq to Entities RIA Services -
Automatic CRUD over WCF [x] CheckboxNote: IObservable makes the
data feellocalEg. from c in Customer ...
40. #2 Making Silverlight run Client has to initiate the
connection Back to Adams F5 solution
41. Q: How do you push data from the server to the client?Eg
Skype?A:Web services (slow polling)RemotingUDPSockets
42. #3 Making Silverlight danceSocketsWCF Connecting over
sockets netTcpBinding Limitation port range: 4502-4532
43. Q: How do you push data from the server to the client?Eg
Skype?A:Web services (slow, polling)RemotingUDPSockets
44. #3 Making Silverlight dance WCF Fallback to HTTP long
polling "httpPollingDuplexBinding"
45. Additional technologies ASP.NET MVC 3 SQL Server 2008 SQL
Reporting Services Lots of automated tests Stress test over night
TFS 2010
46. Additional practices Scrum (2 week sprints) MVVM (SSW
Designer worked by himself) XP (Pair programming) Tests (Confidence
to Refactor) Code reviews (Internal and by Adam) Automated
deployment (1 click "go live") War roomAdam asks:"What about TFS
work items?""Where are my Done emails?"
64. #7 Automated Deployment"If you dont have the right
equipmentfor the job, you just have to make
ityourself."MacGyver
65. Automated DeploymentWed night @Sydney .NET UG
66. #8 CDN for the XAP"The best way to not get spottedfollowing
someone is not following him"MacGyver following a car
67. #8 CDN for the XAP"The best way to reduce bandwidth
fromyour site, is by not delivering from yoursite"
68. #8 CDN for the XAP 1. Mime types on CDN AddType
application/x-silverlight-app xap 2. Hosting page 1.
AllowHtmlPopupWindow=true Allow external SL XAP to open popups 2.
EnableHtmlAccess=true Allow SL access the DOM 3. App.manifest
ExternalCallersFromCrossDomain="CrossDomainAccess"http://timheuer.com/blog/archive/2010/06/10/troubleshooting-debugging-silverlight-cross-domain-xap-hosting.aspx
69. Allow JavaScript access to scriptable objects defined in
the XAP
70. #8 CDN for the XAP Testing on localhost? Dynamic URLs
71. #9 Obfuscate SL on Build Server "Sometimes things are
hidden under the surface. You just gotta know how to bring em out."
MacGyverhttp://blog.gfader.com/2011/04/silverlight-5-easy-steps-to-obfuscate.html
72. #9 Obfuscate SL on Build Server Silverlight Spy Reflector?
IL Spy Just Decompile dotPeek ...
73. #10 DTO size"The tighter your plan, the more likelyyou are
to run into somethingunpredictable."MacGyver
74. #10 DTO size
75. #10 DTO size
76. #10 DTO size
77. #10 DTO size
78. #10 DTO sizeSavings Small x Big = Big difference
79. Tools used Wireshark Fiddler
80. #11 Silverlight force updates"Typical. Just when youre
gettingahead, someone changes the odds."MacGyver
81. #11 Silverlight force updates
82. #11 Silverlight force updates
83. #UNSOLVED: Databinding errors on build
84. #UNSOLVED: 1 click "rollback"
85. Summary Online Auctions AuctionsPlus The showdown The
communication The technology & practices 11 lessons
learned
86. Conclusion
87. Lessons learned ---Silverlight VS HTML
88. Lessons learnedKnow your toolsRight tool for the job
89. Lessons learnedTake your bosses word with a grain of salt
;-)
90. In the future Build on top of our great WCF serviceWe might
write a HTML5 web sockets client