Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Silverlight HTML5
                vs.


How to get the best out of the web



                      "A better EBay with Si...
Agenda

• Online Auctions
• AuctionsPlus
• The showdown
• The communication
• The technology & practices
• 11 lessons lear...
Peter Gfader

Italy (my country)
Australia (my fun)
German (my language)
blog.gfader.com (my findings)
@peitor (my convers...
AuctionsPlus
A successful Go Live March 2011

• This site can handle >2000
  users




    Only limitation: bandwidth
The rural industry

AuctionsPlus last year
• 2,000,000 sheep
• 80,000 cows
• Ebay
 • Sold 14 cows in 2010


• Graysonline
 • Sold 28 cows in 2010
1. Seller sells a cow
2. 1 week
   Finishes at 3PM
3. No extensions
4. Be there or be square!
Eager Ernie

• Googles "Ebay sniping"
• Grabs an app
• 2:59:59PM
  Purchase a cow for $140
1. Seller sells a cow
2. 1 week
   Finishes at 3PM
3. No extensions
   10 min
20 extra bids gives more $$$
Cows get milked...
Sleepy Sam

• He waits till 2:59PM
• He waits till 3:09PM
• He waits till 3:19PM
...
Sleepy Sam

• He waits till 2:59PM
• He waits till 3:09PM
• He waits till 3:19PM
...
And gives up
Milks the cows...
Note: ...
1.   Seller sells a cow
2.   1 week
3.   Finishes at 3PM
4.   No extensions
     30 sec
Smart Sam
• He waits till 2:59PM
• 50 bids @ 30 seconds
• Sold at 3:25PM

• He gets a cow and is happy


Back to work...
Challenges

• Real time bidding
 • Immediate Updates
 • Pushing data to users
1983
2002
Java applet

• Java Install experience

• Update experience
 • Java Runtime
 • App

             Support phone calls
Java applet

Start-up time
New features?
Rigid UI
Java devs vs .NET devs
2010


 #1 Fix it?

#2 Rewrite?
I called Adam Cogan:


       "Fixing is better"
       "Unnecessery risk"
       "Incremental change is better"
       "C...
The rewrite
Silverlight HTML5
               vs.

The showdown
Fact 1/2

HTML runs everywhere

Silverlight runs only in some
places
Fact 2/2

Silverlight always a little ahead

Silverlight release every 6
months
HTML release every 6 years
http://en.wikip...
Purpose

• HTML
 • Content in browser



• Silverlight
 • RIA
What we need?

• Push updates to connected users
• Not polling the server

• Support lots of users > 2000

• Immediate Upd...
SL
Need unique
   plugin        Use Plugin
functionality?
Consider

• Team Knowledge

• Technology limitations



       What gets you there faster?
Proof of concept

HTML+JS
vs

HTML5 web sockets
vs

Silverlight
vs

Flash/Flex
vs

Java FX
Proof of concept

HTML+JS
vs

HTML5 web sockets
vs

Silverlight
vs

Flash/Flex
vs

Java FX
Limitations

http://www.google.com/search?q=   Limitations+Silverlight

http://www.google.com/search?q=   Limitations+HTML5
TL; DR
Proof of concept

Coding....
Advantages of Silverlight

• Target 1 runtime
• Instead of
 Browser version
 IE 6 …
 IE 9
 FireFox 3
 FireFox 4
 Chrome 10...
Advantages of Silverlight

• Target 1 runtime
• Instead of
 Browser version         OS version
 IE 6 …                  Wi...
I called Adam Cogan:


       "HTML5 is the future"
       "jQuery gets you almost there"
       "XAML is harder than HTML...
#1 Making Silverlight walk
• Linq to Entities
• RIA Services - Automatic CRUD over
  WCF
• [x] Checkbox

Note: IObservable...
#2 Making Silverlight run

• Client has to initiate the
  connection

• Back to Adam's F5 solution
Q: How do you push data from the
      server to the client?

Eg Skype?

A:
Web services (slow polling)
Remoting
UDP
Socke...
#3 Making Silverlight dance

Sockets

WCF
 Connecting over sockets
 netTcpBinding




 Limitation port range: 4502-4532
Q: How do you push data from the
      server to the client?
Eg Skype?

A:
Web services (slow, polling)
Remoting
UDP
Socke...
#3 Making Silverlight dance

• WCF
 • Fallback to HTTP long polling
  "httpPollingDuplexBinding"
Additional technologies

• ASP.NET MVC 3
• SQL Server 2008
• SQL Reporting Services
• Lots of automated tests
• Stress tes...
Additional practices
•   Scrum (2 week sprints)
•   MVVM (SSW Designer worked by himself)
•   XP (Pair programming)
•   Te...
ADD** URL TASKBOARD




http://rules.ssw.com.au/Management/RulesToBetterScrumUsingTFS/Pages/PhysicalTaskboard.aspx
11 Lessons learned
What to do or not?
#1 What is NOT Silverlight?
#1 What is NOT Silverlight?




http://blog.gfader.com/2010/05/silverlight-showing-html-content-inside.html
#2 Silverlight - BIG screen
#2 Silverlight - small window
Silverlight - Screen size
Silverlight - Window size
#2 Silverlight - Autozoom
#3 Silverlight - Warning Window size
#4 Getting feedback
#4 Getting feedback

1. Getting screenshot
     • WriteableBitmap

2.   Convert WriteableBitmap to PNG
3.   Upload screen
...
#4 Getting feedback

 1. PNG converter
 2. 2 HTTP Handlers
          • File
          • SysInfo
 3. Email is sent from ser...
#5 Avoid losing changes
#5 Avoid losing changes
#5 Avoid losing changes

         window.onbeforeunload




http://blog.gfader.com/2010/08/silverlight-prevent-users-from-...
#6 MVVM
#7 Automated Deployment
"If you don't have the right equipment
for the job, you just have to make it
yourself."




MacGyv...
Automated Deployment




Wed night @Sydney .NET UG
#8 CDN for the XAP

"The best way to not get spotted
following someone is not following him"




MacGyver following a car
#8 CDN for the XAP


"The best way to reduce bandwidth from
your site, is by not delivering from your
site"
#8 CDN for the XAP
  1.        Mime types on CDN
            AddType application/x-silverlight-app xap

  2.        Hostin...
Allow JavaScript access
 to scriptable objects defined in the XAP
#8 CDN for the XAP

• Testing on localhost?

• Dynamic URLs
#9 Obfuscate SL on Build Server
 "Sometimes things are hidden under the
 surface.
 You just gotta know how to bring 'em ou...
#9 Obfuscate SL on Build Server

• Silverlight Spy

• Reflector?
 • IL Spy
 • Just Decompile
 • dotPeek
 • ...
#10 DTO size

"The tighter your plan, the more likely
you are to run into something
unpredictable."




MacGyver
#10 DTO size
#10 DTO size
#10 DTO size
#10 DTO size
#10 DTO size

Savings




                     Small x Big
                     = Big difference
Tools used

• Wireshark
• Fiddler
#11 Silverlight force updates

"Typical. Just when you're getting
ahead, someone changes the odds."




MacGyver
#11 Silverlight force updates
#11 Silverlight force updates
#UNSOLVED: Databinding errors on
            build
#UNSOLVED: 1 click "rollback"
Summary

• Online Auctions
• AuctionsPlus
• The showdown
• The communication
• The technology & practices
• 11 lessons lea...
Conclusion
Lessons learned

         ---
Silverlight VS HTML
Lessons learned




Know your tools
Right tool for the job
Lessons learned




Take your bosses word with a grain of salt ;-)
In the future



   Build on top of our great WCF service

We might write a HTML5 web sockets client…
References
http://martinfowler.com/bliki/CrossPlatformMobile.html

http://www.paulstovell.com/presentation-technologies

h...
References - Tools
http://www.wireshark.org/

CPorts (TCPView with Filters)
http://www.nirsoft.net/utils/cports.html

http...
Thank you!

More?
This Wed @Sydney .NET UG


Tweet your feedback and questions
Thank you!

Slides and all details

http://   blog.gfader.com
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Upcoming SlideShare
Loading in …5
×

of

Silverlight vs HTML5 - Lessons learned from the real world... Slide 1 Silverlight vs HTML5 - Lessons learned from the real world... Slide 2 Silverlight vs HTML5 - Lessons learned from the real world... Slide 3 Silverlight vs HTML5 - Lessons learned from the real world... Slide 4 Silverlight vs HTML5 - Lessons learned from the real world... Slide 5 Silverlight vs HTML5 - Lessons learned from the real world... Slide 6 Silverlight vs HTML5 - Lessons learned from the real world... Slide 7 Silverlight vs HTML5 - Lessons learned from the real world... Slide 8 Silverlight vs HTML5 - Lessons learned from the real world... Slide 9 Silverlight vs HTML5 - Lessons learned from the real world... Slide 10 Silverlight vs HTML5 - Lessons learned from the real world... Slide 11 Silverlight vs HTML5 - Lessons learned from the real world... Slide 12 Silverlight vs HTML5 - Lessons learned from the real world... Slide 13 Silverlight vs HTML5 - Lessons learned from the real world... Slide 14 Silverlight vs HTML5 - Lessons learned from the real world... Slide 15 Silverlight vs HTML5 - Lessons learned from the real world... Slide 16 Silverlight vs HTML5 - Lessons learned from the real world... Slide 17 Silverlight vs HTML5 - Lessons learned from the real world... Slide 18 Silverlight vs HTML5 - Lessons learned from the real world... Slide 19 Silverlight vs HTML5 - Lessons learned from the real world... Slide 20 Silverlight vs HTML5 - Lessons learned from the real world... Slide 21 Silverlight vs HTML5 - Lessons learned from the real world... Slide 22 Silverlight vs HTML5 - Lessons learned from the real world... Slide 23 Silverlight vs HTML5 - Lessons learned from the real world... Slide 24 Silverlight vs HTML5 - Lessons learned from the real world... Slide 25 Silverlight vs HTML5 - Lessons learned from the real world... Slide 26 Silverlight vs HTML5 - Lessons learned from the real world... Slide 27 Silverlight vs HTML5 - Lessons learned from the real world... Slide 28 Silverlight vs HTML5 - Lessons learned from the real world... Slide 29 Silverlight vs HTML5 - Lessons learned from the real world... Slide 30 Silverlight vs HTML5 - Lessons learned from the real world... Slide 31 Silverlight vs HTML5 - Lessons learned from the real world... Slide 32 Silverlight vs HTML5 - Lessons learned from the real world... Slide 33 Silverlight vs HTML5 - Lessons learned from the real world... Slide 34 Silverlight vs HTML5 - Lessons learned from the real world... Slide 35 Silverlight vs HTML5 - Lessons learned from the real world... Slide 36 Silverlight vs HTML5 - Lessons learned from the real world... Slide 37 Silverlight vs HTML5 - Lessons learned from the real world... Slide 38 Silverlight vs HTML5 - Lessons learned from the real world... Slide 39 Silverlight vs HTML5 - Lessons learned from the real world... Slide 40 Silverlight vs HTML5 - Lessons learned from the real world... Slide 41 Silverlight vs HTML5 - Lessons learned from the real world... Slide 42 Silverlight vs HTML5 - Lessons learned from the real world... Slide 43 Silverlight vs HTML5 - Lessons learned from the real world... Slide 44 Silverlight vs HTML5 - Lessons learned from the real world... Slide 45 Silverlight vs HTML5 - Lessons learned from the real world... Slide 46 Silverlight vs HTML5 - Lessons learned from the real world... Slide 47 Silverlight vs HTML5 - Lessons learned from the real world... Slide 48 Silverlight vs HTML5 - Lessons learned from the real world... Slide 49 Silverlight vs HTML5 - Lessons learned from the real world... Slide 50 Silverlight vs HTML5 - Lessons learned from the real world... Slide 51 Silverlight vs HTML5 - Lessons learned from the real world... Slide 52 Silverlight vs HTML5 - Lessons learned from the real world... Slide 53 Silverlight vs HTML5 - Lessons learned from the real world... Slide 54 Silverlight vs HTML5 - Lessons learned from the real world... Slide 55 Silverlight vs HTML5 - Lessons learned from the real world... Slide 56 Silverlight vs HTML5 - Lessons learned from the real world... Slide 57 Silverlight vs HTML5 - Lessons learned from the real world... Slide 58 Silverlight vs HTML5 - Lessons learned from the real world... Slide 59 Silverlight vs HTML5 - Lessons learned from the real world... Slide 60 Silverlight vs HTML5 - Lessons learned from the real world... Slide 61 Silverlight vs HTML5 - Lessons learned from the real world... Slide 62 Silverlight vs HTML5 - Lessons learned from the real world... Slide 63 Silverlight vs HTML5 - Lessons learned from the real world... Slide 64 Silverlight vs HTML5 - Lessons learned from the real world... Slide 65 Silverlight vs HTML5 - Lessons learned from the real world... Slide 66 Silverlight vs HTML5 - Lessons learned from the real world... Slide 67 Silverlight vs HTML5 - Lessons learned from the real world... Slide 68 Silverlight vs HTML5 - Lessons learned from the real world... Slide 69 Silverlight vs HTML5 - Lessons learned from the real world... Slide 70 Silverlight vs HTML5 - Lessons learned from the real world... Slide 71 Silverlight vs HTML5 - Lessons learned from the real world... Slide 72 Silverlight vs HTML5 - Lessons learned from the real world... Slide 73 Silverlight vs HTML5 - Lessons learned from the real world... Slide 74 Silverlight vs HTML5 - Lessons learned from the real world... Slide 75 Silverlight vs HTML5 - Lessons learned from the real world... Slide 76 Silverlight vs HTML5 - Lessons learned from the real world... Slide 77 Silverlight vs HTML5 - Lessons learned from the real world... Slide 78 Silverlight vs HTML5 - Lessons learned from the real world... Slide 79 Silverlight vs HTML5 - Lessons learned from the real world... Slide 80 Silverlight vs HTML5 - Lessons learned from the real world... Slide 81 Silverlight vs HTML5 - Lessons learned from the real world... Slide 82 Silverlight vs HTML5 - Lessons learned from the real world... Slide 83 Silverlight vs HTML5 - Lessons learned from the real world... Slide 84 Silverlight vs HTML5 - Lessons learned from the real world... Slide 85 Silverlight vs HTML5 - Lessons learned from the real world... Slide 86 Silverlight vs HTML5 - Lessons learned from the real world... Slide 87 Silverlight vs HTML5 - Lessons learned from the real world... Slide 88 Silverlight vs HTML5 - Lessons learned from the real world... Slide 89 Silverlight vs HTML5 - Lessons learned from the real world... Slide 90 Silverlight vs HTML5 - Lessons learned from the real world... Slide 91 Silverlight vs HTML5 - Lessons learned from the real world... Slide 92 Silverlight vs HTML5 - Lessons learned from the real world... Slide 93 Silverlight vs HTML5 - Lessons learned from the real world... Slide 94 Silverlight vs HTML5 - Lessons learned from the real world... Slide 95 Silverlight vs HTML5 - Lessons learned from the real world... Slide 96 Silverlight vs HTML5 - Lessons learned from the real world... Slide 97 Silverlight vs HTML5 - Lessons learned from the real world... Slide 98 Silverlight vs HTML5 - Lessons learned from the real world... Slide 99 Silverlight vs HTML5 - Lessons learned from the real world... Slide 100 Silverlight vs HTML5 - Lessons learned from the real world... Slide 101 Silverlight vs HTML5 - Lessons learned from the real world... Slide 102 Silverlight vs HTML5 - Lessons learned from the real world... Slide 103 Silverlight vs HTML5 - Lessons learned from the real world... Slide 104 Silverlight vs HTML5 - Lessons learned from the real world... Slide 105 Silverlight vs HTML5 - Lessons learned from the real world... Slide 106 Silverlight vs HTML5 - Lessons learned from the real world... Slide 107 Silverlight vs HTML5 - Lessons learned from the real world... Slide 108 Silverlight vs HTML5 - Lessons learned from the real world... Slide 109 Silverlight vs HTML5 - Lessons learned from the real world... Slide 110 Silverlight vs HTML5 - Lessons learned from the real world... Slide 111
Upcoming SlideShare
Innovation durch Scrum und Continuous Delivery
Next

0 Likes

Share

Silverlight vs HTML5 - Lessons learned from the real world...

Peter tells us from his last project: building a better EBay in Silverlight and shows us his view on this topic.

  • Be the first to like this

Silverlight vs HTML5 - Lessons learned from the real world...

  1. 1. Silverlight HTML5 vs. How to get the best out of the web "A better EBay with Silverlight"
  2. 2. Agenda • Online Auctions • AuctionsPlus • The showdown • The communication • The technology & practices • 11 lessons learned
  3. 3. Peter Gfader Italy (my country) Australia (my fun) German (my language) blog.gfader.com (my findings) @peitor (my conversations) www.SSW.com.au (my company)
  4. 4. AuctionsPlus
  5. 5. A successful Go Live March 2011 • This site can handle >2000 users Only limitation: bandwidth
  6. 6. The rural industry AuctionsPlus last year • 2,000,000 sheep • 80,000 cows
  7. 7. • Ebay • Sold 14 cows in 2010 • Graysonline • Sold 28 cows in 2010
  8. 8. 1. Seller sells a cow 2. 1 week Finishes at 3PM 3. No extensions 4. Be there or be square!
  9. 9. Eager Ernie • Googles "Ebay sniping" • Grabs an app • 2:59:59PM Purchase a cow for $140
  10. 10. 1. Seller sells a cow 2. 1 week Finishes at 3PM 3. No extensions 10 min 20 extra bids gives more $$$ Cows get milked at 5PM
  11. 11. Sleepy Sam • He waits till 2:59PM • He waits till 3:09PM • He waits till 3:19PM ...
  12. 12. Sleepy Sam • He waits till 2:59PM • He waits till 3:09PM • He waits till 3:19PM ... And gives up Milks the cows... Note: 50 bids means 500 mins
  13. 13. 1. Seller sells a cow 2. 1 week 3. Finishes at 3PM 4. No extensions 30 sec
  14. 14. Smart Sam • He waits till 2:59PM • 50 bids @ 30 seconds • Sold at 3:25PM • He gets a cow and is happy Back to work...
  15. 15. Challenges • Real time bidding • Immediate Updates • Pushing data to users
  16. 16. 1983
  17. 17. 2002
  18. 18. Java applet • Java Install experience • Update experience • Java Runtime • App  Support phone calls
  19. 19. Java applet Start-up time New features? Rigid UI Java devs vs .NET devs
  20. 20. 2010 #1 Fix it? #2 Rewrite?
  21. 21. I called Adam Cogan: "Fixing is better" "Unnecessery risk" "Incremental change is better" "Code doesn't rust" "Do some refactoring"
  22. 22. The rewrite
  23. 23. Silverlight HTML5 vs. The showdown
  24. 24. Fact 1/2 HTML runs everywhere Silverlight runs only in some places
  25. 25. Fact 2/2 Silverlight always a little ahead Silverlight release every 6 months HTML release every 6 years http://en.wikipedia.org/wiki/HTML#Version_history_of_the_standard http://en.wikipedia.org/wiki/Microsoft_Silverlight#Release_history
  26. 26. Purpose • HTML • Content in browser • Silverlight • RIA
  27. 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. 28. SL
  29. 29. Need unique plugin Use Plugin functionality?
  30. 30. Consider • Team Knowledge • Technology limitations What gets you there faster?
  31. 31. Proof of concept HTML+JS vs HTML5 web sockets vs Silverlight vs Flash/Flex vs Java FX
  32. 32. Proof of concept HTML+JS vs HTML5 web sockets vs Silverlight vs Flash/Flex vs Java FX
  33. 33. Limitations http://www.google.com/search?q= Limitations+Silverlight http://www.google.com/search?q= Limitations+HTML5
  34. 34. TL; DR
  35. 35. Proof of concept Coding....
  36. 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. 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. 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" "Don't worry too much about what clients want Push back on that 4x sec"
  39. 39. #1 Making Silverlight walk • Linq to Entities • RIA Services - Automatic CRUD over WCF • [x] Checkbox Note: IObservable makes the data feel local Eg. from c in Customer ...
  40. 40. #2 Making Silverlight run • Client has to initiate the connection • Back to Adam's F5 solution
  41. 41. Q: How do you push data from the server to the client? Eg Skype? A: Web services (slow polling) Remoting UDP Sockets
  42. 42. #3 Making Silverlight dance Sockets WCF Connecting over sockets netTcpBinding Limitation port range: 4502-4532
  43. 43. Q: How do you push data from the server to the client? Eg Skype? A: Web services (slow, polling) Remoting UDP Sockets
  44. 44. #3 Making Silverlight dance • WCF • Fallback to HTTP long polling "httpPollingDuplexBinding"
  45. 45. Additional technologies • ASP.NET MVC 3 • SQL Server 2008 • SQL Reporting Services • Lots of automated tests • Stress test over night • TFS 2010
  46. 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 room Adam asks: "What about TFS work items?" "Where are my Done emails?"
  47. 47. ADD** URL TASKBOARD http://rules.ssw.com.au/Management/RulesToBetterScrumUsingTFS/Pages/PhysicalTaskboard.aspx
  48. 48. 11 Lessons learned What to do or not?
  49. 49. #1 What is NOT Silverlight?
  50. 50. #1 What is NOT Silverlight? http://blog.gfader.com/2010/05/silverlight-showing-html-content-inside.html
  51. 51. #2 Silverlight - BIG screen
  52. 52. #2 Silverlight - small window
  53. 53. Silverlight - Screen size
  54. 54. Silverlight - Window size
  55. 55. #2 Silverlight - Autozoom
  56. 56. #3 Silverlight - Warning Window size
  57. 57. #4 Getting feedback
  58. 58. #4 Getting feedback 1. Getting screenshot • WriteableBitmap 2. Convert WriteableBitmap to PNG 3. Upload screen 4. Upload feedback+sysinfo 5. Send email to internal staff
  59. 59. #4 Getting feedback 1. PNG converter 2. 2 HTTP Handlers • File • SysInfo 3. Email is sent from server http://blog.gfader.com/2010/06/customer-support-in-silverlight.html
  60. 60. #5 Avoid losing changes
  61. 61. #5 Avoid losing changes
  62. 62. #5 Avoid losing changes window.onbeforeunload http://blog.gfader.com/2010/08/silverlight-prevent-users-from-losing.html
  63. 63. #6 MVVM
  64. 64. #7 Automated Deployment "If you don't have the right equipment for the job, you just have to make it yourself." MacGyver
  65. 65. Automated Deployment Wed night @Sydney .NET UG
  66. 66. #8 CDN for the XAP "The best way to not get spotted following someone is not following him" MacGyver following a car
  67. 67. #8 CDN for the XAP "The best way to reduce bandwidth from your site, is by not delivering from your site"
  68. 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. 69. Allow JavaScript access to scriptable objects defined in the XAP
  70. 70. #8 CDN for the XAP • Testing on localhost? • Dynamic URLs
  71. 71. #9 Obfuscate SL on Build Server "Sometimes things are hidden under the surface. You just gotta know how to bring 'em out." MacGyver http://blog.gfader.com/2011/04/silverlight-5-easy-steps-to-obfuscate.html
  72. 72. #9 Obfuscate SL on Build Server • Silverlight Spy • Reflector? • IL Spy • Just Decompile • dotPeek • ...
  73. 73. #10 DTO size "The tighter your plan, the more likely you are to run into something unpredictable." MacGyver
  74. 74. #10 DTO size
  75. 75. #10 DTO size
  76. 76. #10 DTO size
  77. 77. #10 DTO size
  78. 78. #10 DTO size Savings Small x Big = Big difference
  79. 79. Tools used • Wireshark • Fiddler
  80. 80. #11 Silverlight force updates "Typical. Just when you're getting ahead, someone changes the odds." MacGyver
  81. 81. #11 Silverlight force updates
  82. 82. #11 Silverlight force updates
  83. 83. #UNSOLVED: Databinding errors on build
  84. 84. #UNSOLVED: 1 click "rollback"
  85. 85. Summary • Online Auctions • AuctionsPlus • The showdown • The communication • The technology & practices • 11 lessons learned
  86. 86. Conclusion
  87. 87. Lessons learned --- Silverlight VS HTML
  88. 88. Lessons learned Know your tools Right tool for the job
  89. 89. Lessons learned Take your bosses word with a grain of salt ;-)
  90. 90. In the future Build on top of our great WCF service We might write a HTML5 web sockets client…
  91. 91. References http://martinfowler.com/bliki/CrossPlatformMobile.html http://www.paulstovell.com/presentation-technologies http://johnliu.net/blog/2011/4/29/rich-or-reach-pick-one.html http://tomasz.janczuk.org/ http://caniuse.com/#feat=websockets
  92. 92. References - Tools http://www.wireshark.org/ CPorts (TCPView with Filters) http://www.nirsoft.net/utils/cports.html http://getfirebug.com/ http://www.fiddler2.com/ http://firstfloorsoftware.com/silverlightspy http://www.deepseaobfuscator.com/
  93. 93. Thank you! More? This Wed @Sydney .NET UG Tweet your feedback and questions
  94. 94. Thank you! Slides and all details http:// blog.gfader.com

Peter tells us from his last project: building a better EBay in Silverlight and shows us his view on this topic.

Views

Total views

3,416

On Slideshare

0

From embeds

0

Number of embeds

221

Actions

Downloads

41

Shares

0

Comments

0

Likes

0

×