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

Developing Rich Internet Applications PowerPoint PPT Presentation


  • 132 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

Developing Rich Internet Applications

Walter Higgins


Definition

Definition

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


Ria technologies

RIA Technologies

  • JavaScript

  • MacroMedia Flash Player (plug-in required)

  • Java Applets (plug-in required)


Server side

Server-Side


Developing rich internet applications

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

Perl, Python, Ruby


Dynamic languages

Dynamic Languages

  • No compilation required

  • Rich Object Literals

  • Greater Productivity

  • Less Code


Rich object literals perl

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

Domain-Specific Languages


Developing rich internet applications

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

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

Client-Side Technologies


Javascript

Javascript


Rich object literals javascript otherwise known as json

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

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 javascript1

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

Live Tables


Xmlhttprequest

XMLHTTPRequest

(Javascript’s secret sauce)


Developing rich internet applications

CSS


Developing rich internet applications

  • Scriptaculous (Javascript Effects Library)

  • Positioning (Drag & Drop)

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


Architecture

Architecture


Data not pages

Data(Not Pages)


Xml json

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

Rich Enterprise Applications

  • Live Tables

  • Sortable and column-draggable tables

  • Lazy Combo-boxes


Lazy combobox

Lazy ComboBox


Lazy combobox1

Lazy ComboBox


Lazy combobox2

Lazy ComboBox


Lazy combobox3

Lazy ComboBox


Conclusion

Conclusion

  • Dynamic languages on the server.

  • Think in terms of Data – not pages.

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


  • Login