Upload
armughal70
View
227
Download
0
Embed Size (px)
Citation preview
8/13/2019 Which Framework to Use
1/27
CHOOSING A JAVA WEB FRAMEWORK:A COMPARISON
Richard Pack, Lead U er I!"er#ace Archi"ec"
$S%&'()
8/13/2019 Which Framework to Use
2/27
2008 JavaOne SM Conference | java.sun.com/javaone | 2
Learn how to choose a Java technology-basedWeb Framework Enable you to:
Categorize and understand what type of UI youre building
Understand the features and nomenclature of Model View Controller MVC!
"eigh the trade#offs
8/13/2019 Which Framework to Use
3/27
8/13/2019 Which Framework to Use
4/27
2008 JavaOne SM Conference | java.sun.com/javaone | 4
C rre!" Fra.e/+rkAc"i+! Fra.e/+rk 6WR JSPWid*e" O1e!E.cee S/i!*We-
A!4i0 Ech+ J ca O1e!7a4a $a1e "r3
Ara!ea E81re + JWAA O7F $eaSer40e"
A r+ra #0e7i4e JWar1 P "e#i8 $hi!Wire
Bari" F+0i . 9Wic Re "0e" $ri.1a"h J !c"i+!
Barrac da GW$ 9 e!+ RIFE $ r-i!e
Be!"+ Gr++43;Grai0 9 +!ic RSF Ver*e
Bi h+1 He0.a Maca/ Sea. VRa1"+r
Ca!3a.+ Jac< ard Mak .-a Sh+ck War#are
Ca a!dra Ja##a Ma4erick S.i0e We-O!S/i!*
Chi-a Ja110e Me0a"i SOFIA We-W+rk
Chr3 a0i JA$O Me!"a/ai S1ri!* MVC Wicke"
C0ick JF+r. 0ar Mi00 "+!e S"reck /i!*S
C+c++! JOSSO M3Face S"ri1e 7+10+!
6i!a.ica JP -0i h Nach+ S"r " K
6+4e"ai0 JSF Ni**0e
S"r " = >"e.10a"e
Over 100 Frameworks
8/13/2019 Which Framework to Use
5/27
2008 JavaOne SM Conference | java.sun.com/javaone | 5
$he Cri"eria$he "radi"i+!a0 e"
$he He00+ W+r0d "e "? Wha" d+e i" "ake "+ /ri"e He00+ W+r0d2
Per#+r.a!ce? Fi0"er +r er40e"2
Vie/ dec+ra"i+! "30e? 6+e i" e $e.10a"e +r Ja4aSer4er@ Pa*e JSP@ +#"/are;$a*0i- , Ja4a "ech!+0+*3
c+!"r+0 +# -0+ck 2
S1eed +# 6e10+3.e!"? Wha" d+e i" "ake "+ hi1 i"2
S1eed +# 6e4e0+1.e!" % Par"? Ne/ % /ha" i "he 0ear!i!* c r4e2? E8i "i!* % h+/ . ch "i.e d+e i" "ake "+ add i.10e #ea" re 2? A*i0e % i cha!*i!* #ea" re ea 32
8/13/2019 Which Framework to Use
6/27
2008 JavaOne SM Conference | java.sun.com/javaone | 6
$he Cri"eria$he "radi"i+!a0 e" % c+!"i! ed
Vali a!ion "oes i! #ave lo!s of $uil %in vali a!ors&
'n!erna!ionali(a!ion / Mul!ilin)uali(a!ion *#a! s!+le of ,ro,er!ies& Var+in) sco,es&
"ocumen!a!ion-oo mar %a$ili!+Scala$ili!+
8/13/2019 Which Framework to Use
7/272008 JavaOne SM Conference | java.sun.com/javaone |
S+ /h3 i "hi i.1+r"a!"
6i##ic 0" #+r "he "akeh+0der "+!der "a!d a!d e
E!d 1 /ri"i!* 0+" +# !+!%re a-0ec+de
N+ !i#ied A9a8 "ra! 1+r"6irec" 1er i "e!ce "+ Re< e ",Se i+! +r C+!"e8"
Li.i"ed 6+c .e!"a"i+!
Wri"i!* -+i0er10a"e c+de
N+ !i#ied e4e!" .+de0
6i##ic 0" #+r "radi"i+!a0 /e-de i*!er
C+!#i* ra"i+! -ec+.e di##ic 0" "+.a!a*e /he! "he a11 *r+/
N+ /a3 "+ r ! a de- **er i! "he"e.10a"e
A-i0i"3 #+r "he 4ie/ "+ -e ed a"he c+!"r+00er
JSP +#"/are;JS$L -ec+.e a!i*h".are "+ read /he! "he 1a*e*r+/
$e.10a"e .a3 ha4e a "ee10ear!i!* c r4e
S1eed +# de10+3.e!"
8/13/2019 Which Framework to Use
8/27
8/13/2019 Which Framework to Use
9/272008 JavaOne SM Conference | java.sun.com/javaone |
S/ee" S1+"
N+" a +!e i>e #i" a00 *a.e? S+.e re< ire.e!" .a3 ha4e di4er*i!* i.10e.e!"a"i+! /hich
crea"e "rade%+##
6i##ere!" #ra.e/+rk #+r di##ere!" a*e ce!ari+? Vie/ Read +!03 E8 % "+re#r+!", -0+*, +!0i!e -a!k, c+r1+ra"e /e- i"e? Wri"e +!03? B+"h 4ie/ a!d /ri"e? Hi*h03 I!"erac"i4e
8/13/2019 Which Framework to Use
10/272008 JavaOneSM Conference | java.sun.com/javaone | 10
$he Cri"eria$he ad4a!ced e"
AJA7 11+r"? I!"e*ra"ed +r a#"er "he #ac"? 6+e i" re03 +! e8"er!a0 "++0
Vie/ 0a!* a*e? Ja4a 1r+*ra..i!* 0a!* a*e, EL, OGNL,
M 0"i10eC+.. !i"3
? Ac"i4e, c+!"i! a0 de4e0+1.e!"
Ma" ri"3P 00 -a ed +r P h -a ed
%"ier 11+r" % EJB;S1ri!* a!dhi-er!a"eFrie!d03 URL : URL .a11i!*
C0ie!";Ser4er Ja4aScri1"@1r+*ra..i!* 0a!* a*e
? I "here "i*h" c+ 10i!* -e"/ee! "he0a!* a*e
6+e a!+"her 1ar" +# "he c+.1a!3
e "he #ra.e/+rk26+ 3+ r de4e0+1er ha4ee81erie!ce /i"h i"2C0ie!" e4e!" dri4e!2 Aka 6+e i"
11+r" Ser4ice 2
6+e i" ha4e a! Arche"31e
8/13/2019 Which Framework to Use
11/272008 JavaOne SM Conference | java.sun.com/javaone | 11
Gr++43;Grai0
U a*e "31e: Vie/ ; Wri"e? E8"e! i+! "+ "he Ja4a
1r+*ra..i!* 0a!* a*e
Pr+ :? H+"%de10+3? Si.10e c+!#i* ra"i+!? C0+ re? I!"e*ra"e S1ri!* a!d Hi-er!a"e
C+! :? S0+/ c+.1ared "+ !a"i4e#ra.e/+rk
++ #oovstatic &t#in. dojoTable(/indin.sc#ipt/indin., pa#ams
def id = "01pa#ams id2"
def #es = ne &t#in./ ffe#( """
dojo #e4 i#e("dojo topic" 5
8/13/2019 Which Framework to Use
12/272008 JavaOne SM Conference | java.sun.com/javaone | 12
Gr++43;Grai0
AJA7 11+r"2 N+
Vie/ La!* a*e Ja4a, Gr++43
P h +r P 00 P h
Ma" ri"3 D+ !*
C+.. !i"3 S.a00, - " *r+/i!*
$ier F;W 11+r" De
Frie!d03 URL N+" - i0" i!
8/13/2019 Which Framework to Use
13/272008 JavaOne SM Conference | java.sun.com/javaone | 13
G++*0e We- $++0ki" GW$
U a*e $31e: Vie/ ; Wri"e? M+di#ied Ja4a 1r+*ra..i!* 0a!* a*e 11+r"
Pr+ :? Si.10ici"3, S/i!*;SW$ Like? L+" +# - i0" i! c+.1+!e!"? S"r+!* -i!di!* -e"/ee! Ja4a a!d Ja4a cri1" 1r+*ra..i!* 0a!* a*e? Pr+9ec" Arche"31e
C+! :
? Hard "+ c+!"r+0 c c0a e? B i0" i! c+.1+!e!" are #air03 -a ic S+04ed /i"h GW$%E8"? C rre!"03 !+ 11+r" #+r Ja4a (;Ja4a & 1r+*ra..i!* 0a!* a*e
8/13/2019 Which Framework to Use
14/272008 JavaOne SM Conference | java.sun.com/javaone | 14
G++*0e We- $++0ki" GW$
p blic class 6ail implements 7nt# 8oint, 1
p blic void on6od le9oad( 1 top8anel add(men /a# 5 #i.ht8anel add(list 5 main8anel add(table 5
indo enable&c#ollin.( false 5 indo set6a#.in( ";p3" 5
Doc 8anel o te# = ne Doc 8anel( 5 o te# add(top8anel, Doc 8anel T? 5 o te# add(left8anel, Doc 8anel 7@&T 5 o te# add(main8anel, Doc 8anel 7 T7 5
?isto# add?isto# 9istene#( this 5
oot8anel .et( add(o te# 5
8/13/2019 Which Framework to Use
15/272008 JavaOne SM Conference | java.sun.com/javaone | 15
G++*0e We- $++0ki" GW$
AJA7 11+r"2 De
Vie/ La!* a*e Ja4a *e!era"ed
P h +r P 00 P 00
Ma" ri"3 D+ !*
C+.. !i"3 S.a00
$ier F;W 11+r" N+
Frie!d03 URL De , /i"h +.e /+rk
8/13/2019 Which Framework to Use
16/27
2008 JavaOne SM Conference | java.sun.com/javaone | 16
S"r " =
U a*e $31e: Vie/ ; Wri"e, Hi*h03 I!"erac"i4ePr+ :? Fir " c0a AJA7 11+r"? S1ri!* c+!"ai!er i!"e*ra"i+!? POJO a c+!"r+00er , d+e ! " re< ire i!heri"a!ce? FreeMarker a!d Ve0+ci"3 11+r"
C+! :? S"i00 e LO$S +# 7ML c+!#i* ra"i+!
? S"i00 0ea4e "he #0+/ .a11i!* "+ 7ML
8/13/2019 Which Framework to Use
17/27
2008 JavaOne SM Conference | java.sun.com/javaone | 1
S"r " =
p blic class 9o.in@ction implements 8#epa#able 1
p blic 9o.in@ction(9o.in&e#vice se#vice 1 this se#vice = se#vice5 2
p blic &t#in. e3ec te( 1 #et #n @ction &A 7&&5 2
p blic &t#in. lo.in( 1 se#vice lo.in( n, p 5 #et #n e3ec te( 5 2
8/13/2019 Which Framework to Use
18/27
2008 JavaOne SM Conference | java.sun.com/javaone | 18
S"r " =
AJA7 11+r"2 De
Vie/ La!* a*e JSP, OGNL
P h +r P 00 P h
Ma" ri"3 D+ !*
C+.. !i"3 Medi .
$ier F;W 11+r" De
Frie!d03 URL N+" - i0" i!
8/13/2019 Which Framework to Use
19/27
2008 JavaOne SM Conference | java.sun.com/javaone | 1
$a1e "r3
sa)e !+,e Vie / *ri!e i)#l+ 'n!erac!ive7ros
ses anno!a!e M9 !em,la!es o!% e,lo+ :Version 5; Sim,le confi)ura!ion su,,or! an lo!s of i!
Cons "ocumen!a!ion oesn?! use real orl ,ro$lems @o =7' $ac ar s com,a!i$ili!+ $e! een major versions
8/13/2019 Which Framework to Use
20/27
2008 JavaOne SM Conference | java.sun.com/javaone | 20
$a1e "r3
++Fava ont#olle#
p blic abst#act class &i.nCn e3tends /ase8a.e 1
B8e#sist ( p blic abst#act &t#in. .etAse# ame( 5 p blic abst#act void setAse# ame(&t#in. se# ame 5
p blic C9in si.nin/ tton9istene#(C e4 est cle c cle 1++b tton clic listene#
2
8/13/2019 Which Framework to Use
21/27
2008 JavaOne SM Conference | java.sun.com/javaone | 21
$a1e "r3
AJA7 11+r"2 E8"e! i4e
Vie/ La!* a*e OGNL, Pr+1
P h +r P 00 P 00
Ma" ri"3 Ma" re
C+.. !i"3 Lar*e, Ac"i4e
$ier F;W 11+r" De
Frie!d03 URL De
8/13/2019 Which Framework to Use
22/27
2008 JavaOne SM Conference | java.sun.com/javaone | 22
Wicke"
U a*e $31e: Hi*h03 I!"erac"i4ePr+ :? A!!+"a"ed H$ML $e.10a"e? E8ce00e!" d+c .e!"a"i+!? C+.1+!e!" ca! -e e8"e!ded? E4er3"hi!* i d+!e i! Ja4a 1r+*ra..i!* 0a!* a*e
C+! :? E4er3"hi!* i d+!e i! Ja4a 1r+*ra..i!* 0a!* a*e
8/13/2019 Which Framework to Use
23/27
2008 JavaOne SM Conference | java.sun.com/javaone | 23
Wicke"
++Definition p blic class 9o.in e3tends eb8a.e 1
p blic 9o.in( 1 add(lo.in8anel 5 2 p blic void on& bmit( 1 lo.in( 5 set esponse8a.e( ne ?ome8a.e( 5 22
< ic et:panel>
++ Asa.eadd( ne 9o.in8anel( "lo.in" , lo.in 5
8/13/2019 Which Framework to Use
24/27
2008 JavaOne SM Conference | java.sun.com/javaone | 24
Wicke"
AJA7 11+r"2 E8"e! i4e
Vie/ La!* a*e OGNL
P h +r P 00 P 00
Ma" ri"3 M+dera"e
C+.. !i"3 Medi ., Ac"i4e
$ier F;W 11+r" De
Frie!d03 URL De
8/13/2019 Which Framework to Use
25/27
2008 JavaOne SM Conference | java.sun.com/javaone | 25
S ..ar3
N+" a00 #ra.e/+rk are e< a0U!der "a!d a!d + "0i!e 3+ r !eedFi!d a #e/ "ha" 0++k 0ike "he3 .ee" "h+ e !eed
U e "he cri"eria a!d e4a0 a"e6+! " "ake .3 /+rd #+r i", "r3 a He00+ W+r0d +# 3+ r +/!
8/13/2019 Which Framework to Use
26/27
2008 JavaOne SM Conference | java.sun.com/javaone | 26
F+r M+re I!#+r.a"i+!
$he e 0ide? /// h31eric +r*;c+!#ere!ce ; 0ide
Ja4a Fra.e/+rk S/ee" S1+"A /// 4ir" a c+.;#i0e ;Ja4aWe-Fra.e/+rkS/ee"S1+" 1d#
$he Fra.e/+rk? *rai0 c+deha +r*;? c+de *++*0e c+.;/e-"++0ki";? "r " a1ache +r*;
? "a1e "r3 a1ache +r*A /icke" a1ache +r*
http://www.hyperic.org/conferences/slideshttp://www.virtuas.com/files/JavaWebFrameworkSweetSpots.pdfhttp://grails.codehaus.org/http://code.google.com/webtoolkit/http://struts.apache.org/http://apache.tapestry.org/http://wicket.apache.org/http://wicket.apache.org/http://apache.tapestry.org/http://struts.apache.org/http://code.google.com/webtoolkit/http://grails.codehaus.org/http://www.virtuas.com/files/JavaWebFrameworkSweetSpots.pdfhttp://www.hyperic.org/conferences/slides8/13/2019 Which Framework to Use
27/27
CHOOSI ! " J"#" W$% F&"'$WO&() "CO'*"&ISO&+chard *ack
,S- ./0