1 / 10

Exploring Java-Based Rich Web Application Frameworks: Pros, Cons, and Essentials

This guide delves into various Java-based frameworks for building rich web applications, focusing on server-side Ajax methods. We'll explore frameworks like ThinWire, Echo2, Wing-S, and Canoo ULC, evaluating their capabilities, deployment ease, and suitability for low-concurrency environments. With a maximum of 50 sessions and minimal hardware concerns, the emphasis will be on leveraging Java's full features, managing session variables, and easing debugging processes. This overview provides practical examples and insights, helping developers choose the right tools for their projects.

parson
Télécharger la présentation

Exploring Java-Based Rich Web Application Frameworks: Pros, Cons, and Essentials

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Richard Schmidt hangstrap @ gmail . Com Metservice Service Side Ajax

  2. Our Situation / Requirement • Rich(ish) Application. • Easy to deploy / standard browser. • Not many users. • Max 50 sessions • Very little concurrency • Hardware costs are not important. • Main cost is developer salaries.

  3. Some Web Frameworks • JSF (yea right!)‏ • Ajax? • Tapestry, Wicket • Component based. • Flex • Another language • GWT • Scaled down Java • Java client (applet / web start)‏ • Will the client have JAVA installed? • Something else?

  4. Server Side Ajax • Server downloads a javascript app. to browser. • Server then sends list of components that javascript app. renders in the browser. • User events are sent back to server using Ajax. • Server processes events and then send changes to components back to client...

  5. Advantages • Only one language • Can use full features of Java • not like GWT • No writing of HTML or Javascript! • Write using components that fire events. • Swing like. • KISS: One less physical layer • All code runs on one VM, easier to debug, test etc.

  6. Disadvantages • Each user has a large session variable. • Not going to work for Google! • More network traffic to / from server. • (but not much more!)‏ • Not mainstream technology. • 'Stuck' with the basic components supplied by the framework. • Set of components – still have to write a application framework! • Different browsers.

  7. Players • Thinwire • Stable, not much development. • Echo2/3 • Well known. • Wing-S • Based on Swing components. • J-Seamless • Uses Flex as a renderer. • ULC Canoo • Commercial, Java proxy on client • Test framework, visual editor, support, rich functionality.

  8. Code Example public static void main(String[] args) { //Create and set initial position for components final Dialog dialog = new Dialog("Hello World, ThinWire Style!"); Label label = new Label("Hello, what is your name?"); final TextField input = new TextField(); Button button = new Button("Ok"); //When button is clicked, close modal dialog and say hello button.addActionListener("click", new ActionListener() { public void actionPerformed(ActionEvent ev) { MessageBox.confirm("Hello " + input.getText() + "!"); dialog.setVisible(false); } }); //Add components to dialog dialog.getChildren().add(label); dialog.getChildren().add(input); dialog.getChildren().add(button); //Show dialog and wait for "OK" press dialog.setVisible(true); }

  9. ATestBean bean = new ATestBean(); Property<ATestBean, Boolean> pt1Client = BeanProperty.create("enabled"); TextField tf = new TextField(); Property<TextField, Boolean> tfProp = BeanProperty.create("enabled"); Binding<ATestBean, Boolean, TextField, Boolean> binding = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, bean, pt1Client, tf, tfProp); binding.bind(); Using Beans Binding

  10. Demos • Echo2 • Wing-S • Canoo ULC • Our App

More Related