Avrom Roy-Faderman Senior Instructor and Programmer May 15, 2008 The Evolving Web UI.

Slides:



Advertisements
Similar presentations
JDeveloper 10g View Layer Alternatives — JSP and UIX Peter Koletzke Technical Director & Principal Instructor.
Advertisements

Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
Developing JSF Pages Using ADF Faces. ADF Faces Rich Client Components Over 150 components Ajax enabled Pluggable look and feel Accessibility & internationalization.
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
© 2009 Research In Motion Limited Methods of application development for mobile devices.
1 Cleaning up the Internet Using AJAX, SOAP and Comet CS526 Mike Gerschefske Justin Gray James Yoo 02 May 2006.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
® IBM Software Group © 2006 IBM Corporation Additional AJAX Examples and Workshops This learning module provides additional AJAX use cases and examples.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Client/Server Architectures
1 Vendor RFI - Event User Guide. 2 Minimum System Requirements Internet connection - Modem, ISDN, DSL, T1. Your connection speed determines your access.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Chapter 9 Web Applications Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.
INTRODUCTION TO WEB DATABASE PROGRAMMING
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
JavaScript & jQuery the missing manual Chapter 11
1 Ajax. 2 What’s Ajax? AJAX is a combination of a few technologies that has come together in the past few years AJAX used to be an acronym for Asynchronous.
5/5/2005Toni Räikkönen Internet based data collection from enterprises using XML questionnaires and XCola engine CoRD Meeting May 11th 2005.
May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Build Great Web Application 'Fast and Easy'
11/13/2007 A synchronous J avaScript A nd X ML Gloria Law Joshua Mahaz.
Joe Hummel, PhD Dept of Mathematics and Computer Science Lake Forest College
Avrom Roy-Faderman Senior Instructor and Programmer February 19, 2008 Whither Business Logic?
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
DIRAC Web User Interface A.Casajus (Universitat de Barcelona) M.Sapunov (CPPM Marseille) On behalf of the LHCb DIRAC Team.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
AJAX Without the “J” George Lawniczak. What is Ajax?
Programming with Microsoft Visual Basic 2012 Chapter 12: Web Applications.
1 The following presentation is from the Oracle Webcast “What’s New in P6 EPPM Release 8.1.” As a partner, you may not use the Oracle Power Point template,
Marc Ziss Z Consulting Code Name 'Oryx' Web application scaffolding Easy to dynamically display pages based on the data model of.
JDeveloper 10g and JavaServer Faces: High-Performance UIs on the Web Avrom Roy-Faderman Senior Programmer May, 2006.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
AJAX and Atlas in ASP.NET 2.0 William J. Steele MSDN Developer Evangelist Microsoft Corporation
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. Programming with Visual Web Developer Chapter 9.
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.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
Ventsislav Popov Crossroad Ltd.. 1. What is AJAX?  AJAX Concept  ASP.NET AJAX Framework 2. ASP.NET AJAX Server Controls  ScriptManager, UpdatePanel.
Are you getting the benefits from ASP.NET and AJAX? Introduction to the CTC ASP.NET Webforms Generator.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
WebSphere Portal Technical Conference U.S Creating Rich Internet (AJAX) Applications with WebSphere Portlet Factory.
Database Handling, Sessions, and AJAX. Post Back ASP.NET Functionality The IsPostBack method in ASP.NET is similar to the BlackBerry.refresh method –IsPostBack.
Telerik Software Academy ASP.NET Web Forms Telerik Software Academy ASP.NET Web Forms.
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
HTML Form Widgets. Review: HTML Forms HTML forms are used to create web pages that accept user input Forms allow the user to communicate information back.
Chapter 4: Working with ASP.NET Server Controls OUTLINE  What ASP.NET Server Controls are  How the ASP.NET run time processes the server controls on.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Introduction Selenium IDE is a Firefox extension that allows you to record, edit, and debug tests for HTML Easy record and playback Intelligent field selection.
Lotus Domino Designer 6 Overview Maureen LelandSoftware Architect IBM Lotus.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
IT533 Lectures ASP.NET AJAX.
Presentation.
 AJAX technology  Rich User Experience  Characteristics  Real live examples  JavaScript and AJAX  Web application workflow model – synchronous vs.
Ajax! Ajax Programming Ajax! Ajax Programming. Ajax! Ajax Programming Take a look at a typical desktop application (Spreadsheet app, etc.) The program.
The New Face of ASP.NET ASP.NET MVC, Razor, and jQuery Ido Flatow | Senior Architect | Sela | This session is.
Education And Training CTC IT DIVISION PivotLink User Training April 2010.
Web Programming Java Script-Introduction. What is Javascript? JavaScript is a scripting language using for the Web. JavaScript is a programming language.
111 State Management Beginning ASP.NET in C# and VB Chapter 4 Pages
Ajax & Client-side Dynamic Web Gunwoo Park (Undergraduate)
Vineel Vutukuri. What is SPA? Why SPA? Pros & Cons When to use SPA?
Section 10.1 Define scripting
ASP.NET AJAX – Basics Svetlin Nakov Telerik Corporation
Section 10.1 YOU WILL LEARN TO… Define scripting
Running C# in the browser
Presentation transcript:

Avrom Roy-Faderman Senior Instructor and Programmer May 15, 2008 The Evolving Web UI

About Me Former member of Oracle JDeveloper/ADF teams Eight years’ experience with JDeveloper and ADF J2EE consultant for 3 years

Agenda A Brief History of Web UIs Web 2.0 in ADF Faces 10 g Web 2.0 in ADF Faces 11 g Is This the Year of AJAX? Q&A

A Brief History of Web UIs Applets Traditional Web Applications “Web 2.0”

Applets Java Applications Stored on Server Downloaded with HTML Page Run by a Java Runtime Environment (JRE) on the Client

Applets: UI Lifecycle User Interacts with Applet Applet Contacts Server if needed Applet Changes Display Browser Downloads Applet Browser Downloads Page

Applets: Pro and Cons Pro: –Highly Interactive Cons: –Download Time –Write Once, Debug Everywhere –IE Stopped Supporting Them Java applets are virtually dead as a technology

A Brief History of Web UIs Applets Traditional Web Applications “Web 2.0”

Traditional Web Applications Java Applications Run on Server Produce HTML –And possibly Javascript HTML (+ Javascript) is all that is downloaded As far as the user is concerned, just an HTML page

Traditional Web Applications: UI Lifecycle Server Creates Page User Interacts with Form Browser Downloads Page User Submits Form Browser Requests Page

Traditional Web Applications: Pros and Cons Pros: –Quick Initial Download –HTML is universal; Javascript nearly so Cons: –Terrible interactivity –Static feel

A Brief History of Web UIs Applets Traditional Web Applications “Web 2.0”

Web 2.0 Applications Are web applications, like any other But a very different lifecycle

Web 2.0 Applications: UI Lifecycle Server Creates Page User Interacts with Page Browser Downloads Page Form and Server Communicate Constantly Browser Requests Page

AJAX

Javascript –Can be invoked during use of controls, not just links/buttons –Sends messages to server –Translate’s server’s responses into page changes XML –The format of the sent/received messages Asynchronous –Messages can be sent/received in the background –Lets user keep using the page

The Year of AJAX ?

Agenda A Brief History of Web UIs Web 2.0 in ADF Faces 10 g Web 2.0 in ADF Faces 11 g Is This the Year of AJAX? Q&A

Web 2.0 UI Lifecycle Redux Server Creates Page User Interacts with Page Browser Downloads Page Form and Server Communicate Constantly Browser Requests Page

Partial Page Refresh User Manipulates Component Javascript Event Fires Form Submitted to Server Server Re- Renders Components Changes Downloaded as XML Javascript Makes Changes to Page

Simple PPR Example... Manual PPR fires on change –Text field blurs with new value –New selection from dropdown list –…

Automatic PPR Some components are enabled for automatic PPR This fires at various times, depending on component functionality –Table column sort –Table pagination –Table detail expansion –Tree expansion –…

PPR: Advantages Bandwidth use is quite small Server only needs to recreate a portion of the page Much more interactive than a traditional form

PPR: Limitations Doesn’t help with latency Helps some with processing time on server, but doesn’t eliminate it Submits complete form, so be careful with file attachments Not really asynchronous, so interrupts user

Should You Use PPR?

Agenda A Brief History of Web UIs Web 2.0 in ADF Faces 10 g Web 2.0 in ADF Faces 11 g Is This the Year of AJAX? Q&A

ADF Faces 11 g Currently in Technical Preview 4 –With rest of ADF and JDeveloper –Seems pretty stable –Not a production release! Targeted for production by end of year Will include ADF Rich Client

ADF Rich Client Components with strong Web 2.0 feel Based on “Active Data Framework” –Extensive Javascript Framework for interacting with components on the client –Confusing name

Drag-and-Drop

Tables that Load on Scrolling

Rich Text Editor

Pulse A pulse can send a request to the server every few seconds This can act as a “keep-alive” notice that the browser window is still open Keep the session active while it’s accessible, but shut it down quickly to –Increase security –Unlock rows (for pessimistic locking) –Free resources faster

Selectable Content Delivery Can limit PPR for tables, trees, popups, etc –lazy (default) – load a (specifiable) number of rows/nodes as needed, or load popup when first requested –immediate – load all rows/nodes/popups on page load, and just hide them Lazy load is necessary if you have large amounts of content For small amounts of content, immediate load ups the interactivity

Immediate Load: Example...

Custom Rich Interaction Server listeners –Trigger PPR on any Javascript event –Can include rollover, selection, dragging on, etc. –Much richer than old onChange PPR Client listeners –Listeners for any Javascript event –Call other Javascript functions –Invoking Javascript (rather than PPR) means no network round-trip

Client Listeners Many different event types... Javascript function can call active data framework Need to create client components for function to work on

Agenda A Brief History of Web UIs Web 2.0 in ADF Faces 10 g Web 2.0 in ADF Faces 11 g Is This the Year of AJAX? Q&A

What Would Make the Year of AJAX? An AJAX framework that was –Declarative –Easy to use –Able to take full advantage of AJAX technology Is ADF Faces 11g Rich Client that framework?

Oh Man, It’s Close

What I’d Like to See in 12 g Background validation –Keep on typing when you leave a field –The field is highlighted as soon as the server notices the problem Background loading –Load the first few rows/nodes (as in lazy loading) –Start loading the rest in the background –Show “Fetching Data” only when the user scrolls faster than the asynchronous load can keep up with

Asynchronicity And Server Load There’s a general tradeoff between server load and interactivity –Traditional web app: Lots of think time –PPR: Less think time –Continuous AJAX: Almost no think time Can artificially add client-side delays to pull the tradeoff back in the other direction

Asynchronicity Isn’t for Everything Dependent selections –Dropdown lists –List boxes –Radio buttons You need the later selection options to refresh before users can select things from them –But could load all possibilities and apply a filter client-side –A declarative way to do that would be very nice

What to Do in the Meantime Know that this is still pretty state-of-the- art Use immediate/lazy loading appropriately Consider learning the Active Data Framework and implementing some pure Javascript solutions If you’re feeling ambitious, learn about asynchronous calls and do some yourself –Need to know active data framework –Need to know how server listeners get invoked

About Quovera Books co-authored with Peter Koletzke and Dr. Paul Dorsey ORACLE9i Jdeveloper Handbook Also co-authored with Duncan Mills Oracle Jdeveloper 10 g Handbook Oracle Jdeveloper 11 g Handbook Coming soon Founded in 1995 Strong High-Tech industry background 200+ clients/300+ projects Oracle Partner Design – Development – Instruction – Mentoring More technical white papers and presentations on the web site

Q&A