-
1. Re: What is the JBoss Way for Web Development?
lfryc Jun 25, 2012 5:33 PM (in response to ravenor) -
2. Re: What is the JBoss Way for Web Development?
healeyb Jun 27, 2012 6:50 AM (in response to lfryc)Hi, I don't work for Jboss/redhat but have a small amount of feedback based on my own experience, perhaps others
may wish to add their own thoughts:
1. Rapid web development - speed is an important factor
Particularly with JSF I think speed of development is ultimately tied to how experienced your developers are, it's probably
true with everything really, but particularly with JSF. If you're starting up a big project and don't have a lot of experience
within the team it would be worth looking at bringing in a few JSF heavyweights perhaps temporarily to help you work
through some of the pitfalls that everyone encounters when starting with this technology.
There are some consultancy/training companies out there such as http://www.irian.at/en/ (I do not work for them either)
who have some seriously good people, although I don't know specifically what services they provide.
2. Highly scalable, stateful (with sessions) application
JSF has application and session scoped beans built in. Alternatively JSF can be used in conjunction with CDI (contexts
and dependency injection) which also provide these scopes. There are CDI extensions projects such as Seam 3 and
Myfaces CODI which provide additional scopes, and these two projects are merging into the Apache DeltaSpike
project which is something to keep an eye on for the future.
At the business logic layer EJB has stateless and stateful beans.
Scalability is taken care of by clustering at the application and database server level and both Jboss AS and Glassfish
provide clustering out of the box, I think.
3. End-user customization, Theming and Personalization is a large requirement
Richfaces supports skinning and makes it very easy to implement this, take a look at the showcase here:
http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=standardSkinning&skin=blueSky.
Of course Java/JSF provide all the usual internationalisation features.
4. Web pages dynamically generated from metadata
I don't personally know of any way of doing this in a JSF Richfaces environment but it's certainly something
you could look at doing yourself, as you say you have a large team.
4.1 Templating Support
JSF2 (which can be used in conjunction with Richfaces 4) introduced Facelets view handling technology
replacing JSP. Facelets has powerful templating features which allow flexible code re-use.
5. Complex web client, rich user experience
JSF in conjunction with Richfaces meets this requirement. You also have the option to use jQuery plugins
as required. It's also possible to write your own JSF/Richfaces custom components and Richfaces provide
a component developers kit (CDK) for this purpose.
5.1 Ability to consume 3rd party Javascript component libraries
Richfaces ships with jQuery which has a jQuery.noConlict option which should allow for interoperability
with Dojo, Prototype, Scriptaculous & YUI. There may be some work needed to do this, but jQuery is the
definite leader in the field.
6. We are a large team with the ability to build our own frameworks, so a complete stack is not a requirement, a solid base that will not lock us in is prefered
If you use a Java EE compliant stack such as provided by glassfish you've got everything there, but depending
on the choices you make along the way you can avoid being tied to a specific app server. There are three JSF
implementations, Mojaraa (the reference implementation), Apache Myfaces and Oracle ADF Faces (so Oracle
actually have two implementations following the SUN takeover).
If you're going to be using JPA at the persistence layer as long as you don't start using implementation
specific extensions that aren't in the JPA spec you should be able to move fairly easily from, say, Eclipselink to
Hibernate or vice versa.
I recently migrated a project from Primefaces to Richfaces and with about 100k+ lines of xhtml + backing bean
code I was able to do this in about three weeks.
7. Complete life-cycle consideration including developer experience, automated testing and deployment is considered
Regarding automated testing you should check out JBoss Arquillian http://www.jboss.org/arquillian.html. Deployment
is a breeze but depends on the application server. I use glassfish and can deploy straight to production from the
NetBeans IDE.
Regards,
Brendan.
-
3. Re: What is the JBoss Way for Web Development?
lfryc Jun 27, 2012 6:43 AM (in response to healeyb)1 of 1 people found this helpfulThis is exhaustive analysis, Brendan!
Brendan Healey wrote:
Hi, I don't work for Jboss/redhat but have a small amount of feedback based on my own experience, perhaps others
may wish to add there own thoughts:
4. Web pages dynamically generated from metadata
Gideon, you may want to look at Metawidget here.
4.1 Templating Support
JSF2 (which can be used in conjunction with Richfaces 4) introduced Facelets view handling technology
replacing JSP. Facelets has powerful templating features which allow flexible code re-use.
Multi-Templating is also worth to mention, as it is coming in JSF 2.2 ( http://jdevelopment.nl/jsf-22/ ).
5.1 Ability to consume 3rd party Javascript component libraries
Richfaces ships with jQuery which has a jQuery.noConlict option which should allow for interoperability
with Dojo, Prototype, Scriptaculous & YUI. There may be some work needed to do this, but jQuery is the
definite leader in the field.
As Brendan said, you are able to use any custom / third-party widgets together with RichFaces,
but recommended way is to wrap those components as JSF components, more info here:
http://www.slideshare.net/lfryc/richfaces-cdk-rapid-jsf-component-development
7. Complete life-cycle consideration including developer experience, automated testing and deployment is considered
Regarding automated testing you should check out JBoss Arquillian http://www.jboss.org/arquillian.html. Deployment
is a breeze but depends on the application server. I use glassfish and can deploy straight to production from the
NetBeans IDE.
Yeah, Arquillian, Selenium and Jenkins are winners here!
http://www.slideshare.net/lfryc/designing-topclass-test-suites-for-web-applications
Cheers,
~ Lukas