Web Frameworks Taxonomy Anthony Berglas April 2011.

Slides:



Advertisements
Similar presentations
Castafiore platform Consists or intend to consist of 1.Advanced Web framework 2.Advanced Graph database 3.Designer studio (something like visual basic)
Advertisements

Microsoft SharePoint 2010 technology for Developers
Apache Struts Technology
MVC in JavaEE 8 Manfred Riem Principal Member of Technical Staff September, 2014 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Developing HTML5 Application using MVVM pattern Pekka Ylenius.
The Developer Perspective Michelle Osmond. Design – Requirements Gathering Sales & Research projects –Prototypes/Demos User group meetings Usability workshops.
June 28 th – July 1 st 2006 Implementing Usability: Insights to improve your chances  CFUnited 2007.
Web Applications Development Using Coldbox Platform Eddie Johnston.
Languages for Dynamic Web Documents
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Cloud Computing Lecture #7 Introduction to Ajax Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under a.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Apache Struts Technology A MVC Framework for Java Web Applications.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
Lecture 2 - Struts ENTERPRISE JAVA. 2 Contents  Servlet Deployment  Servlet Filters  Model View Controllers  Struts  Dependency Injection.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
WebWork in Action An introduction to WebWork Patrick A. Lightbody.
Ori Calvo, 2010 “If people want to have maximum reach across *all* devices then HTML will provide the broadest reach” Scott Guthrie,
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
Java Server Faces Çağatay Çivici Apache MyFaces Team Member
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
CIS 375—Web App Dev II ASP.NET 2 Introducing Web Forms.
Dynamic Web Sites Chris North cs3724: HCI. Presentations matt ketner, sam altman, mike gordon Vote: UI Hall of Fame/Shame?
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
SednaSpace A software development platform for all delivers SOA and BPM.
JDeveloper 10g and JavaServer Faces: High-Performance UIs on the Web Avrom Roy-Faderman Senior Programmer May, 2006.
JSP Java Server Pages Softsmith Infotech.
Design Patterns Phil Smith 28 th November Design Patterns There are many ways to produce content via Servlets and JSPs Understanding the good, the.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
Fall CIS 764 Database Systems Design L8. Web ….
JavaScript Framework for Rich Apps in Every Browser Maura Wilder Joan Wortman
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
Introduction to Web Dimitar Nenchev Ivan Nakov
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
JSF Framework Java Server Faces Presented by Songkran Totiya (6/10/2014)
Service Side Ajax Richard Schmidt gmail. Com Metservice.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
Markus Hjort Reaktor Innovations Java Web Development T WWW-palvelun HUT
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Date : 3/04/2010 Web Technology Solutions Class: PHP Web Application Frameworks.
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Apache Struts Technology A MVC Framework for Java Web Applications.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Comparative Display Technologies.
Technologies For Creating Rich Internet Applications Presenter's name
 INDEX  Overview.  Introduction.  System Requirement.  Features Of SQL.  Development Process.  System Design (SDLC).  Implementation.  Future.
Chapter 13 Web Application Infrastructure
GeneXus 9.0: Web applications at their higher power
Haritha Dasari Josue Balandrano Coronel -
Design and Maintenance of Web Applications in J2EE
Java Web Application Framework
Web Development Using ASP .NET
ISE 390 Dynamic Web Development
JavaServer Faces: The Fundamentals
BOF #1 – Fundamentals of the Web
Web Technologies Computing Science Thompson Rivers University
Introduction to ASP.NET Parts 1 & 2
Presentation transcript:

Web Frameworks Taxonomy Anthony Berglas April 2011

Welcome to the JVM Meetup Meetings maybe 2 nd Tuesday each Month? Oracle providing room, food today or when presenting. Thanks. Presentation vs. informal talks? Future talks ideas at end. (Seam and ADF likely.) Security at 5:30pm Call Anthony to get in. (Other nrs?) (These slides uploaded.) This talk – me for 25 mins review, then to the floor. –What works for you?

Introduction Separate approaches from implementations for review. Classic procedure based MVC. –View is a Procedure that outputs HTML. –ASP, JSP / Struts, Velocity, Spring MVC, G/Rails, Simplets. Component MVC. –View is an Object Graph with an Event Model (Render event). –ASP.Net, JSF, JBoss/Seam, Oracle ADF, Tapestry, Wicket Swingish – server driven rich clients. –Echo2, ZK, wingS?, Developer Client Focused, usually Plugins. Sofea / Soui. Client / Server. –Flex, Silverlight, Unity 3D, GWT, Heavy JavaScript. End user editable tools, business object driven. –Force.com, Zoho, Quickbase… JavaScript Libraries that can support any approach. –JQuery, Prototype, YUI, Dojo…

Classic Procedure based MVC View usually in some template language. –Some higher level macro tags for named Input fields etc. Controller executes Java code before Render. Handles Redirects. For Ajax, JavaScript can call different Server URLs. But View is a Procedure with implicit println() –Limits components. E.g. List component re-query database on Sort. Big Trees. Pagelets. –Only get an implicit render event. –JSPish components can never affect response to posted data. –But some can be meta data driven, e.g. Date field – widget + validation. (Are templates really a good idea, given Subroutines abstract HTML?) –Impedance mismatch, c.f. Servlets/Simplets just code. Cause of MVC. ASP, JSP / Struts, Velocity, Spring MVC, G/Rails, Simplets – Servlet infrastructure

Component MVC Above is same as form.add(new GridView…) (not println(…) ). Also HTML. Many events, ultimately Render outputs HTML. Can have rich interactions: Call backs, Sort database query. Client Validatn. Lazy AJAX – page content submitted without page submit (state!). Event model much more complex than procedure oriented. –Especially writing new components. JSF1 – Bad Event Model (JSP) -- List/Crud Hard, ugly EL, Heavy. (Vsn2 better) Seam – Links EJBs to JSF, removes junk (backing bean), Conversations… Oracle ADF – Tightly integrated with data model. Pagelets. Magic. Open Src? Tapestry – HTML templates. Efficient static page structure. Single Developer. June 26 Wicket – Very like Tapestry. Pure Java views. Static typed. Very Stateful. Raw HTML actually generates an object that can render …

Thoughts on JSF 1 JSF 2 better. (Facelets certainly better than JSP) Can be partially? tamed with SEAM, ADF.

Swingish – Server driven rich client Object graph built on Server (could be XML). Normally no HTML. Rendered with special JavaScript library. –Browser behaves like smart X-Terminal, driven from server. Super lazy Ajax. Complete field-by-field control of a web form without user client code. –Easy and safe –Trivial to access database, no web services, avoids data sync problems,. Could be very chatty, one AJAX call per field, all state on Server –Events and flow heavily optimized. –(Most? useful AJAX requires server interaction anyway.) Cool Demos, utilizing rich JavaScript components. Not fashionable. But easy, single tier development. (What happened to Java 7 Closures!) Echo2, ZK, WingS?, (Developer 2000). Open public Window init() { // Echo2 final Button button = new Button("Please click me."); contentPane.add(button);... button.addActionListener(new ActionListener() {…});

Client / Server – Plug ins (Sofea/Soui) Run almost all program logic in the browser. –Backend just provides simple web services to the client. Vs. tightly coupled? –Generally Ignore HTML. Tony O. on Flex (applies to others) – Significantly richer UI, not just a little better, WAY better. Orders of magnitude better (Is this still really true?) –No browser compatibility issues. None. It just works. –Security better in flex, no source code or Soap requests ever exposed. Why go to the trouble of AJAX if not for the WOW! Requires writing code on multiple tiers. Distributed Application. –Security issues if we implicitly trust the client. Web is just a way to deliver client / server code. MVC is Dead. Flash/Flex – historic leader. Appletish. New ActionScript is strongly typed. Silverlight – write.Net client and server. GWT – Also effectively a black box on the client. Heavy JavaScript. Rarely done? Client Java – as applets or as HTML Driver. Still an option. Unity 3D, Shockwave flash, Google O3D. (Flex is 2.5D). Titanium?

Locus of Control Traditional Server only page at a time. Dead? –Gloss up with minimal fixed JavaScript widgets. –Clean, simple. –Does not confuse the user. (E.g. Meetup change button.) –Hard to do complex list forms nicely. Not Fashionable. Lazy Ajax. –Code on server, OK for simple effects. Hybrid – Server serves HTML with manual JavaScript. –Messy to program in two tiers Sofea – Entire application runs on client. –Server side just implements clean web services, no UI Swingish – Server Side yet highly interactive. –But no good for really interactive stuff. E.g. Animations, games. Can be as much how to use the tools as the tools themselves.

Business Object Driven / RAD UIs derived semi-automatically from business object schema. –Add a foreign key to the database, it is in the UI by default. Business rules specified in terms of business objects, not UI. –E.g. Workflow based on information state. –Security / row permissions, audit etc. often built in. Very quick to develop simple applications. Allows end users to enhance and configure a standard application. –Especially important for CRM. (e.g. toothpicks) Usually in the cloud –But what happens if the sun shines (lazybase, coghead). Force.com/Salesforce – huge app exchange. Ability for custom Uis. Zoho – Tiny pretender. Much cheaper. Quickbase – Well established from intuit. Infodome – Cute video overview. Forms + OLAPish. ADF – Not end user usable but data oriented. Filemaker – seems good. MS Access – Never really got there. Open Source – Glom, once:radix, Kexi, OpenOffice Base.

JavaScript Libraries Many, for fancy controls and Ajax Could be used for many different styles –Augment Html page oriented aps, –Implement Lazy Ajax, –Implement Swingish, –Build Sofea client oriented code. HTML 5 adds more and more to JavaScript. VML / SVG / Canvas mess. JQuery Prototypes Dojo YUI Svg2Vml? … Of YUI, DOJO, Prototype YUI easier to understand better documented

Conclusion Two issues, the approach and the implementation. –Sofea is becoming very fashionable, Is MVC Dead as some claim? –What about Swingish? –Is rich data binding important? –User extensibility (Force.com)? –Or is simple procedural MVC all that we need for normal applications? Technology now hugely complex – can be hard to debug. –I no longer know how Wicket works Jonathan Locke, creator. Many paths, much confusion. Peoples actual, practical experience?

Some References Tapestry vs Wicket apache-wicket Tapestry Static Page, Wicket Dynamic. Tapestry 5 not backward compatible. Tapestry one main developer (HLShip), Wicket Community. Tapestry slightly less code, but less static typing. JSF vs Wicket/Tapestry Thomas/Incremental+Operations/Seam+%2F+JSF+vs+Wicket:+performance+co mparison/cp1je -- Wicket much faster and less memory (order of magnitude). ADF Other MVCs: Click, Stripes, All tapestry-and-wicket-presentation