Architecting R IA
Contact Josh Holmes Microsoft Evangelist [email_address] joshholmes.com James Ward Adobe Evangelist jaward@adobe.com  jamesward.com
What is  by  Kushal Das
Is it… R ural  I noculation  A ssociation? R are  I sotope  A ccelerator? R oyal  I nstitute of  A cting R ampantly  I nept  A lien? R oyally  I diotic  A nnoyance? R eally  I nane  A cronym? R ich  I nternet  A pplication?
Ubiquity Richness Next Generation
Back Button and Refresh Visual Vocabulary State management Browser Sandbox Business Logic in UI Component Level Logic Animation new for  Desktop Developers new for  Web Developer What’s  different  with RIA? Limited Runtime Service Orientation Non-text based layout Hype
 
 
 
 
Taliesin West: Drafting Studio
 
 
MVP Pattern View is more loosely coupled to the model Easier to unit test Usually view to presenter map one to one Complex views may have multi presenters  MVC Pattern Controller are based on behaviors and can be shared across views Can be responsible for determining which view to display (Front Controller Pattern)
 
 
 
 
 
 
 
 
 
..but don’t forget the  power users 70 20 10
 
 
 
 
 
 
with usability
Cookies are on a domain level bar.com cannot access foo.com cookies… Same domain  - http://foo.com  is different than http://bar.foo.com or http://www.foo.com  Same protocol  -  http://foo.com is different than https://foo.com  Same port  - http://foo.com is  different than  http://foo.com:8080  foo.com should feel secure storing user data in cookies Prevent cross-site forgery Exploits a sites trust for a user
“ Private” services (for your own app) DO use browser-based authentication  Cookies, HTTP Auth, etc.  DO NOT enable public access via cross-domain policy file “ Public” services (for 3rd-party apps) DO NOT use browser-based authentication  DO publish cross-domain policy files  DO use “cross-domain-safe” authentication  E.g. URL signatures DO separate public services in their own domain E.g. api.flickr.com vs. www.flickr.com
 
 
 
 
 
 
 
by  Caution Mike
 
 
 
 
 
by  billaday
 
 
 
 
 
by  joeltelling
 
 
 
by  mikeyexists
 
 
 
 
Rich Internet Applications are meant to enhance user experience Architecture of the client matters Use good development practices Leverage the framework Build for the user Don’t get religious Take-aways
http://www.joshholmes.com   http://www.jamesward.com   Take the Next Step
Architecting R IA
Contact Josh Holmes Microsoft Evangelist [email_address] joshholmes.com James Ward Adobe Evangelist jaward@adobe.com  jamesward.com

Architecture of RIA from JAOO

  • 1.
  • 2.
    Contact Josh HolmesMicrosoft Evangelist [email_address] joshholmes.com James Ward Adobe Evangelist jaward@adobe.com jamesward.com
  • 3.
    What is by Kushal Das
  • 4.
    Is it… Rural I noculation A ssociation? R are I sotope A ccelerator? R oyal I nstitute of A cting R ampantly I nept A lien? R oyally I diotic A nnoyance? R eally I nane A cronym? R ich I nternet A pplication?
  • 5.
  • 6.
    Back Button andRefresh Visual Vocabulary State management Browser Sandbox Business Logic in UI Component Level Logic Animation new for Desktop Developers new for Web Developer What’s different with RIA? Limited Runtime Service Orientation Non-text based layout Hype
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    MVP Pattern Viewis more loosely coupled to the model Easier to unit test Usually view to presenter map one to one Complex views may have multi presenters  MVC Pattern Controller are based on behaviors and can be shared across views Can be responsible for determining which view to display (Front Controller Pattern)
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
    ..but don’t forgetthe power users 70 20 10
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Cookies are ona domain level bar.com cannot access foo.com cookies… Same domain - http://foo.com  is different than http://bar.foo.com or http://www.foo.com Same protocol - http://foo.com is different than https://foo.com Same port - http://foo.com is different than http://foo.com:8080 foo.com should feel secure storing user data in cookies Prevent cross-site forgery Exploits a sites trust for a user
  • 33.
    “ Private” services(for your own app) DO use browser-based authentication Cookies, HTTP Auth, etc. DO NOT enable public access via cross-domain policy file “ Public” services (for 3rd-party apps) DO NOT use browser-based authentication DO publish cross-domain policy files DO use “cross-domain-safe” authentication E.g. URL signatures DO separate public services in their own domain E.g. api.flickr.com vs. www.flickr.com
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
    Rich Internet Applicationsare meant to enhance user experience Architecture of the client matters Use good development practices Leverage the framework Build for the user Don’t get religious Take-aways
  • 63.
    http://www.joshholmes.com http://www.jamesward.com Take the Next Step
  • 64.
  • 65.
    Contact Josh HolmesMicrosoft Evangelist [email_address] joshholmes.com James Ward Adobe Evangelist jaward@adobe.com jamesward.com

Editor's Notes