That's how I understand it as well.  However, Shale doesn't provide the 
framework, JSF does, right?  Shale uses the extension points of JSF to enhance 
it by offering services.  I guess some of the services could be considered 
frameworks as well.  Clay is a framework for "... reusable view fragments."  

I think the vocabulary is getting in the way.  What are services and frameworks 
in this context?

 -----Original Message-----
From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent:   Wednesday, August 17, 2005 10:43 AM
To:     user@struts.apache.org
Subject:        Re: Shale ... where can I find out more?


On Aug 17, 2005, at 9:09 AM, [EMAIL PROTECTED] wrote:

> I'm interested in the analogy, "Shale is to JSF as Struts is to JSP".  
> What is the connection between JSF and JSP then?  I thought that JSF 
> was to JSP the same way Struts was to JSP, and Shale was more like the 
> Struts tag libraries on crack.  Can somebody point me to a good 
> explanation of the distinctions and relationships?

Here's a probably oversimplified flow from early to today.

Servlet - write HTML rendering code in Java.

JSP - write HTML rendering code in markup and write Java code in Java.

MVC (Struts and others) -Move Java code out of JSP and into the Model 
and Controller layers.  JSP becomes almost exclusively markup.

JSF - a "next step" for MVC.  Standardizes the MVC paradigm and adds 
other features like the event model.  Still uses JSP as a view layer 
but not limited to that.

Shale - a JSF-based Framework.  Builds on JSF to provide best practices 
for application development.

To say "Shale is to JSF as Struts is to JSP" basically means this:  
With JSP you had all the capabilities to build web apps.  Sun created 
Model 2 as a pattern for developing JSP web apps with an MVC 
architecture.  But they didn't define the architecture.  Struts filled 
in the gaps by providing an MVC implementation.  JSP is a view 
implementation.  Struts is the framework.  Similarly, JSF standardizes 
the MVC architecture.  Shale fills in the gaps by providing an 
application framework and services.

Another way to look at it is to express it in layers:

Servlet -> JSP -> Struts -> application code

Servlet -> JSP -> JSF -> Shale -> application code.

At least that's my understanding of it.  I'm sure I've misstated 
something and I'm sure someone will correct me :-)

Greg


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to