Can you write REAL applications with AJAX? Phil Sarin Advanced UI Software April 15, 2009.

Slides:



Advertisements
Similar presentations
1 CGICGI Common Gateway Interface Server-side Programming Lecture.
Advertisements

University of Virginia 1 Modern Web Application Development Overview of some newer web applications methods Web 2.0 Ajax fundamentals Ruby on Rails.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
February 11, 2007 Can Ajax be OS for the Browser? Kevin Hakman Co-Founder General Interface Ajax Toolkit Director, Developer Evangelism TIBCO Software.
Google Web Toolkit Dudeanu Ermoghen Ib ă nescu Diana Melinte Laurenţiu-Ionuţ Petrişor Ionuţ C ă t ă lin.
Do We Really Need Rich-Interface Technologies? Yifan Zhang
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
Igor Gershovich Connected Testing, Inc.
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
Cloud Computing Lecture #7 Introduction to Ajax Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under a.
Introduction to Web Based Application. Web-based application TCP/IP (HTTP) protocol Using WWW technology & software Distributed environment.
Does Ajax suck? CS575 Spring 2007 Chanwit Suebsureekul.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Development of mobile applications using PhoneGap and HTML 5
A closer look Dynamic Webpages Jessica Meyerson March 1, 2011.
Web 2.0 with AJAX Students : LASC Ioana KELEMEN Csilla POP Dan Adrian CIOBANU Dumitru Daniel Project leader : Ahmed RHIAT.
Prof. James A. Landay University of Washington Spring 2008 Web Interface Design, Prototyping, and Implementation Rich Internet Applications: AJAX, Server.
Client/Server Architectures
Server-side Technologies
RIA Introduce Comparison among several technology.
WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.
Web Applications Harry R. Erwin, PhD University of Sunderland CIT304/CSE301.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Web 2.0: Concepts and Applications 11 The Web Becomes 2.0.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
1 Web GIS: from Javascript to GWT Pieter De Graef – Community Manager & Lead Developer Geomajas.
 2008 Pearson Education, Inc. All rights reserved Ajax-Enabled Rich Internet Applications.
AJAX Without the “J” George Lawniczak. What is Ajax?
Ajax Technology for the Web Nic Shulver, FCET, Staffordshire University Introduction What is it? Pros and Cons Why is it important? Traditional Client-Server.
Introduction to Internet Programming (Web Based Application)
AJAX Making Dynamic Web pages more Dynamic Jim Hendricks April 25th, 2006.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Instructor, Dr. Khalili Bahram Jeevan Kumar Gogineni.
20-753: Fundamentals of Web Programming 1 Lecture 1: Introduction Fundamentals of Web Programming Lecture 1: Introduction.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
The Web Architecture and ASP.NET. Slide 2 Review of the Web (1) It began with HTTP and HTML, which delivers static Web pages to browsers which would render.
Silverlight Technology. Table of Contents 1.What is Silverlight Technology? 2.Silverlight Overview. 2.1 How it works 2.2 Silverlight development tools.
Weekend MS CS Program Internet and Web Technologies COT 5930 Web Project Development - Ajax Dr. Roy Levow, Associate Chair & Professor
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
Mobile web Sebastian Lopienski IT Technical Forum 29 June 2012.
AJAX The new hot technology for building Rich Internet Applications? Mikael Hammarlund.
Cs332a_chapt10.ppt CS332A Advanced HTML Programming DHTML Dynamic Hypertext Markup Language A term describing a series of technologies Not a stand-a-lone.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
Rich Internet Application
REAL WORLD AJAX MARCH TIBCO USER CONFERENCE / 2004 Enterprise Rich Internet Applications with AJAX Real World Case Studies with TIBCO General Interface™
Web Development Process The Site Development Process Site Construction is one of the last steps.
Contents : What is Silverlight? Silverlight Overview Silverlight Toolkit Overview Timeline & Packaging Silverlight V1.0 & V1.1 Properties of V1.0 Properties.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
Weekend MS CS Program Internet and Web Technologies COT 5930 Web Project Development - Ajax Dr. Roy Levow, Associate Chair & Professor
1 What is JQuery. jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax* interactions.
Web 2.0: Concepts and Applications 11 The Web Becomes 2.0.
Introduction to JavaScript Fort Collins, CO Copyright © XTR Systems, LLC Introduction to JavaScript Programming Instructor: Joseph DiVerdi, Ph.D., MBA.
Prof. James A. Landay University of Washington Spring 2008 Web Interface Design, Prototyping, and Implementation Rich Internet Applications: AJAX, Server.
Ajax! Ajax Programming Ajax! Ajax Programming. Ajax! Ajax Programming Take a look at a typical desktop application (Spreadsheet app, etc.) The program.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
10 Mobile Application Framework Must Know to Launch New App.
CS320 Web and Internet Programming Introduction to Web Application Development Chengyu Sun California State University, Los Angeles.
Technologies For Creating Rich Internet Applications Presenter's name
INNOV-16: Rich User Interface for the Web???? AJAX to the Rescue Ken Wilner VP of Technology Progress Software.
JQuery Fundamentals Introduction Tutorial Videos
Google Web Toolkit Tutorial
Application with Cross-Platform GUI
Web App vs Mobile App.
CS5220 Advanced Topics in Web Programming Course Overview
Silverlight Technology
Introduction to JavaScript & jQuery
CS5220 Advanced Topics in Web Programming Course Overview
Presentation transcript:

Can you write REAL applications with AJAX? Phil Sarin Advanced UI Software April 15, 2009

Problem: Many web apps stink

Rich Internet Applications (RIAs) Easy deployment and maintenance “Desktop-like” interactivity Willing to sacrifice some “webness” (e.g., bookmarks)

RIA Approaches Browser plug-in ▫Flash/Flex, Java Swing, Silverlight ▫Potentially greater interactivity, higher barrier to adoption ▫Concerns about openness/control In browser, no plug-ins ▫AJAX ▫Lower barrier to adoption ▫Cross-browser mayhem?

Questions for today Can we approach AJAX development like “regular” GUI development? What are the approaches/tradeoffs? What’s likely to become popular?

What is AJAX?

AJAX event handling

Some History

History: Hill Climbing

RIA: Which hill to climb?

Approaching RIAs from two hills HTTPDirect Manipulation Origins in early web sitesOrigins in desktop GUIs Built around the HTTP protocolBuilt around user events Generating HTMLLaying out graphical objects

The HTTP Hill

Static Pages Server fetches and returns a web page Initially just text-based With Mosaic, pictures too

The HTTP Hill Dynamic Pages Server-side ▫CGI (mostly perl) Client-side ▫Javascript

The HTTP Hill “Frameworks” MVC support (Struts 1 & 2, Rails, Django) Easier HTML generation (JSP, ERB, Freemarker, …) State/sessions Javascript libraries (Prototype, DOJO, jQuery)

The HTTP Hill Pros/Cons (prior to AJAX) +Very cheap for simple sites +Reasonably flexible ▫Mail clients! +Web-friendly ▫Bookmarkable ▫Indexable -Slow feedback -Minimal interactivity -Cross-browser mayhem

The Direct Manipulation Hill

GUI Toolkits Common widget set across applications Standalone or client-server

The Direct Manipulation Hill for Internet applications Browser Plug-Ins Flash, Java, Silverlight Took a long time to catch on

The Direct Manipulation Hill Pros/Cons +Timely feedback +Programming power (behaviors, constraints – at least possible) +Common widgets (consistency, usability) +Flash/etc: more consistent runtime platform -Flash/etc: needs a plug-in -Cross-platform issues still exist -Proprietary runtime platform

Where does AJAX fit in?

Both hills!

AJAX on the HTTP Hill Tactical features ▫Autocomplete ▫Drag and drop AJAX-aware code ▫Raw Javascript/HTML/CSS ▫Or with a library Okay for some applications Too limiting for RIAs Not the focus of this talk

Direct Manipulation AJAX

AJAX on the Direct Manipulation Hill Separate development environment from runtime environment. Runtime environment: HTML/Javascript/CSS (AJAX) Development environment: toolkit in another language Two approaches: thin and fat

Thin Client AJAX Approach

Example: Google Maps (pretend it’s a thin client app)

A Grid of Images

Example: Google Maps

Sequence

Thin Client Pros and Cons +Simple programming: ignore the network +All your code runs server-side +Programmers love it! +Undo, behaviors, constraints: all possible! -Scalability (server-side state, lots of requests) -Slow feedback: network hop for each user action

Fat Client AJAX Approach

Example: Google Maps

Sequence

Wait a second… No AJAX calls involved in moving the map around! ▫Mostly Javascript. ▫New image requests are synchronous Example AJAX call: adding an intermediate destination

Fat Client Pros and Cons +Scalable (client-side state, fewer HTTP calls) +Fast feedback +Undo, behaviors, constraints possible… -…but undo more complex than on the desktop -More complicated: network-aware, distributed

Example AJAX Toolkits Google Web Toolkit: Fat Client ▫Write in Java, compiled to Javascript Cappuccino: Fat Client Echo2: Thin Client ▫Write in Java ▫No HTML/CSS (proprietary stylesheet language) Echo3 (Java – Beta): hybrid ▫Thin widgets in Java ▫Fat widgets in Javascript

So, is AJAX viable for RIAs? Fat AJAXThin AJAXPlugin (Flash, Swing) Feedback SpeedWinner (tied) Interactive Potential Winner ScalabilityWinner (tied) Cross-platform Consistency Winner MomentumGoogle does a lot of work for you. ?Adobe does a lot of work for you. Ease of Programming Winner

Thin vs Fat AJAX? Thin AJAX: Squeezed out ▫Insufficient if interactivity matters ▫Not as easy as an HTTP-oriented application Fat AJAX: How does it compare to plug ins? ▫Developer adoption? ▫Application philosophy?

Some Toolkits

GWT: A Toolkit… Laying out widgets in a container “panel” Events and handlers // Create a Horizontal Panel HorizontalPanel hPanel = new HorizontalPanel(); // Leave some room between the widgets hPanel.setSpacing(5); // Add some content to the panel for (int i = 1; i < 5; i++) { hPanel.add(new Button("Button " + i)); } ideUserInterface.html

…with non-strict abstractions Styling with CSS Directly embed Javascript Raw HTML Direct DOM manipulation private native void putElementLinkIDsInList(Element elt, ArrayList list) /*-{ var links = elt.getElementsByTagName("a"); for (var i = 0; i < links.length; i++ ) { var link = links.item(i); link.id = ("uid-a-" + i); t;) (link.id); } }-*/; ideUserInterface.html

Cappuccino: A different philosophy “When you program in Cappuccino, you don't need to concern yourself with the complexities of traditional web technologies like HTML, CSS, or even the DOM. The unpleasantries of building complex cross browser applications are abstracted away for you.”

Javascript as “assembly language”

Cappuccino vs GWT Philosophical question GWT: RIAs that are part of of the web Cappuccino: RIAs deployed over the web ▫Alternative to Flash/Flex

Finally

Recommendations If you’re serious about RIAs, climb the direct manipulation hill. Don’t limit yourself to Thin AJAX. AJAX sweet spot: Applications that are part of the web. AJAX is an implementation alternative for applications deployed over the web.

References 1 adaptive path » ajax: a new approach to web applications. (n.d.).. Retrieved April 8, 2009, from Adobe wants to be the Microsoft of the Web at Ted Leung on the Air. (n.d.).. Retrieved April 8, 2009, from wants-to-be-the-microsoft-of-the-web/. wants-to-be-the-microsoft-of-the-web/ Cappuccino Web Framework - Build Desktop Class Applications in Objective-J and JavaScript. (n.d.).. Retrieved April 15, 2009, from Comparing the Google Web Toolkit to Echo2. (n.d.).. Retrieved April 9, 2009, from

References 2 Dare Obasanjo aka Carnage4Life - What Comes After AJAX? (n.d.).. Retrieved April 8, 2009, from 4ed2-b387-c9ec966d ed2-b387-c9ec966d8418 Developer's Guide - Google Web Toolkit - Google Code. (n.d.).. Retrieved April 9, 2009, from Echo2 Technical Overview | Echo Web Framework. (n.d.).. Retrieved April 8, 2009, from Echo2 Tutorial | Echo Web Framework. (n.d.).. Retrieved April 8, 2009, from

References 3 Echo2 versus GWT The Register. (n.d.).. Retrieved April 9, 2009, from Feigin, B. (n.d.). Cappuccino and Objective-J. Retrieved from %20Cappuccino.pptx. %20Cappuccino.pptx Following up on “The Microsoft of the Web” at Ted Leung on the Air. (n.d.).. Retrieved April 8, 2009, from up-on-the-microsoft-of-the-web/. up-on-the-microsoft-of-the-web/ LaszloWhitePaper.pdf. (n.d.).. Retrieved April 8, 2009, from

References 4 Mesbah, A., & van Deursen, A. (2006). An Architectural Style for Ajax. cs/ Retrieved April 8, 2009, from C Shan, & Winnie W Hua. (2006). Taxonomy of Java Web Application Frameworks. In e-Business Engineering, ICEBE '06. IEEE International Conference on (pp ). doi: /ICEBE