- NetBeans JavaOne 2010... · Give me a proper visual JSF editor or else ... David Konecny...
Transcript of - NetBeans JavaOne 2010... · Give me a proper visual JSF editor or else ... David Konecny...
<Insert Picture Here>
Give me a proper visual JSF editor or else ...
David KonecnyPrincipal Member of Technical Staff, Oracle
3
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions.The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
4
Questions, questions, questions, ...
• Is visual JSF editor needed ?• Do developers prefer text editor ?• Have tool providers failed ?• Should we blame JSF itself ?• ...
5
and answers could be:
• Is visual JSF editor needed ?• Do developers prefer text editor ?• Have tool providers failed ?• Should we blame JSF itself ?• ...
6
Process
WHYWhy do I ask these questions?
HOWHow did I find answers?
WHATWhat are my answers?
ANDAnd what can I do with them?
7
Why do I ask these questions?
JSF 2.0 – Facelets, Annotations, Ajax, Navigation, GET, Composite Components, Scopes, ...
Java EE 6
Technical Lead of EE support
Supports full EE 6 stack
8
Why JSF?
• > 70 votes!• “... is great, it must be improved and continued ...”• “I would not mind to pay ...”• “... the most important thing for corporate users ...”• “... was one of the best features of NetBeans ...”• “Lets hope and pray that this absurd decision ...”
VWP == Visual Web Pack aka Java Studio Creator
10
What is JSF good for?
• migration of application data to and from the UI• UI from a set of reusable UI components• custom UI components
12
Who is using JSF?
• Developer versus Designer• Developer's evolution• OS Look and Feel dogma• Different roles have different needs
13
Developer Role – what is important?
• Data bindings• Conversions• Validations• Error messages• Localization• Navigation
16
Q.1: So do we need a visual JSF editor?
– JSF applications are data driven– JSF language is designed for tooling– Visual editor improves productivity– Number of visual editor addicts
YES !
19
Tools – Visual Web Pack (Cont) - sloccount()
• Total Physical Source Lines of Code = 450,000• Development Effort Estimate (Person-Years) = 120• Schedule Estimate (Years) = 3.3• Estimated Average Number of Developers = 37• Total Estimated Cost to Develop = $ 16,523,003
21
Observation #1: Rich component metadata
• JSR-276 JSF Component Metadata • JSF 2.0 Composite Components
<x:foo/>
Can I have children?Do I have parents?
What do I render?
Which component family is mine?
What about my facets?
22
Observation #2: Component Rendering
• Arbitrary output of component renderer• JSR-276 JSF Component Metadata • Missing Java native HTML renderer
23
Observation #3: Layout Component Rendering
• Mapping source to output• javax.faces.context.ResponseWriter
24
Observation #4: Layout Component vs Drag'n'Drop
• Description of drop areas• Description of drag handles
drop areas
has 13
25
Observation #5: Layout Options
• HTML/CSS based layout• Absolute Layout• h:panelGrid, af:panelFormLayout
26
Matisse parallel
• Matisse = Swing GUI designer for Group layout• Good tool + Good layout manager• 70-80% satisfaction threshold
27
Other tools
• JDeveloper (JSF/ADF)• MS Dev Studio (ASP)• Window Builder (GWT)• MS Dev Studio (SilverLight)
28
Q.2: Have tool providers failed ??
– Tools tried their best– Missing HTML renderer– Hindered by JSF issues– Missing layout abstraction
No, not really.
29
Q.3: Should we blame JSF itself ??
– Lack of support for design time editing– JSR-276 JSF takes too long– JSR 273 (Design-Time API for JavaBeans) dropped
Well ...
in part.
31
and my answers are:
• Is visual JSF editor needed ?• Do developers prefer text editor ?• Have tool providers failed ?• Should we blame JSF itself ?
32
Summary: JSF does need a visual editor
JSF Tools Providers
Any component works Layout abstraction WYSIWYN(what you see is what you need)
• To achieve that following needs to be done: