You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Cedric Dumoulin <ce...@s1.com> on 2000/10/03 16:32:05 UTC

Proposal : Coarse Grain Components

  Following is a proposal for Coarse Grain Components.  

This mail is a short description of the proposal. See more on this
proposal by downloading first implementation and examples on
http://planet.bru.s1.com/cdm/components.zip .

 You can also see this proposal as a web page at
http://planet.bru.s1.com/cdm/index.html 

  
  
--------------------------
Goals 
We want to be able to build web pages by assembling components. There
are two kinds of components : coarse grain components and fine grain
components. Coarse grain components are components made of several html
instructions. For example, a component rendering an address or a header
is a coarse grain component. Examples of fine grain components are an
input/output field performing I18n formatting, a popup menu, ... For
now, we only focus on coarse grain components. 

Following are the main goals that we want to reach : 

 - Reusable : it must be possible to write component that are reused in
different pages 
 - Independent : A component must be, as much as possible, independent
from its "parent" (the entity that use the component). 
 - Build complex pages (like portal) by assembling components.  
    - Divide the complexity of the page in smaller components 
    - Focus on each component independently, without care on other
components. 
    - Focus on assembling, or layout, components without care on
component content. 

 - Have consistent web site "look and feel" by providing some common
"layout components", and assembling common components like header, menu,
footer, 
 - Perform changes on all pages by only changing concerned component. 
    - For example, change all menus or headers by only changing the
concerned component. No need changes in each page. 
 - Be able to modify pages composition, or components content from a
central point, like a description file. 
Have a library of common components. Don't rewrite them (or copy/paste)
each time. 
    - Improvement in one component will be propagated to all pages using
this component (not so easy with copy/paste). 
 - A component can be made by assembling other component. 
 - Simple to understand and use 
    - Preferably, component is describe in a JSP file. 
 - Fit in JSP and Struts philosophy. 



See more on this proposal by downloading implementation and examples . 
http://planet.bru.s1.com/cdm/components.zip