Forum OpenACS Q&A: Response to Utility of XSLT?

Collapse
Posted by John Sequeira on
The last big ACS project I was on was for a vertical market ASP.  Their funding ran out before we took any sites live,  but we had about 5 in QA.  These were simple sites,  with about 15 public-viewable pages, and 40 or so admin pages.  The whole thing was built on ACS 4.0 using templates and subsite functionality.
I should note that I prototyped a solution for them using XML/XSLT to spit out the template pages using Userland's Frontier OODB/Content Management System.  The client didn't like the fact that you couldn't modify pages in real-time (without doing a site republish),  and since I was really reluctant to force the them to learn the OODB I readily agreed to scrap this.

[Aside: This approach had previously served me well on a 200 page Cold Fusion intranet project - managing the web pages and navigation in an OODB (with look and feel inheritance,  and a strong macro language), but programmatically generating scripted web pages. The best of both (OO & script) worlds]

Anyway,  for the ASP the templates were constructed so the designers could pull them up in Dreamweaver.  They *loved* this.  Dreamweaver has XHTML/XML hooks that can be coded to,  and we had an initiative was underway to do something with it,  but didn't get out of R&D.

The learning curve of this templated approach allowed me to bring in part-time programmers (moonlighting from their cash-bleeding .com) who I did not have to train at all.  I did a few via-email code reviews on their stuff and showed them some 4.0 shortcuts,  but these somewhat junior programmers were productive from day 1.  aD really did a great job balancing approachability and power in ACS 4.0.

Stephen makes some good points about when you would reach the limits of templating (components/sub-pages/inheritance),  but I consider that even now to be the exception cases for pages that go into real  sites.  Phil had this really amazing passage about how you really shouldn't design your software to solve 100% of your problems in the Guide to Web Dev.  I won't try to say it better here.