Java Server Faces St. Louis JavaSIG June 8, 2006 Jay Meyer, Harpoon Technologies.

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

Introduction to the Spring Framework
Java OSS Web Technologies By Dave Ford Introduction Purpose Describe Javas relationship to the OSS community Describe OSS tools used on recent project.
Web Development with Karsten Schulz Terp-Nielsen Master Principal Sales Consultant Oracle Denmark.
Apache Struts Technology
A Blackboard Building Block™ Crash Course for Web Developers
The Developer Perspective Michelle Osmond. Design – Requirements Gathering Sales & Research projects –Prototypes/Demos User group meetings Usability workshops.
פתרונות J2EE וטכנולוגיות Oracle Mr. Liran Zelkha, Chief Architect
2136: Developing Web GUI Using JSF  Vishy Kasar.
6/2/2015Page 1 SOA Development and Deployment B. Ramamurthy.
Application Servers What is it? General A set of software frameworks, components, utilities, functionality that enables you to develop and deliver n-tiered.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse Web Tools Platform.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Apache Struts Technology A MVC Framework for Java Web Applications.
Session-01. Layers Struts 2 Framework The struts 2 framework is used to develop MVC-based web application. Struts 1.0 was released in June The.
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
Introduction to Liferay Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written.
Introduction to Java web programming Dr Jim Briggs JWP intro1.
J AVA SE, EE, AND ME Compiled (with permission) from Sang Shin’s Introduction to Java EE Online Course Introduction to Java EE Online Course.
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
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
Fall CIS 764 Database Systems Engineering L3: Two Assignments Relating to J2EE.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
Presented by, MySQL & O’Reilly Media, Inc. Data Services: Mashing and Shredding Data Using XAware.
JBoss Developer Studio. JBoss Developer Studio provides a certified open source development environment that includes and integrates: Eclipse Eclipse.
® IBM Software Group © 2006 IBM Corporation Kick-start your Java Apps: Free Software, fast development Eclipse IDE, WASCE, DB2 Express-C.
JDeveloper 10g and JavaServer Faces: High-Performance UIs on the Web Avrom Roy-Faderman Senior Programmer May, 2006.
Case study concerning architecture development Emil Doychev, Georgi Cholakov, University of.
JSF road map (NI) Clientside validation Show problems
JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
8/15/2003System Specialists Corporation How to implement BC4J with the Struts Framework Eugene Sicat Technical Architect/Project Manager System Specialists.
Apache Struts RIFE Ruby on Rails Harry R. Erwin, PhD University of Sunderland CIT304/CSE301.
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Cloud Computing Computer Science Innovations, LLC.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Fall CIS 764 Database Systems Design L8. Web ….
Introduction to Web Dimitar Nenchev Ivan Nakov
Java Web Development with NetBeans IDE -- Kai Qian Chapter 5 JavaServer Faces (JSF) Technology.
JAVA SERVER FACES ADITI RAJORIYA UNI – ar2630. POINTS TO BE DISSCUSED WHAT IS JSF? WHY JSF? ARCHITECTURE JSF VERSIONS UI COMPONENTS JSF STRUCTURE AND.
JSF Framework Java Server Faces Presented by Songkran Totiya (6/10/2014)
Saif Kamaal Java Server Faces (JSF) Next Generation User Interface.
JavaServer Faces (JSF) and Ajax Integration. Agenda 대강의 ( 정말로..) 개요 예제 아키텍트라면..
Chính phủ điện tử TS. Phạm Văn Tính Khoa CNTT, ĐH Nông Lâm TP.HCM
Sakai WebApp Structure
Markus Hjort Reaktor Innovations Java Web Development T WWW-palvelun HUT
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
JAVA EE 6 Best Practices for Migrating Spring to WTF ?!?
ThinStructure: An Overview Support for ThinStructure demonstration. Jean Georges Perrin – Annandale, 21 st April 2004.
® IBM Software Group © 2003 IBM Corporation IBM WebSphere Studio V5.1.2: Making Java Development Easier May 2004.
United SWE, Inc. Quality endorsement a presentation of our capabilities.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
By Jonathan Smith. Road Map Introduction Company Information Project Overview Java Web Design and Development Summary Relation to IUP Acknowledgments.
Apache Struts Technology A MVC Framework for Java Web Applications.
CS320 Web and Internet Programming Web Application and MVC Chengyu Sun California State University, Los Angeles.
Java High level programming language ◦ Sun Microsystems ◦ ORACLE acquired Java Development Kit – JDK Java Runtime Environment – JRE Java Virtual Machine.
Examples with Java Server Faces (covered topics)
The J2EE Framework Java Technologies External Application.
Unit 6-Chapter 2 Struts.
Sakai WebApp Structure
Introduction to Struts
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
J2EE Application Framework
JavaServer Faces: The Fundamentals
Presentation transcript:

Java Server Faces St. Louis JavaSIG June 8, 2006 Jay Meyer, Harpoon Technologies

About Me Master CS from Washington Univ. (wustl.edu) Master CS from Washington Univ. (wustl.edu) Software developer for 14 years (1992) Software developer for 14 years (1992) Java Web development since 1999 Java Web development since 1999 Certified JBoss Application Developer Certified JBoss Application Developer Recent projects use Struts, Spring, Hibernate, JBoss, Oracle Recent projects use Struts, Spring, Hibernate, JBoss, Oracle Hibernate consulting thru HarpoonTech, a JBoss partner Hibernate consulting thru HarpoonTech, a JBoss partner

Summary Brief History of JSF Brief History of JSF Motivations for JSF, the Java Landscape Motivations for JSF, the Java Landscape JSF details JSF details Demo apps in MyFaces & Seam Demo apps in MyFaces & Seam

What is Java Server Faces? JSF is a spec which defines a component-based MVC framework JSF is a spec which defines a component-based MVC framework JSF 1.2 is included in the larger JEE5 spec JSF 1.2 is included in the larger JEE5 spec The spec was developed by involving many people from orgs like Sun, Apache, IBM, Oracle The spec was developed by involving many people from orgs like Sun, Apache, IBM, Oracle Not tied to a Web framework, nor a thick-client GUI – theoretically could be applied to either Not tied to a Web framework, nor a thick-client GUI – theoretically could be applied to either Implementations, frameworks: Implementations, frameworks: Sun RI vs. Apache MyFaces Sun RI vs. Apache MyFaces JBoss Seam vs. Apache Struts 2 Shale JBoss Seam vs. Apache Struts 2 Shale IBM, Oracle have proprietary solutions IBM, Oracle have proprietary solutions

The Problem with Web apps HTML? HTML? Java people like Objects, HTML is not Objects HTML? HTML? Java people like Objects, HTML is not Objects Web programming is more difficult than GUI programming Web programming is more difficult than GUI programming Java programming is hard – and J2EE is even more difficult: Servlets? JSP? EJBs!?! Java programming is hard – and J2EE is even more difficult: Servlets? JSP? EJBs!?! Microsoft has VisualStudio which turns web programming into drag-and-drop, that looks easy! 10 minute demo! Microsoft has VisualStudio which turns web programming into drag-and-drop, that looks easy! 10 minute demo!

Answer: a Framework! (yet another framework, of course) Struts – reduced lines of code, made apps pretty complex, created a niche of skilled Struts mercenaries Struts – reduced lines of code, made apps pretty complex, created a niche of skilled Struts mercenaries WebWork – fixed some of the Struts hassle WebWork – fixed some of the Struts hassle SpringMVC – brought powerful AOP concepts to web dev SpringMVC – brought powerful AOP concepts to web dev Tapestry – JSP? dump it, XML rules! Tapestry – JSP? dump it, XML rules!

MVC WARS any Web apps in 2006 means seeing a mix of Struts, Tapestry, Spring MVC, and Webwork (consultant: which one pays the best?) any Web apps in 2006 means seeing a mix of Struts, Tapestry, Spring MVC, and Webwork (consultant: which one pays the best?) the battle rages on, who will win? how can you tell who won? Trust Craig? Trust Rod? How can a OSS project define victory? the battle rages on, who will win? how can you tell who won? Trust Craig? Trust Rod? How can a OSS project define victory? Converting legacy apps: Struts is dead! long live Struts 2 Action and Struts 2 Shale!!! Converting legacy apps: Struts is dead! long live Struts 2 Action and Struts 2 Shale!!! How can I possibly pick one for a new project, when the technology is under attack? How can I possibly pick one for a new project, when the technology is under attack?

JSF to the rescue Make Committees, Not War! Make Committees, Not War! get the big players together to solve MVC problems in a standard way, argue, compromise, repeat... publish final Spec get the big players together to solve MVC problems in a standard way, argue, compromise, repeat... publish final Spec Use components, not actions, more like Swing, less like Struts Use components, not actions, more like Swing, less like Struts Set a standard so we can build derivative products like IDEs with drag-n-drop ease, without worrying about change Set a standard so we can build derivative products like IDEs with drag-n-drop ease, without worrying about change extensible standard to allow growth (plugins) extensible standard to allow growth (plugins) and the main objective... and the main objective...

errr... What’s a component? the JSF spec defines a standard set of components and relationships the JSF spec defines a standard set of components and relationships the View layer (e.g. JSP) and the Java code on the server use these components to interact and pass data the View layer (e.g. JSP) and the Java code on the server use these components to interact and pass data JSF tree is the current set of components in a Java object graph JSF tree is the current set of components in a Java object graph Struts, Webwork, SpringMVC use actions, not components Struts, Webwork, SpringMVC use actions, not components

typical JSF component tree View Form input command combo input

How does Apache MyFaces work? jar file for deployment on Tomcat or any J2EE container – myfaces-all.jar jar file for deployment on Tomcat or any J2EE container – myfaces-all.jar Controller servlet, XML config file, JSP, a pile of base classes, and custom tags out the wazoo (of course! just like all the other frameworks!) Controller servlet, XML config file, JSP, a pile of base classes, and custom tags out the wazoo (of course! just like all the other frameworks!)

MyFaces architecture J2EE server Faces Servlet base classes faces-config.xml my App

MyFaces Demo I used: Eclipse, Java5, JBoss 4 (JBossIDE) I used: Eclipse, Java5, JBoss 4 (JBossIDE) Register a user Register a user the Bean: Registration the Bean: Registration the view : HTML and JSP the view : HTML and JSP the Action Controller the Action Controller the web.xml the web.xml faces-config.xml faces-config.xml navigation navigation

What is Seam? Seam is a new product from JBoss, (OSS, free as in beer and speech) Seam is a new product from JBoss, (OSS, free as in beer and speech) Founded by Gavin King, Hibernate creator Founded by Gavin King, Hibernate creator uses Java5 and EJB3 uses Java5 and EJB3 goal: use the exact same objects for persistence and rendering the view layer: abolish glue code and DTO objects goal: use the exact same objects for persistence and rendering the view layer: abolish glue code and DTO objects combines MyFaces, EJB3 combines MyFaces, EJB3

Seam Demo the Bean: User EJB3 the Bean: User EJB3 the view : HTML and JSP the view : HTML and JSP the Action: Register SSB the Action: Register SSB Seam in the faces-config.xml? Seam in the faces-config.xml?

Next for Seam? Reverse Engineering – make a whole app from a set of database tables Reverse Engineering – make a whole app from a set of database tables

Facelets Totally replace JSPs, uses XHTML instead Totally replace JSPs, uses XHTML instead Integrates tightly with JSF Integrates tightly with JSF faster and leaner than JSPs – same idea as Tapestry faster and leaner than JSPs – same idea as Tapestry avoids serious JSP / JSF integration issues avoids serious JSP / JSF integration issues

Seam architecture Seam Framework EJB3 Hibernate3 SQL DB JSPFacelets Sun JSF RIMyFaces

Tomahawk Apache’s extended JSF components, ships with MyFaces Apache’s extended JSF components, ships with MyFaces Calendar Calendar Tree Tree advanced inputText advanced inputText

the Future continued Component development, similar to taglib dev with Struts continued Component development, similar to taglib dev with Struts more tool dev – Eclipse plugins, GUI designers more tool dev – Eclipse plugins, GUI designers Facelets general acceptance instead of JSP Facelets general acceptance instead of JSP Seam innovation from Gavin King, JBoss also JSR 299 WebBeans just started Seam innovation from Gavin King, JBoss also JSR 299 WebBeans just started Shale? Will Craig McClanahan work on Shale or just Struts 2 Action (aka Webwork) Shale? Will Craig McClanahan work on Shale or just Struts 2 Action (aka Webwork)

Glossary JSF – JavaServer Faces JSF – JavaServer Faces JEE5 – the newest Java App Server spec, includes EJB3, JSF etc. JEE5 – the newest Java App Server spec, includes EJB3, JSF etc. MyFaces – Apache’s JSF impl, completely replaces Sun’s ref impl for JSF MyFaces – Apache’s JSF impl, completely replaces Sun’s ref impl for JSF Tomahawk – Apache’s set of components to extend JSF, comes with MyFaces Tomahawk – Apache’s set of components to extend JSF, comes with MyFaces Facelets – replacement for JSP, interprets XML instead of JSP files to produce web pages, integrated well with JSF Facelets – replacement for JSP, interprets XML instead of JSP files to produce web pages, integrated well with JSF Seam – JBoss’ framework that works with JSF to provide the glue between JSF and EJB3 to reduce lines of code, includes MyFaces, Facelets (Gavin King’s project) Seam – JBoss’ framework that works with JSF to provide the glue between JSF and EJB3 to reduce lines of code, includes MyFaces, Facelets (Gavin King’s project) Shale – Apache Struts (Craig McClanahan) framework to provide a better API for JSF, competes with Seam, needs JDK5, not EJB3 Shale – Apache Struts (Craig McClanahan) framework to provide a better API for JSF, competes with Seam, needs JDK5, not EJB3

Resources JavaServer Faces by Hans Bergsten, OReilly JavaServer Faces by Hans Bergsten, OReilly

Questions? contact: Jay Meyer discuss: Ideal architecture? Facelets, MyFaces, Seam, EJB3, JBossAS, MySQL, Ubuntu Linux? discuss: worst of breed? JSP, Struts 1.x, Sun JSF RI, Websphere, Toplink, DB/2, Windows