Download ppt - Gwt Presentation1

Transcript
Page 1: Gwt Presentation1

GWT A 'new' way to program dynamic web applications

- Usman- Pavan

- Rajakumar

Page 2: Gwt Presentation1

Overview of AJAX development Problems with AJAX What is GWT ? Why GWT ? Sample application User Interface with GWT RPC Cons

Agenda

Page 3: Gwt Presentation1

Classic web application model (synchronous)

Page 4: Gwt Presentation1

Ajax web application model (asynchronous)

Page 5: Gwt Presentation1

Server - sideClient – side

Javascript JAVA

+ no page transition, no blocking- No IDE- Debugging is difficult- weakly typed

+ eclipse: debugging, easy development- good IDE’s- Debugging is easy- strongly typed

Asynchronous JavaScript and XML (AJAX)

Page 6: Gwt Presentation1

AJAX Asynchronous JavaScript and XML.

Clientside javascript to asynchronously fetch the data

Using the DOM API dynamically modify the page

Based on javascript,html,xml,css.xhtml,DOM.

Web browser UI to be more interactive and to respond quickly to inputs

Page 7: Gwt Presentation1

Drawbacks Multiple languages and framework across

stack Mixing the js,jsp,xml,java leads maintenance

problem Less modularization Less reusable code Breaks MVC principle. Complicated debugging and testing with

different browsers. Browsers back button and history maintains

problem OOPS

Page 8: Gwt Presentation1

What is GWT ?A FrameWork for building highly perfomant, Ajax

enabled , Javascript front-end web applications .

Provides Java-to-javaScirpt Compiler . Allow to use the java development tools like

netbeans and eclipse. Shell to test and debug modules without compilation Simple asynchronous browser-to-server RPC

Page 9: Gwt Presentation1

Why GWT ?

Rich user Interface Open source No need to learn Javascript language No need to learn DOM Api( use java Api) No plugIns required in client side Junit integration

Page 10: Gwt Presentation1

Why GWT ? (Cont ... )

OOPS Asynchronous Calls To share load between client and server Keeping only insensitive data on client side Not for validation but for the better and rich user

interface.

Page 11: Gwt Presentation1

GWT Application Architecture

Page 12: Gwt Presentation1

Modes of Running Gwt application

Gwt Application can run in two modes .Host Mode

Hosted Mode is a 'simulated' mode Run entirely from Eclipse using the GWT Shell. * Consists of a customized Tomcat Web container. * Makes debugging easier . Web Mode Run as pure JavaScript and HTML,compiled from

your original Java source code with the GWT

Page 13: Gwt Presentation1

Google Web Toolkit (GWT)@ deployment time@ development time

<html>[...]<script type="text/javascript">[...]xmlhttp.open("POST", url, true);xmlhttp.onreadystatechange = function(func) { if (xmlhttp.readyState == 4) { [...] }}xmlhttp.setRequestHeader('MessageType', 'CALL');xmlhttp.setRequestHeader('Content-Type', 'text/xml');</script><body>[...]</body></html>

JAV

A/e

clip

se

java

scrip

t

Hosted modeJVMIDE

Com

pile

to J

AVA

byte

code

Compile toJavascript

Page 14: Gwt Presentation1

GWT: project structurePackage Purpose

it/sella/gwt/The project root package contains module XML files

it/sella/gwt/client/ Client-side source files and subpackages

it/sella/gwt/server/ Server-side code and subpackages

it/sella/gwt/public/ Static resources that can be served publicly

Page 15: Gwt Presentation1

GWT Modules *.gwt.xml

Jsp,Html, ...

Entry point class (java class)

Css , Images ,other xmls …

External java script file

Page 16: Gwt Presentation1

UI widget library

Page 17: Gwt Presentation1

GWT-RPC

These are Asynchronous Calls.

A framework used to exchange java objects .

Based on the java servlet architecture .

GWT handle the serialization of java objects.

GWT-RPC services are not same as web services . .

Page 18: Gwt Presentation1

RPC plumbing diagram

Page 19: Gwt Presentation1

Corns of GWT Browser compatibility pretty good but issues

with some browsers. Although java to javascript convertion takes

place, not all features of java can be implemented .eg multi threading,Calender etc

Gwt generated javascript and html are very difficult to understand .

Layouts,panels and some widgets have bugs .

Page 20: Gwt Presentation1

Corns of GWT ( Cont... ) The appearance of the application depends

on the browser. Take long time to load and heavily uses the

client resources.

Page 21: Gwt Presentation1

Reference Documentation & Tutorial : http://code.google.com/webtoolkit/ http://code.google.com/webtoolkit/tutorials/1.6/

index.html Libraries http://gwt-ext.com/ http://extjs.com/products/gxt/ Showcase http://gwt.google.com/samples/Showcase/Sho

wcase.html http://www.gwt-ext.com/demo/#credits