1 / 32

Developing Rich Internet Applications

Developing Rich Internet Applications. Walter Higgins. Definition. “Rich Internet Applications (RIA) are web applications that have the features and functionality of traditional desktop applications.” – Wikipedia.org. RIA Technologies. JavaScript MacroMedia Flash Player (plug-in required)

gaston
Download Presentation

Developing Rich Internet Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Developing Rich Internet Applications Walter Higgins

  2. Definition “Rich Internet Applications (RIA) are web applications that have the features and functionality of traditional desktop applications.” – Wikipedia.org

  3. RIA Technologies • JavaScript • MacroMedia Flash Player (plug-in required) • Java Applets (plug-in required)

  4. Server-Side

  5. Perl "When we were young, we were told that 'Everybody else is doing it' was a really stupid reason to do something. Now it's the standard reason for picking a particular software package." -- Barry Gehm

  6. Perl, Python, Ruby

  7. Dynamic Languages • No compilation required • Rich Object Literals • Greater Productivity • Less Code

  8. Rich Object Literals (Perl) my $object = {name => ‘Walter Higgins’, dept => ‘Software Engineering’, date_of_birth => {day => 3, month => 3, year => 1971}, projects => [‘Manhattan’, ‘Guernica’] };

  9. Domain-Specific Languages

  10. DSLs • Languages created to solve a specific problem • Blur the line between code and data/configuration. “A DSL is all about moving up in abstraction until your code directly reflects the high-level concepts you're working in.” - Peter Harkins

  11. DSL example (Rake) file 'build/dev/rake.html' => 'dev/rake.xml' do |t| require 'paper' maker = PaperMaker.new t.prerequisites[0], t.name maker.run end

  12. Client-Side Technologies

  13. Javascript

  14. Rich Object Literals (JavaScript)(otherwise known as JSON) var object = {name: “Walter Higgins”, dept: “Software Engineering”, date_of_birth: {day: 3, month: 3, year: 1971}, projects: [“Manhattan”, “Guernica”] };

  15. Unobtrusive Javascript Before: <ul> <li> <a href="#" onclick="window.open('link1.html')"> my link #1 </a> </li> <li> <a href="#" onclick="window.open('link2.html')"> my link #2 </a> </li> </ul> After: <ul id="popups"> <li> <a href="link1.html">my link #1</a> </li> <li> <a href="link2.html">my link #2</a> </li> </ul>

  16. Unobtrusive Javascript // get the popups list var popupList = document.getElementById('popups'); // get all of the links in the list var popupLinks = popupList.getElementsByTagName('a'); for (var i = 0;i < popupLinks.length; i++) { // add an onclick handler for each link popupLinks[i].onclick = function(){ window.open(this.href); }; }

  17. Live Tables

  18. XMLHTTPRequest (Javascript’s secret sauce)

  19. CSS

  20. Scriptaculous (Javascript Effects Library) • Positioning (Drag & Drop) • Opacity (fade-in / fade-out effects)

  21. Architecture

  22. Data(Not Pages)

  23. XML & JSON JSON: {status: “OK”, image: “cache/1_acdead.jpg”, uncompressed: “cache/1_acdeadWorking.jpg” } XML: <?xml version="1.0" ?> <response status=“OK”> <image> cache/1_acdead.jpg </image> <uncompressed> cache/1_acdeadWorking.jpg </uncompressed> </response>

  24. Rich Enterprise Applications • Live Tables • Sortable and column-draggable tables • Lazy Combo-boxes

  25. Lazy ComboBox

  26. Lazy ComboBox

  27. Lazy ComboBox

  28. Lazy ComboBox

  29. Conclusion • Dynamic languages on the server. • Think in terms of Data – not pages. • Javascript/CSS/HTML/DOM is ‘good enough’ for most applications.

More Related