GWT Architectures and Lessons Learned

Size: px
Start display at page:

Download "GWT Architectures and Lessons Learned"

Transcription

1 GWT Architectures and Lessons Learned Dipl. Wi.-Ing. Papick Garcia Taboada pgt technology scouting GmbH! Orientation in Objects GmbH!

2 GWT Development Basics Structuring the UI Talking to the server

3 Shift happened Java development, JS deployment, Async, RPC, RIA/ single page,...

4 Web 2.0? development is all about js html css!! none of it! jcp oracle IBM backend

5 what is a GWT application? a chunk of JS that does a lot of DOM manipulation to create web applications

6 UI component model Components Widget t = new TextBox(); RootPanel.get().add(t);! Browser Composite

7 + testability! + maintainance! + product development Architecture shift Web applications Model 2 web applications Rich internet applications

8 classic web! development Browser Server user action full html response user action full html response user action full html response

9 RIA web development Browser first request Server full html response event event event data request event data data request data

10 Web frameworks

11 low level, generic tools

12 let s build big things

13 TextBox t0 = new TextBox(); TextBox t1 = new TextBox(); TextBox t2 = new TextBox(); TextBox t3 = new TextBox(); TextBox t4 = new TextBox(); VerticalPanel... SplitPanel... ScrollPanel RootPanel.get().add(mainPanel);

14 maintainance hell

15 MacGyver All he needed was a ballpoint pen and a paper clip

16 Ops

17 Widget t = new TextBox(); RootPanel.get().add(t);! not enough

18 app-framework wizardry needed

19 GWT Development Basics Structuring the UI Talking to the server

20 GWT DEVELOPMENT IS COMPLICATED HOT NEW STUFF.

21 NOT REALLY

22 GWT development is not new, but different WHY?

23 1) WEB DEVELOPMENT IS NOT NEW...

24 HTML 2.0 November 1995 CSS 1 Dez 1996 HTML 4.0 update April 1998 HTML Dez 1999 HTML 3.2 Januar 1997 XHTML 1.0 Jan 2000 JDK 1.0 Jan 1996 JDK 1.1 Feb 1997 HTML 4.0 Dezember 1997 CSS 2 Mai 1998 J2SE 1.2 Dez 1998 J2SE 1.3 Mai 2000 Java EE 1.2 Dez 1999 XHTML 1.1 Mai 2001 Internet Explorer 6 Aug 2001 CSS 2.1 Feb 2004 Jun 2011 CSS level 2 revision 1, often referred to as "CSS 2.1", fixes errors in CSS 2, removes poorly supported or not fully interoperable features and adds already-implemented browser extensions to the specification. In order to comply with the W3C Process for standardizing technical specifications, CSS 2.1 went back and forth between Working Draft status and Candidate Recommendation status for many years. Jan 2000 Jan 2005 THERE IS NOT A MOMENT TO LOOSE

25 2) RICH CLIENT DEVELOPMENT IS NOT NEW EITHER

26 nothing new here

27 Jan 2007 really NOTHING new here

28 Look! YES! This is my code!

29 It s all about software engineering

30 Just a few tips

31 USE MVP! You will get used to it

32 MODEL USE MVP! You will get PRESENTER used to it VIEW

33 MODEL USE MVP! You will get used to it unit test this PRESENTER MOCK VIEW

34 MODEL USE MVP! You will get PRESENTER used to it DESKTOP VIEW MOBILE VIEW

35 event bus please

36 eventbus.fireevent( NotificationEvent.info( "Daten wurden erfolgreich gespeichert" ) );

37 SINGLETON don t public static instance

38 BUT ON IE 6 IT IS SO SLOW!

39 BUT ON IE 7 IT IS SO SLOW!

40 BUT ON IE 8 IT IS SO SLOW!

41 BUT ON IE 9 IT IS SO SLOW!

42 DID ANYONE TEST ON IE / SURFACE?

43 MOBILE? DID ANYONE TEST ON IE / SURFACE?

44 MOBILE? DID ANYONE TEST ON IE / SURFACE? CHEAP ANDROID DEVICES?

45 browsers day to day job

46 too many HTTP requests

47 > 2400 DOM elements Awesome?

48 too many widgets

49 use large HTML chunks

50 use large HTML chunks

51 too many widgets ain t good

52 WHY?

53 <div /> in GWT a Widget is a JS thing holding a DOM thing

54 CREATE CUSTOM WIDGETS CREATE CUSTOM EVENTS don t extend SimplePanel don t extend VerticalPanel don t extend FlextTable extend composite!!!

55 @-webkit-keyframes redpulse { from { box-shadow: 0px 0px 2px #ff0033; } 50% { box-shadow: 0px 0px 10px #ff0033; } to { box-shadow: 0px 0px 2px #ff0033; } } the new native! do it in CSS

56 <g:layoutpanel stylename="{b.style.maincontent}"> <g:layer left="0" right="340px" top="0" height="50%" <g:simplelayoutpanel stylename="{b.style.mainwidge <ux:dashboardterminedatagrid ui:field="termineta </g:simplelayoutpanel> </g:layer> <g:layer right="0" width="340px" top="0" height="50% <g:simplelayoutpanel stylename="{b.style.mainwidge <ux:kwstatsdatagrid ui:field="statstable" stylen </g:simplelayoutpanel> </g:layer> <g:layer right="0" left="0" bottom="0" height="50%"> <g:simplelayoutpanel stylename="{b.style.mainwidge <ux:wartelistedatagrid ui:field="wartelistetable </g:simplelayoutpanel> </g:layer> </g:layoutpanel> use LayoutPanel

57 GWT Development Basics Structuring the UI Talking to the server

58 SINGLE PAGE APPLICATION

59 NAVIGATION?

60 some action? mainpanel.setwiget( bwidget ); mainpanel.setwiget( awidget ); View B View A just do it pattern

61 View B2 View C View C View C3 View B View A View D hard to maintain

62 history management from day one!! back button and refresh as a feature (not a catastrophe)

63 Keep It Stupid Simple use PLACES framework for main level navigation if you really need to, nest activities for a second level. try not to. use dialogs for user input, showing data. dialogs are easily reused.

64 EXAMPLE

65

66 top menue bound to places framework

67 switching between places with fade in and out

68 teach user to wait until application is ready again

69 gives us enough time to load the required content 300ms out 500ms in

70

71 Components inside of activity fire non public,! CUSTOM events

72 datepicker sends WEEK selected event

73 BOOKMARKABLE presenter may goto itself, view may be cached!

74 #ashtag!

75 STATELESS VIEW! URL contains EVERYTHING needed to rebuild view user hits reload view is back again GWT apps starts, activity gets fired presenter loads data from server

76 some actions don t require PLACE navigation at all

77 use POPUPS/ DIALOGS to stay ABOVE navigation

78 let POPUPS/ DIALOGS move slowly into view pin POPUPS to one side of the window

79 Search DIALOG slides in from right side, stays on TOP Don t move your user away from his PLACE unless you have to.

80 Navigation should not hurt The application shown uses only 3 levels of navigation, DOES NOT NEED MORE PLACES used for bookmarkable entry points/ back button navigation consistency Activities should be STATELESS, to survive page reloads Learn from OTHERS, lookout for hashtags

81 Once upon a time, a young good designer did a good looking design... he will be using photoshop or dreamweaver! he will not use the software! he will not build the software! he will not maintain the software

82 BEFORE YOU ADD THE LOGO TO THE TOP how many pixels do your USERS have? the designer or marketing guy using photoshop is probably sitting in front of a 27 apple cinema display

83 GWT Development Basics Structuring the UI Talking to the server

84 GWT-RPC is a good solution if handled with care GWT-RPC binds many methods into one interface SomeResult somemethodname(someparameter spo) Interface Versioning is a monstrous thing

85 this will be an object SomeResult somemethodname ( SomeParameter spo ) this will be an object too

86 the method names bind the requests to the result SomeResult somemethodname ( SomeParameter spo ) typesafety all the way

87 PRO TIP: Java Generics FAQ! 400 pages. USING GENERICS FOR! TYPESAFETY, GET RID OF METHODS!! AND INTERFACES

88 now we just have one interface with one method <A extends Action<R>, R extends Result> R execute(a action); typesafety all the way

89 ! command pattern GOF Pattern! commonly used in Rich Clients!

90 someaction EXECUTE someactionhandler someresult

91 someaction POJOS someactionhandler someresult

92 client server GWT client someaction GWT-RPC someactionhandler someresult batching caching security caching exception translation security

93 client server Java client someaction RMI / HTTPInvoker someactionhandler someresult batching caching security caching exception translation security

94 client server Mobile client someaction JSON-servlet someactionhandler someresult batching caching security caching exception translation security

95 type safety aka DTOs public class TerminLoadAction implements Action<DataResult<TerminData>> {! private String terminid;! public TerminLoadAction(String terminid) { this.terminid = terminid; }! public String getterminid() { return terminid; } } public class DataResult<DATA extends Data> implements Result {! private DATA data;! public DataResult(DATA data) { this.data = data; }! public void setdata(data data) { this.data = data; }! public DATA getdata() { return data; }! } Reusable Action Result

96 <A extends Action<R>, R extends Result> void execute(a action, AsyncCallback<R> callback) dispatch.execute(! new TerminLoadAction(terminId),!!!! ); new AsyncCallback<DataResult<TerminData>>() { public void onfailure(throwable caught) { public void onsuccess(dataresult<termindata> result) { }

97 Server side type safety handler to action mapping action execution public interface ActionHandler <A extends Action<R>, R extends Result> {! Class<A> getactiontype();!!!! R execute( A action, ExecutionContext context) again Execution context for server side command execution! } throws DispatchException; declared exception hiearchy

98 Server side custom annotationspring access to backend type public final class TerminDataLoadHandler implements ActionHandler<TerminLoadAction, DataResult<TerminData>> private TerminDAO public DataResult<TerminData> execute( TerminLoadAction action, ExecutionContext context) throws DispatchException {! TerminBean termin =! TerminData data =! return new DataResult<TerminData>(data);! public Class<TerminLoadAction> getactiontype() { return TerminLoadAction.class; }! } business logic, etc

99 interface versioning hell?

100 easy way right way? public interface SomeNiceService extends RemoteService {! String someservice(string param);! String someservicev2(string param);! String someservicev3(string param); } maintainability? maintainability? public interface SomeNiceService extends RemoteService {! String someservice(string param);! }! public interface SomeNiceServiceV2 extends RemoteService {! String someservice(string param);! }! public interface SomeNiceServiceV3 extends RemoteService {! String someservice(string param);! }

101 someaction POJOS someactionhandler someresult

102 different versions can coexist! someaction someactionv2 multiple versions someactionhandler someactionhandlerv2 someresult same result

103 someaction someactionv2 multiple versions someactionhandler someactionhandlerv2 someresult someresultv2 different results

104 why batch?

105 do it then do this finally do that done

106 do it, then this, finally that done

107 solving common one batch call is better than 10 single calls problems less data less roundtrip latency avoid connection bottleneck ensure server side execution order less roundtrips

108 someaction1 client server someaction2 batchactionhandler someaction3 batchaction someaction1 batchresult someaction2 someresult1 someaction3 someresult2 someresult3 batching can be manual or automatic server executes actions in given order

109 automatic batching?

110 IDLE Scheduler.scheduleEntry( ) GWT code execution Scheduler.scheduleFinally( ) browser event loop Scheduler.scheduleDeferred( )

111 IDLE Scheduler.scheduleEntry( ) GWT code execution Scheduler.scheduleFinally( )

112 IDLE Scheduler.scheduleEntry( ) collect commands cmd 1! GWT code execution cmd 2! cmd 3! cmd Scheduler.scheduleFinally( ) fire batch command

113 BATCH EXECUTION ENABLES FINE GRAINED COMMANDS AND REUSE! +! ENABLES ORDERING ACTIONS FOR EXECUTION ON THE SERVER

114 toggleterminmetadata BooleanResult reloaddashboardtermine DataListResult<Termin>

115 toggleterminmetadata BooleanResult reloadtermin DataResult<Termin>

116 toggleterminmetadata BooleanResult loadmonthstats DataResult<MonthStats> loadmonthtermine DataListResult<Termin>

117 + caching

118 + reauth when session expired

119 + exception handling

120 Thanks! GWT Development Basics Structuring the UI Talking to the server

121

PGT T3CHNOLOGY SCOUTING. Google Webtoolkit. JSF done right?

PGT T3CHNOLOGY SCOUTING. Google Webtoolkit. JSF done right? Google Webtoolkit JSF done right? Session topics Web 2.0, Ajax GWT What is it? Java EE and the Web GWT and Java EE JSF done right? Time for a demo? 2 2008 Dipl.-Wing. P. G. Taboada Web 2.0 Hard to define

More information

Oracle Developer Day

Oracle Developer Day Oracle Developer Day Sponsored by: J2EE Track: Session #3 Developing JavaServer Faces Applications Name Title Agenda Introduction to JavaServer Faces What is JavaServer Faces Goals Architecture Request

More information

GWT: The Technical Advantage. Presenter: Anirudh Dewani Company Name: Google

GWT: The Technical Advantage. Presenter: Anirudh Dewani Company Name: Google GWT: The Technical Advantage Presenter: Anirudh Dewani Company Name: Google What is GWT? 2 How it works Google Web Toolkit Weekly Report 09/01/2008-09/08/200 Code against Java UI libraries 3 How it works

More information

Google Wave Client: Powered by GWT. Adam Schuck 28 May, 2009

Google Wave Client: Powered by GWT. Adam Schuck 28 May, 2009 Google Wave Client: Powered by GWT Adam Schuck 28 May, 2009 Google Wave client search abuse detection saved searches folders authentication access control playback waves attachments gadgets contacts presence

More information

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Wakanda Architecture Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Note: For a more general overview of Wakanda, please see What is Wakanda?) Wakanda

More information

Oracle Developer Day

Oracle Developer Day Oracle Developer Day Sponsored by: Session5 Focusing on the UI Speaker Speaker Title Page 1 1 Agenda Building the User Interface UI Development Page Flow A Focus on Faces Introducing Java Server Faces

More information

Google Web Toolkit (GWT)

Google Web Toolkit (GWT) Google Web Toolkit (GWT) What is GWT? GWT is a development toolkit for building and optimizing complex browser-based applications You can develop all code, both client and server in Java (or with a different

More information

Development of web applications using Google Technology

Development of web applications using Google Technology International Journal of Computer Engineering and Applications, ICCSTAR-2016, Special Issue, May.16 Development of web applications using Google Technology Vaibhavi Nayak 1, Vinuta V Naik 2,Vijaykumar

More information

The Google Web Toolkit (GWT):

The Google Web Toolkit (GWT): 2012 Yaakov Chaikin The Google Web Toolkit (GWT): Advanced MVP: GWT MVP Framework (GWT 2.4 Version) Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/gwt.html

More information

Cooking with GWT: Recipes for the perfect dinner. Alberto Mijares Basel, Switzerland

Cooking with GWT: Recipes for the perfect dinner. Alberto Mijares Basel, Switzerland Cooking with GWT: Recipes for the perfect dinner Alberto Mijares alberto.mijares@canoo.com Basel, Switzerland Introduction Who am I? What do I do? What is GWT? What does GWT try to solve? What does GWT

More information

Financial. AngularJS. AngularJS.

Financial. AngularJS. AngularJS. Financial http://killexams.com/exam-detail/ Section 1: Sec One (1 to 50) Details:This section provides a huge collection of Angularjs Interview Questions with their answers hidden in a box to challenge

More information

Financial. AngularJS. AngularJS. Download Full Version :

Financial. AngularJS. AngularJS. Download Full Version : Financial AngularJS AngularJS Download Full Version : https://killexams.com/pass4sure/exam-detail/angularjs Section 1: Sec One (1 to 50) Details:This section provides a huge collection of Angularjs Interview

More information

Building your own BMC Remedy AR System v7 Applications. Maruthi Dogiparthi

Building your own BMC Remedy AR System v7 Applications. Maruthi Dogiparthi Building your own BMC Remedy AR System v7 Applications Maruthi Dogiparthi Agenda Introduction New Goodies Navigation, tree widgets Data Visualization Plug-in framework Development Guidelines Tools BMC

More information

Stanko Tadić

Stanko Tadić State of modern JavaScript development 04.02.2017. Stanko Tadić HELLO, MY NAME IS STANKO TADIĆ and I m a Principal Developer at Work & Co. I love development, music and cartoons. You might say I m a geek.

More information

GWT - RPC COMMUNICATION

GWT - RPC COMMUNICATION GWT - RPC COMMUNICATION http://www.tutorialspoint.com/gwt/gwt_rpc_communication.htm Copyright tutorialspoint.com A GWT based application is generally consists of a client side module and server side module.

More information

Developing Ajax Web Apps with GWT. Session I

Developing Ajax Web Apps with GWT. Session I Developing Ajax Web Apps with GWT Session I Contents Introduction Traditional Web RIAs Emergence of Ajax Ajax ( GWT ) Google Web Toolkit Installing and Setting up GWT in Eclipse The Project Structure Running

More information

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1 AJAX & GWT Trey Roby GRITS 5/14/09 Roby - 1 1 Change The Web is Changing Things we never imagined Central to people s lives Great Opportunity GRITS 5/14/09 Roby - 2 2 A Very Brief History of Computing

More information

Google Web Toolkit. David Geary. code.google.com/webtoolkit. corewebdeveloper.com

Google Web Toolkit. David Geary. code.google.com/webtoolkit. corewebdeveloper.com Google Web Toolkit code.google.com/webtoolkit David Geary corewebdeveloper.com clarity.training@gmail.com Copyright Clarity Training, Inc. 2009 Code http://coolandusefulgwt.com 2 Copyright Clarity Training,

More information

Java Enterprise Edition

Java Enterprise Edition Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data

More information

Web Browser as an Application Platform Antero Taivalsaari

Web Browser as an Application Platform Antero Taivalsaari Web Browser as an Application Platform Antero Taivalsaari November 27, 2007 http://research.sun.com/projects/lively lively@sun.com Background The widespread adoption of the World Wide Web has dramatically

More information

Investigating Source Code Reusability for Android and Blackberry Applications

Investigating Source Code Reusability for Android and Blackberry Applications Investigating Source Code Reusability for Android and Blackberry Applications Group G8 Jenelle Chen Aaron Jin 1 Outline Recaps Challenges with mobile development Problem definition Approach Demo Detailed

More information

Google Web Toolkit (GWT) Basics. Sang Shin Java Technology Architect & Evangelist Sun Microsystems, Inc.

Google Web Toolkit (GWT) Basics. Sang Shin Java Technology Architect & Evangelist Sun Microsystems, Inc. Google Web Toolkit (GWT) Basics Sang Shin Java Technology Architect & Evangelist Sun Microsystems, Inc. sang.shin@sun.com www.javapassion.com Disclaimer & Acknowledgments Even though Sang Shin is a full-time

More information

Web Application with AJAX. Kateb, Faris; Ahmed, Mohammed; Alzahrani, Omar. University of Colorado, Colorado Springs

Web Application with AJAX. Kateb, Faris; Ahmed, Mohammed; Alzahrani, Omar. University of Colorado, Colorado Springs Web Application with AJAX Kateb, Faris; Ahmed, Mohammed; Alzahrani, Omar University of Colorado, Colorado Springs CS 526 Advanced Internet and Web Systems Abstract Asynchronous JavaScript and XML or Ajax

More information

Credits: Some of the slides are based on material adapted from

Credits: Some of the slides are based on material adapted from 1 The Web, revisited WEB 2.0 marco.ronchetti@unitn.it Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)

More information

Beginner s Guide to Cordova and Mobile Application Development

Beginner s Guide to Cordova and Mobile Application Development November 13, 2018 Beginner s Guide to Cordova and Mobile Application Development George Campbell Lead Software Engineer Doug Davies Lead Software Engineer George Campbell Lead Software Engineer Doug Davies

More information

Simplifying GWT RPC with

Simplifying GWT RPC with 2012 Yaakov Chaikin Simplifying GWT RPC with Open Source GWT-Tools RPC Service (GWT 2.4 Version) Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/gwt.html

More information

Founder & CEO

Founder & CEO X Vaadin @joonaslehtinen Founder & CEO Introduction to Vaadin Framework User interface framework for rich web applications User Interface Components Developer Rich Productivity UX java html Desktop

More information

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML UI Course (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) HTML: Introduction The World Wide Web (WWW) and history of HTML Hypertext and Hypertext Markup Language Why HTML Prerequisites Objective

More information

Say goodbye to the pains of Ajax. Yibo

Say goodbye to the pains of Ajax. Yibo Say goodbye to the pains of Ajax Yibo DOM JavaScript XML CSS Standard Browsers: browser-specific dependencies. d Differences Complexity Exprerience: Minesweeper Google Web Toolkit make Ajax development

More information

End User Monitoring. AppDynamics Pro Documentation. Version 4.2. Page 1

End User Monitoring. AppDynamics Pro Documentation. Version 4.2. Page 1 End User Monitoring AppDynamics Pro Documentation Version 4.2 Page 1 End User Monitoring....................................................... 4 Browser Real User Monitoring.............................................

More information

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman THE NEW ERA OF WEB DEVELOPMENT qooxdoo Andreas Ecker, Derrell Lipman The Ajax Experience, 25-27 July 2007 1 Introduction Client-side JavaScript framework Professional application development Comprehensive

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

Improve and Expand JavaServer Faces Technology with JBoss Seam

Improve and Expand JavaServer Faces Technology with JBoss Seam Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.

More information

Module 3 Web Component

Module 3 Web Component Module 3 Component Model Objectives Describe the role of web components in a Java EE application Define the HTTP request-response model Compare Java servlets and JSP components Describe the basic session

More information

BEAAquaLogic. Service Bus. Interoperability With EJB Transport

BEAAquaLogic. Service Bus. Interoperability With EJB Transport BEAAquaLogic Service Bus Interoperability With EJB Transport Version 3.0 Revised: February 2008 Contents EJB Transport Introduction...........................................................1-1 Invoking

More information

Ajax and Web 2.0 Related Frameworks and Toolkits. Dennis Chen Director of Product Engineering / Potix Corporation

Ajax and Web 2.0 Related Frameworks and Toolkits. Dennis Chen Director of Product Engineering / Potix Corporation Ajax and Web 2.0 Related Frameworks and Toolkits Dennis Chen Director of Product Engineering / Potix Corporation dennischen@zkoss.org 1 Agenda Ajax Introduction Access Server Side (Java) API/Data/Service

More information

Google Web Toolkit (GWT)

Google Web Toolkit (GWT) Google Web Toolkit (GWT) St. Louis Java SIG April 12, 2007 Brad Busch Andrew Prunicki What is GWT? GWT is a much different way to develop web applications from

More information

Fundamentals of Website Development

Fundamentals of Website Development Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science In this chapter History of HTML HTML 5-2- 1 The birth of HTML HTML Blows and standardization -3- -4-2 HTML 4.0

More information

End User Monitoring. AppDynamics Pro Documentation. Version Page 1

End User Monitoring. AppDynamics Pro Documentation. Version Page 1 End User Monitoring AppDynamics Pro Documentation Version 4.1.1 Page 1 End User Monitoring....................................................... 4 Browser Real User Monitoring.............................................

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information

A Business Case for Ajax with Google Web Toolkit. Bruce Johnson Google, Inc.

A Business Case for Ajax with Google Web Toolkit. Bruce Johnson Google, Inc. A Business Case for Ajax with Google Web Toolkit Bruce Johnson Google, Inc. Topics A Simpler-Than-Possible Explanation of GWT Investing in Ajax Why Ajax, Anyway? Risks Unique to Ajax How GWT Changes Things

More information

IBM JZOS Meets Web 2.0

IBM JZOS Meets Web 2.0 IBM JZOS Meets Web 2.0 Tuesday, August 3 rd 2010 Session 7637 Steve Goetze Kirk Wolf http://dovetail.com info@dovetail.com Copyright 2010, Dovetailed Technologies Abstract The development and deployment

More information

Web Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture

Web Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture Web Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture Objectives Look at common patterns for designing Web-based presentation layer behavior Model-View-Control

More information

Properties of High Quality Software. CSE219, Computer Science III Stony Brook University

Properties of High Quality Software. CSE219, Computer Science III Stony Brook University Properties of High Quality Software CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Software Engineering Basics Important Principles for creating a Software Solution:

More information

REST AND AJAX. Introduction. Module 13

REST AND AJAX. Introduction. Module 13 Module 13 REST AND AJAX Introduction > Until now we have been building quite a classic web application: we send a request to the server, the server processes the request, and we render the result and show

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

Java Training For Six Weeks

Java Training For Six Weeks Java Training For Six Weeks Java is a set of several computer software and specifications developed by Sun Microsystems, later acquired by Oracle Corporation that provides a system for developing application

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Copyright 2012, Oracle and/or its affiliates. All rights reserved. 1 JSR344 (JSF 2.2) Status Update to JCP EC 11 September 2012 Edward Burns @edburns JCP Spec Lead 2 The following is intended to outline our general product direction. It is intended for information purposes

More information

Integrating Seam and GWT

Integrating Seam and GWT Integrating Seam and GWT Integrating the JBoss Seam Framework with the GWT Toolkit : Use cases and patterns Ferda Tartanoglu Neox ia 6563 Who we are 2 > Ferda TARTANOGLU, PhD Consultant and Software Architect

More information

JavaScript: Getting Started

JavaScript: Getting Started coreservlets.com custom onsite training JavaScript: Getting Started Slides 2016 Marty Hall, hall@coreservlets.com For additional materials, please see http://www.coreservlets.com/. The JavaScript tutorial

More information

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin, To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with

More information

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript Rich Web Applications in Server-side Java without twitter: #vaadin @joonaslehtinen Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO joonas@vaadin.com ? Vaadin is a UI framework for desktop-like

More information

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević Frontend guide Everything you need to know about HTML, CSS, JavaScript and DOM Dejan V Čančarević Today frontend is treated as a separate part of Web development and therefore frontend developer jobs are

More information

AJAX Programming Overview. Introduction. Overview

AJAX Programming Overview. Introduction. Overview AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications.

More information

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 3. Advanced C# Programming 3.1 Events in ASP.NET 3.2 Programming C# Methods 4. ASP.NET Web Forms 4.1 Page Processing

More information

Merging Ajax and Accessibility

Merging Ajax and Accessibility Merging Ajax and Accessibility Mark Meeker Architect, Orbitz Worldwide The Ajax Experience San Francisco - July 27, 2007 Merging Ajax and Accessibility - 1 Mark Meeker Architect, UI Engineering Orbitz

More information

ApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum

ApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum ApacheCon NA 2015 How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum 1Tech, Ltd. 29 Harley Street, London, W1G 9QR, UK www.1tech.eu 1 Overview Common Getting Started Problems Common

More information

COURSE 9 DESIGN PATTERNS

COURSE 9 DESIGN PATTERNS COURSE 9 DESIGN PATTERNS CONTENT Applications split on levels J2EE Design Patterns APPLICATION SERVERS In the 90 s, systems should be client-server Today, enterprise applications use the multi-tier model

More information

Html5 Css3 Javascript Interview Questions And Answers Pdf >>>CLICK HERE<<<

Html5 Css3 Javascript Interview Questions And Answers Pdf >>>CLICK HERE<<< Html5 Css3 Javascript Interview Questions And Answers Pdf HTML5, CSS3, Javascript and Jquery development. There can be a lot more HTML interview questions and answers. free html interview questions and

More information

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript Rich Web Applications in Server-side Java without twitter: #vaadin @joonaslehtinen Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO joonas@vaadin.com ? Vaadin is a UI framework for desktop-like

More information

<Insert Picture Here> Accelerated Java EE Development: The Oracle Way

<Insert Picture Here> Accelerated Java EE Development: The Oracle Way 1 1 Accelerated Java EE Development: The Oracle Way Dana Singleterry Principal Product Manager Oracle JDeveloper and Oracle ADF http://blogs.oracle.com/dana Warning demo contains

More information

Active Workspace 3.4 Configuration. David McLaughlin / Oct 2017

Active Workspace 3.4 Configuration. David McLaughlin / Oct 2017 Active Workspace 3.4 Configuration David McLaughlin / Oct 2017 . Active Workspace Configuration Areas that can and should be configured Tips on how they work, and where to find more information New capabilities

More information

eclipse rich ajax platform (rap)

eclipse rich ajax platform (rap) eclipse rich ajax platform (rap) winner Jochen Krause CEO Innoopract Member of the Board of Directors Eclipse Foundation jkrause@innoopract.com GmbH outline rich ajax platform project status and background

More information

Big Modular Java with Guice

Big Modular Java with Guice Big Modular Java with Guice Jesse Wilson Dhanji Prasanna May 28, 2009 Post your questions for this talk on Google Moderator: code.google.com/events/io/questions Click on the Tech Talks Q&A link. 2 How

More information

The Google Web Toolkit (GWT): Extended GUI Widgets

The Google Web Toolkit (GWT): Extended GUI Widgets 2013 Marty Hall & Yaakov Chaikin The Google Web Toolkit (GWT): Extended GUI Widgets (GWT 2.5 Version) Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/gwt.html

More information

CHAPTER. The Role of PL/SQL in Contemporary Development

CHAPTER. The Role of PL/SQL in Contemporary Development CHAPTER 1 The Role of PL/SQL in Contemporary Development 4 Oracle PL/SQL Performance Tuning Tips & Techniques When building systems, it is critical to ensure that the systems will perform well. For example,

More information

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology An Overview of Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology August 23, 2011 1. Design Principles 2. Architectural Patterns 3. Building for Degradation

More information

Scaling App Engine Applications. Justin Haugh, Guido van Rossum May 10, 2011

Scaling App Engine Applications. Justin Haugh, Guido van Rossum May 10, 2011 Scaling App Engine Applications Justin Haugh, Guido van Rossum May 10, 2011 First things first Justin Haugh Software Engineer Systems Infrastructure jhaugh@google.com Guido Van Rossum Software Engineer

More information

Dreamweaver Basics Workshop

Dreamweaver Basics Workshop Dreamweaver Basics Workshop Robert Rector idesign Lab - Fall 2013 What is Dreamweaver? o Dreamweaver is a web development tool o Dreamweaver is an HTML and CSS editor o Dreamweaver features a WYSIWIG (What

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Developing Cross Device Mobile Applications

Developing Cross Device Mobile Applications Developing Cross Device Mobile Applications Dana Singleterry - http://blogs.oracle.com/dana Twitter - @dsingleterry Principal Product Manager, Oracle Development Tools 2 Copyright 2012, Oracle and/or its

More information

EVENT-DRIVEN PROGRAMMING

EVENT-DRIVEN PROGRAMMING LESSON 13 EVENT-DRIVEN PROGRAMMING This lesson shows how to package JavaScript code into self-defined functions. The code in a function is not executed until the function is called upon by name. This is

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...

More information

Session 12. RESTful Services. Lecture Objectives

Session 12. RESTful Services. Lecture Objectives Session 12 RESTful Services 1 Lecture Objectives Understand the fundamental concepts of Web services Become familiar with JAX-RS annotations Be able to build a simple Web service 2 10/21/2018 1 Reading

More information

Eclipse 4.0. Jochen Krause EclipseSource

Eclipse 4.0. Jochen Krause EclipseSource Eclipse 4.0 Jochen Krause jkrause@eclipsesource.com EclipseSource based on EclipseCon 2008 talk by Mike Wilson, Jochen Krause, Jeff McAffer, Steve Northover 2008 EclipseSource December 2008 e4 adapting

More information

Programming for Digital Media. Lecture 7 JavaScript By: A. Mousavi and P. Broomhead SERG, School of Engineering Design, Brunel University, UK

Programming for Digital Media. Lecture 7 JavaScript By: A. Mousavi and P. Broomhead SERG, School of Engineering Design, Brunel University, UK Programming for Digital Media Lecture 7 JavaScript By: A. Mousavi and P. Broomhead SERG, School of Engineering Design, Brunel University, UK 1 Topics Ajax (Asynchronous JavaScript and XML) What it is and

More information

LSI's VMware vcenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason LSI Corp

LSI's VMware vcenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason LSI Corp LSI's VMware vcenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason LSI Corp Goal The goal for the presentation is to share our experience with open source in the hope that

More information

Navigation. Websites need a formalized system of links to allow users to navigate the site

Navigation. Websites need a formalized system of links to allow users to navigate the site Comm 244 Week 3 Navigation Navigation Websites need a formalized system of links to allow users to navigate the site Navigation Many larger websites have multiple forms of navigation For example, look

More information

JavaOne Topics. Keynotes Talks overview Interoperability, jini Real-time and Embedded XML and Java Cool Recommendations

JavaOne Topics. Keynotes Talks overview Interoperability, jini Real-time and Embedded XML and Java Cool Recommendations JavaOne 2000 Topics Keynotes Talks overview Interoperability, jini Real-time and Embedded XML and Java Cool Recommendations First Keynote (McNeally( McNeally,, Jobs) 9 Gbits/s cross the Atlantic (m:m)

More information

Nodes Tech Slides - Progressive Web Apps, 2018

Nodes Tech Slides - Progressive Web Apps, 2018 Nodes Tech Slides - Progressive Web Apps, 2018 Our belief Gone are the days where companies spend fortunes on building digital products that users don t want. Or at least they should be. And by now many

More information

"Web Age Speaks!" Webinar Series

Web Age Speaks! Webinar Series "Web Age Speaks!" Webinar Series Java EE Patterns Revisited WebAgeSolutions.com 1 Introduction Bibhas Bhattacharya CTO bibhas@webagesolutions.com Web Age Solutions Premier provider of Java & Java EE training

More information

Front End Programming

Front End Programming Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page

More information

Comm 244 Week 3. Navigation. Navigation. Websites need a formalized system of links to allow users to navigate the site

Comm 244 Week 3. Navigation. Navigation. Websites need a formalized system of links to allow users to navigate the site Comm 244 Week 3 Navigation Navigation Websites need a formalized system of links to allow users to navigate the site Navigation Many larger websites have multiple forms of navigation For example, look

More information

End User Monitoring. AppDynamics Pro Documentation. Version Page 1

End User Monitoring. AppDynamics Pro Documentation. Version Page 1 End User Monitoring AppDynamics Pro Documentation Version 4.1.5 Page 1 End User Monitoring....................................................... 4 Browser Real User Monitoring.............................................

More information

Oracle Exam 1z0-441 Oracle Mobile Development 2015 Essentials Version: 6.0 [ Total Questions: 85 ]

Oracle Exam 1z0-441 Oracle Mobile Development 2015 Essentials Version: 6.0 [ Total Questions: 85 ] s@lm@n Oracle Exam 1z0-441 Oracle Mobile Development 2015 Essentials Version: 6.0 [ Total Questions: 85 ] Question No : 1 You have been asked to select the appropriate security policy to apply to a SOAP

More information

EnGiNeErInG HtMl5 applications for better performance

EnGiNeErInG HtMl5 applications for better performance EnGiNeErInG HtMl5 applications for better performance LaUrI SvAn @laurisvan Sc5 OnLiNe @sc5 HtMl5 expertise at your service GiVe me something that I can UsE 15 YeArS ReTrOsPeCtIvE of My PeRsOnAl GeAr 1000

More information

Apache Wink Developer Guide. Draft Version. (This document is still under construction)

Apache Wink Developer Guide. Draft Version. (This document is still under construction) Apache Wink Developer Guide Software Version: 1.0 Draft Version (This document is still under construction) Document Release Date: [August 2009] Software Release Date: [August 2009] Apache Wink Developer

More information

truechart Menubar Documentation HighCoordination GmbH Version 1.0.2,

truechart Menubar Documentation HighCoordination GmbH Version 1.0.2, truechart Menubar Documentation HighCoordination GmbH Version 1.0.2, 2017-05-05 Table of Contents 1. Introduction.............................................................................. 1 2. Installing

More information

The Backend of OE Mobile in OpenEdge Mike Fechner, Consultingwerk Ltd. PUG Challenge Americas, June 2013

The Backend of OE Mobile in OpenEdge Mike Fechner, Consultingwerk Ltd. PUG Challenge Americas, June 2013 The Backend of OE Mobile in OpenEdge 11.2 Mike Fechner, Consultingwerk Ltd. PUG Challenge Americas, June 2013 Mike Fechner, Consultingwerk Ltd. Independent IT consulting organization Focusing on OpenEdge

More information

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery. HTML5/CSS3/JavaScript Programming Course Summary Description This class is designed for students that have experience with basic HTML concepts that wish to learn about HTML Version 5, Cascading Style Sheets

More information

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Introduction to the Oracle Mobile Development Platform Dana Singleterry Product Management Oracle Development Tools Global Installed Base: PCs vs Mobile Devices 3 Mobile Enterprise Challenges In Pursuit

More information

Basics of Web Technologies

Basics of Web Technologies Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for Web Designing Given below is the brief description for the course you are looking for: Introduction to Web Technologies

More information

HTML 5: Fact and Fiction Nathaniel T. Schutta

HTML 5: Fact and Fiction Nathaniel T. Schutta HTML 5: Fact and Fiction Nathaniel T. Schutta Who am I? Nathaniel T. Schutta http://www.ntschutta.com/jat/ @ntschutta Foundations of Ajax & Pro Ajax and Java Frameworks UI guy Author, speaker, teacher

More information

Using Dreamweaver CC. Logo. 4 Creating a Template. Page Heading. Page content in this area. About Us Gallery Ordering Contact Us Links

Using Dreamweaver CC. Logo. 4 Creating a Template. Page Heading. Page content in this area. About Us Gallery Ordering Contact Us Links Using Dreamweaver CC 4 Creating a Template Now that the main page of our website is complete, we need to create the rest of the pages. Each of them will have a layout that follows the plan shown below.

More information

DreamFactory Customer Privacy and Security Whitepaper Delivering Secure Applications on Salesforce.com

DreamFactory Customer Privacy and Security Whitepaper Delivering Secure Applications on Salesforce.com DreamFactory Customer Privacy and Security Whitepaper Delivering Secure Applications on Salesforce.com By Bill Appleton, CTO, DreamFactory Software billappleton@dreamfactory.com Introduction DreamFactory

More information

Enterprise Java TM Web Apps with Google Open Source Technology

Enterprise Java TM Web Apps with Google Open Source Technology Enterprise Java TM Web Apps with Google Open Source Technology Dhanji R. Prasanna Google, Inc. Dhanji R. Prasanna Software Engineer at Google > Co-author JAX-RS: Java API for RESTful Web Services JSR-303:

More information

Enriching Portal user experience using Dojo toolkit support in IBM Rational Application Developer v8 for IBM WebSphere Portal

Enriching Portal user experience using Dojo toolkit support in IBM Rational Application Developer v8 for IBM WebSphere Portal Enriching Portal user experience using Dojo toolkit support in IBM Rational Application Developer v8 for IBM WebSphere Portal Summary: Learn how to create Portlet applications for Websphere Portal for

More information

CSC309: Introduction to Web Programming. Lecture 11

CSC309: Introduction to Web Programming. Lecture 11 CSC309: Introduction to Web Programming Lecture 11 Wael Aboulsaadat Servlets+JSP Model 2 Architecture 2 Servlets+JSP Model 2 Architecture = MVC Design Pattern 3 Servlets+JSP Model 2 Architecture Controller

More information