Developing rich internet applications
Sponsored Links
This presentation is the property of its rightful owner.
1 / 32

Developing Rich Internet Applications PowerPoint PPT Presentation


  • 148 Views
  • Uploaded on
  • Presentation posted in: General

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)

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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)

  • Java Applets (plug-in required)


Server-Side


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


Perl, Python, Ruby


Dynamic Languages

  • No compilation required

  • Rich Object Literals

  • Greater Productivity

  • Less Code


Rich Object Literals (Perl)

my $object = {name => ‘Walter Higgins’,

dept => ‘Software Engineering’,

date_of_birth => {day => 3,

month => 3,

year => 1971},

projects => [‘Manhattan’, ‘Guernica’]

};


Domain-Specific Languages


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


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


Client-Side Technologies


Javascript


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”]

};


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>


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);

};

}


Live Tables


XMLHTTPRequest

(Javascript’s secret sauce)


CSS


  • Scriptaculous (Javascript Effects Library)

  • Positioning (Drag & Drop)

  • Opacity (fade-in / fade-out effects)


Architecture


Data(Not Pages)


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>


Rich Enterprise Applications

  • Live Tables

  • Sortable and column-draggable tables

  • Lazy Combo-boxes


Lazy ComboBox


Lazy ComboBox


Lazy ComboBox


Lazy ComboBox


Conclusion

  • Dynamic languages on the server.

  • Think in terms of Data – not pages.

  • Javascript/CSS/HTML/DOM is ‘good enough’ for most applications.


  • Login