I had a quick look at wicket and this sounds pretty interesting for the
ecommerce component. Updating the ecommerce frontend UI is indeed
sometimes pretty cumbersome.

Looking forward to a proof of concept?

Regards,
Hans

On Sat, 2009-12-19 at 23:25 +0530, Vasanth Kamatgi wrote:
> Hi all,
> 
>  
> 
> Firstly I would like to thank David E. Jones
> <http://www.blogger.com/profile/07283017166339658819> , for his
> encouragement to use the community process.
> 
> I had previously posted a question in this community at
> http://n4.nabble.com/Application-framework-technology-set-tp195713p963334.ht
> ml as a very terse summary of my thoughts.  After having a private
> conversation with David, I thought a much in-depth discussion on the
> presentation layer would be beneficial to me as well as the community and
> consequently I am starting a new thread of discussion.
> 
>  
> 
> Here is my primary complaint of Ofbiz presentation Layer - "There isn't a
> STRICT separation of UI / Code in the presentation layer.  Due to this
> deficiency, for any revamp in the UI, even though there is no associated
> change in the functionality / business logic, it takes substantial amount of
> developer time.  I see this as a major hindrance to a typical ecommerce
> website, where UI changes are frequent as well as significant."
> 
>  
> 
> To give more insight into why I have this complaint, let me raise some
> questions (and answer them):
> 
>  
> 
> What I think a presentation Layer does?
> 
> =============================
> 
> I believe presentation layer can be divided into 6 areas of concern:
> 
> Data Preparation - Events / Service (a.k.a actions) generate data that need
> to be processed to result into a *shape* that can be directly used by a
> view.  Eg., only product category id exists in context, we need to display
> category name as well - fetch it.
> 
> Layout - It controls the relative position of each of the components inside
> a page.  Wireframes used to build the page.
> 
> Page composition - Different areas of the page can be generated by a
> separate component / screen, and the generated output needs to be stitched
> together to result into a complete response
> 
> Look and Feel - Visual properties of components of the page (css?)
> 
> View Logic - The logic that controls the initial state of each elements of
> the output - like enabling, disabling, non-display etc., of specific output
> elements. Eg., if sale price exists, show it in large red font, strike
> through the list price, else show list price in large font.
> 
> Rich dynamic behaviour - the dynamic behaviour that each of the generated
> output needs to provide inside user-agent's environment (javascript / dhtml)
> 
>  
> 
> How have I set the things up in Ofbiz?
> 
> ===========================
> 
> 1.    I have created my primary page layout a.k.a. decorator in
> common-screens.xml using sections, actions, widgets, html-templates,
> containers, etc.
> 2.    I have abstracted out the common section contents as say,
> includes/header.ftl etc.
> 3.    I have created components of a page such as choose catalog, keyword
> search box, etc. as screens (non-top level) using actions and html templates
> in, say, catalog-screens.xml
> 4.    I create a complete response page as a screen in catalog-screens.xml
> using actions, widgets, decorator-screen, decorator-section, include-screen,
> etc. in, say, catalog-screens.xml
> 5.    I specify this top-level page as view, which I link to the
> associated event / service via request map in controller.xml
> 
> The actual response out is defined in html fragments in various files
> defined in #2, #3 & #4
> 
>  
> 
> Exactly what is it that I find cumbersome?
> 
> ==============================
> 
> UI Designer prepares the prototype, hands it over to the Ofbiz developer,
> who splits it into different fragments, and creates ftls for each of those
> sections.  Then, adds page composition, view logic and rich dynamic
> behaviour to those ftls.  This complete sequence of steps is irreversible.
> Once handover happens from UI designer to Ofbiz developer, the html / css
> ceases to exist in its native form, making it impossible for the UI designer
> to "maintain" it.  Any UI bug / change request cannot be fixed by UI
> designer.  UI designer first analyses the problem reports the possible
> causes to Ofbiz developer, who figures out which ftl file to edit and goes
> and edits it.  If a drop down box needs to move from one widget to another,
> Ofbiz developer employs a cut+paste job that can be so error-prone with
> missing tag closures, quotes, duplicates etc.  There have been so many
> instances of Ofbiz developer trying to fix UI issues, but failing to do so
> because he / she is good at writing java-like, jsp-like and javascript-like
> code and not standards-compliant html / css code.  He can't use visual tools
> like a UI designer to improve his productivity.  Throw into this mix the
> cross-browser compatibility issue - the whole effort becomes very
> unproductive with UI designer, Ofbiz developer working together to fix it,
> when it should actually be handled by UI designer alone.
> 
> Ofbiz supports data preparation, page composition, view logic well.  But
> other areas are a little troublesome.
> 
>  
> 
> How would I like it to work?
> 
> ====================
> 
> Different areas of concern, as listed in my previous paragraph, are best
> worked at by different types of resources.  Assuming we are using java
> platform for development:
> 
> Data Preparation - java coder
> 
> Layout - UI designer / business analyst / SEO specialist
> 
> Page composition - java / jsp coder
> 
> Look and Feel - User Experience expert
> 
> View Logic - java / jsp coder
> 
> Rich dynamic behaviour - script coder / java coder
> 
> Given these different areas of expertise, a software development /
> maintenance model needs to be employed to enable these types of resources to
> work at full productivity without tripping each other.  Cutting a long story
> short, I believe, Ofbiz should enable html, css, multi-media & view logic to
> be developed and managed independently.  UI designer should continue to fix
> UI bugs by just editing his / her html code.  There should be no pollution
> of html and css code.  View logic should be written without using tags.
> 
> I have dived into wicket and wrote my first hello world recently and believe
> wicket-like rendering would be a good enhancement to Ofbiz.  I am not
> claiming to be an expert of wicket, but based on the documentation I have
> read, it seems to fit the scheme well.
> 
>  
> 
> I hope I have given enough details for the community to start a
> conversation.  I understand that, the question begs of not only an
> architectural discussion, but also of a software development / maintenance
> model.
> 
>  
> 
> Cheers,
> 
> Vasanth
> 
-- 
Antwebsystems.com: Quality OFBiz services for competitive rates

Reply via email to