Cost Benefit Open Source Solutions By Eyal Golan – Senior Java Tikal Knowledge Introduction to.

Slides:



Advertisements
Similar presentations
Master Pages, User Controls, Site Maps, Localization Svetlin Nakov Telerik Corporation
Advertisements

Extreme User Interfaces for Alfresco Kevin Dorr Sr. Solutions Engineer Americas Channel.
Apache Wicket Gerolf Seitz. Web Development with just Java and a little bit of HTML.
Apache Struts Technology
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Internet Technologies 1 Master of Information System Management Java Server Faces Model/View/Controller Design Pattern for Web Development Slides.
Struts Basics SSE USTC Qing Ding. Agenda What is and Why Struts? Struts architecture – Controller: Focus of this presentation – Model – View Struts tag.
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Apache Wicket: web applications with just Java Xavier Hanin JavaZone ‘07.
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.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
1 Forms for the Web Tom Muck
Ruby on Rails. What is Ruby on Rails? Ruby on Rails is an open source full-stack web framework. It is an alternative to PHP/MySQL. It can render templates,
Chapter 11 Adding Media and Interactivity. Flash is a software program that allows you to create low-bandwidth, high-quality animations and interactive.
11. Java-Based Web: JSP, JSF. 2 Motto: Rule 1: Our client is always right Rule 2: If you think our client is wrong, see Rule 1. - Anonymous.
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.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
Advanced Web Design Scripting Tutorial Chapters. Scripting Intro The scripting part of the forthcoming Advanced Web Design textbook introduces you to.
ASP.NET and Model View Control Jesper Tørresø ITNET2 F08.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
JDeveloper 10g and JavaServer Faces: High-Performance UIs on the Web Avrom Roy-Faderman Senior Programmer May, 2006.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
CSCI 6962: Server-side Design and Programming Introduction to Java Server Faces.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
ICONICS ActiveX ToolWorX V 6.1.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
Copyright © Osmosys O S M O S Y SO S M O S Y S D e p l o y i n g E x p e r i e n c e & E x p e r t i s e™ HTML Training.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
Chapter 4: Working with ASP.NET Server Controls OUTLINE  What ASP.NET Server Controls are  How the ASP.NET run time processes the server controls on.
Enterprise Library Extensibility Brian Button VP of Engineering Asynchrony Solutions, Inc.
Chính phủ điện tử TS. Phạm Văn Tính Khoa CNTT, ĐH Nông Lâm TP.HCM
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
How to Build an IT Portal with Oracle Application Server Allan L Haensgen Senior Principal Instructor Oracle Corporation Session id:
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
Chapter 11 Adding Media and Interactivity. Chapter 11 Lessons Introduction 1.Add and modify Flash objects 2.Add rollover images 3.Add behaviors 4.Add.
1 Java Server Pages A Java Server Page is a file consisting of HTML or XML markup into which special tags and code blocks are inserted When the page is.
PHP Form Processing * referenced from
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Java Server Pages. 2 Servlets The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Web Programming Java Script-Introduction. What is Javascript? JavaScript is a scripting language using for the Web. JavaScript is a programming language.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
© Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel
Chapter 2 Creating Website with Web Forms. Objectives Understand the different project types and templates when building ASP.NET web sites. The different.
Wicket and Aida/Web Brief Comparison Jaroslav Havlín ČVUT FEL Subject X36ASS.
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
Section 10.1 Define scripting
Apache Wicket: web applications with just Java
The Share Widget Library
CARA 3.10 Major New Features
Data Virtualization Tutorial… CORS and CIS
Apache Wicket Component Based Web Development Framework.
Unit 6-Chapter 2 Struts.
Java Web Application Framework
Web Development Using ASP .NET
Objectives In this lesson you will learn about: Need for servlets
Presentation transcript:

Cost Benefit Open Source Solutions By Eyal Golan – Senior Java Tikal Knowledge Introduction to

Copyright 2007 Tikal Knowledge, Ltd. | 2 | “ Apache Wicket is a component oriented Java web application framework. With proper mark-up/logic separation, a POJO data model, and a refreshing lack of XML, Apache Wicket makes developing web-apps simple and enjoyable again. Swap the boilerplate, complex debugging and brittle code for powerful, reusable components written with plain Java and HTML.*” *The Wicket Team

Copyright 2007 Tikal Knowledge, Ltd. | 3 | Introduction to Wicket - Agenda  What is Wicket? » Wicket in a Nutshell » Stateful, Just Java, Just HTML  Wicket Architecture  The component concept  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 4 | Wicket in a Nutshell  “A Java software framework to enable component oriented, programmatic manipulation of markup.” (WIA) » Manipulation of markup – Use Wicket to manipulate the markup tags and their contents. ( [content] ) » Programmatic manipulation – Wicket forces a strict separation of presentation and logic. Java is used to derive the dynamic parts of the markup templates. » Component Oriented – The application is constructed of reusable components. The components have their own states and behaviors. It is very similar to programming with Swing / SWT.

Copyright 2007 Tikal Knowledge, Ltd. | 5 | Wicket is stateful  Wicket is a stateful framework. » Wicket was developed to solve the problems that REST introduced to web applications development Security, modularization, state maintenance and everything as Strings » No need to decide how to pass state Wicket manages state transparently » Wicket hides the fact that you work on a stateless protocol Feels like regular Java programming  The state of components is managed for you. » public class EditBarLink extends Link { private final Person person; public EditBarLink(String id, Person person) { super(id); this.person = person; } public void onClick() { setResponsePage(new EditPersonPage(person)); }

Copyright 2007 Tikal Knowledge, Ltd. | 6 | Just Java  You decide how components are created, assembled and combined and - to some extend – what their life cycle looks like » The developer is in charge of how the components are created Constructor, inheritance etc. » Component classes can be designed in any way Class members, hierarchy etc.

Copyright 2007 Tikal Knowledge, Ltd. | 7 | Just HTML  Just HTML » Presentation is defined in HTML markups » HTML templates you use with Wicket only contain static presentation code (markup) and placeholders where Java components are hooked in There is never logic in the templates » You pretty much have to know the structure of your page* upfront * Or any other component that has a corresponding markup (Page, Panel, Border and Fragment). This will be explained later * The pieces can be put together dynamically » Dynamic Table

Copyright 2007 Tikal Knowledge, Ltd. | 8 | Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture / behind the scene » A brief explanation  The component concept  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 9 | Wicket Architecture  In this section we will go over the main role players of a Wicket application » This is only a brief introduction » The section is intended only to be familiarized with the primary classes that create a Wicket application  Application » One object instance for an application » Bundles all components, markups, properties, settings files etc. » Acts as the central hub of processing » The Application object is used for customize the application’s behavior  Session » Holds the state of one user » Wicket allows to have custom session » With a custom session we know exactly what can be store in a session

Copyright 2007 Tikal Knowledge, Ltd. | 10 | Wicket Architecture (cont.)  RequestCycle » Responsible of processing requests » Uses Request and Response objects  Some examples of Application Customization » A SecuredSession that allows only logged in user to open a certain page » How to render a disabled link » How to mount pages with a nice readable URL  Component » Page, Form, Label, TextField, DropDown, WebMarkupContainer and much more  Model » The Model is an indirection for how to get the data that drives the Java components. Models hide ‘what’ data to get and ‘from where’ to get it, and Java components hide ‘when’ and ‘how’ that data is displayed

Copyright 2007 Tikal Knowledge, Ltd. | 11 | Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept » Hello World… The shortest example ever! » Component – The building block A few examples  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 12 | Hello World – The Short Example add(new Label("message", "Hello World!")); Put it in your Java

Copyright 2007 Tikal Knowledge, Ltd. | 13 | Hello World – The Short Example [text goes here] add(new Label("message", "Hello World!")); + Add it to your HTML Put it in your Java

Copyright 2007 Tikal Knowledge, Ltd. | 14 | Hello World – The Short Example [text goes here] add(new Label("message", "Hello World!")); Hello World! + = Add it to your HTML Put it in your Java Et Voila

Copyright 2007 Tikal Knowledge, Ltd. | 15 | What about picking a date? DateTextField dateTxt = new DateTextField("dateTxt"); dateTxt.add(new DatePicker()); add(dateTxt); You can manipulate the header by adding calls to CSS and JS files.

Copyright 2007 Tikal Knowledge, Ltd. | 16 | Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept » Hello World… The shortest example ever! » Component – The building block  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 17 | About Components  “Apache Wicket is a component oriented …” » Components are the building blocks of Wicket  They are self contained and do not leak scope » Other components don’t have to know about it  They are reusable  You build them using plain Java » You use them using plain Java  Components can be nested to “components tree” » Each component that is added in the Java file must be added in the same hierarchy in the corresponding HTML file » Pages are special components that function as the root for such trees  The components are the objects that encapsulate the manipulation the markup  Their data is separated using the IModel interface

Copyright 2007 Tikal Knowledge, Ltd. | 18 | Components Tree Hierarchy

Copyright 2007 Tikal Knowledge, Ltd. | 19 | Component + Markup  Component has wicket id  Markup has the same wicket:id  Hierarchy must much HTML Code Java Code Link link = new Link(“link”) {…} add(link); link.add(new Label("message", “My Message")); [text replaced]

Copyright 2007 Tikal Knowledge, Ltd. | 20 | Component + Markup  Some components have a markup file associated with them and others don’t  Components with an associated markup » Page, Panel, Border, Fragment » Both files should reside in the same package folder*, and should have the same name src/com/tikal/presentation/HelloWorldPage.java src/com/tikal/presentation/HelloWorldPage.html *And naturally Wicket allows to configure this behavior  Some components without an associated markup » The markup for this components are located in their parent XXX.html » Label, Button, DropDown, Link, Form and more

Copyright 2007 Tikal Knowledge, Ltd. | 21 | Component – Link Example Link link = new Link("link") { public void onClick() { setResponsePage(OrdersReportsPage.class); } }); Click HTML Code Java Code

Copyright 2007 Tikal Knowledge, Ltd. | 22 | Component – AjaxLink Example someComponent.setOutputMarkupId(true); AjaxLink link = new AjaxLink("link") { private static final long serialVersionUID = public void onClick(AjaxRequestTarget target) { // Do Something target.addComponent(someComponent); target.appendJavaScript(“Effects.fade(‘foo’)”); } }); Click The same as regular Link Some Ajax stuff in Java

Copyright 2007 Tikal Knowledge, Ltd. | 23 | Just Java + Just HTML (returned)  The designer creates the page with his favorite designing tool  The Wicket programmer adds wicket:id as a hook in the file  Minor issue – If the HTML hierarchy changes, it should be changed in the Java code as well

Copyright 2007 Tikal Knowledge, Ltd. | 24 | Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept  Getting Wicket (So easy…) » Starting point for Wicket  Wicket’s Features  Wicket on the web  Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 25 |  A great quick start in Wicket’s site » » Create a maven archetype to work with » Run mvn jetty:run Use the Start.java class that is created automatically Create a war file and put in a web server (or an application server)  A quick start project that builds your own Wicket project » A bit tricky to start with it  Wiki getting started » Getting Wicket

Copyright 2007 Tikal Knowledge, Ltd. | 26 | Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept  Getting Wicket  Wicket’s Features » A list of (most) features  Wicket on the web  Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 27 | Wicket’s Features – The Short List  Automatic State (no HttpSession)  POJO for logic » Reusability  No XML, no configuration files  Like Swing  Simplicity  Active community

Copyright 2007 Tikal Knowledge, Ltd. | 28 | Wicket’s Features – The Long List  Clean / clear separation of presentation and logic  POJO for logic  No XML, no configuration files  Security  i18n  Built-in Ajax without the need to write JavaScript  Transparent state and session management » Stateful » Navigation history, support of multiple tabs/windows in the browser  Markup inheritance (OOD)  Has validation  Integrating with other frameworks (Spring, Hibernate)  Has Lazy Loading facilities  Active community

Copyright 2007 Tikal Knowledge, Ltd. | 29 | Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept  Getting Wicket  Wicket’s Features  Wicket on the web » Some useful links  Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 30 | Wicket on the Web  Home of Wicket »  Wicket-extension (expansion of Wicket) »  Wicket Forums »  Wicketstuff (cool libraries for Wicket) » » (examples)  InMethod (Wicket table component) »  Wicket Blogs » pipes%2Fpipe.run%3F_id%3Dff2c fc387b9b29d93ff77078%26_rend er%3Drss pipes%2Fpipe.run%3F_id%3Dff2c fc387b9b29d93ff77078%26_rend er%3Drss  Wicket W. Warrick »

Copyright 2007 Tikal Knowledge, Ltd. | 31 | Wicket on the Books  Wicket In Action » Martijn Dashorst, Eelco Hillenius » »  Pro Wicket » Karthik Gurumurthy »  Enjoying Web Development with Wicket » Kent Tong »

Copyright 2007 Tikal Knowledge, Ltd. | 32 |

Copyright 2007 Tikal Knowledge, Ltd. | 33 | Summary  Wicket is cool and fun  Wicket gives an easy and fast Web Application development  Has a very clear OOD approach  Lets the user concentrate on the business logic  The community is very dynamic and helpful  Wicket is a dynamic framework that is built upon users’ request and suggestion » Last Stable version » Wicket 1.4-M3 is the next version to go out

Copyright 2007 Tikal Knowledge, Ltd. | 34 | Q&A

Copyright 2007 Tikal Knowledge, Ltd. | 35 | Thank You