On 3/24/07, Todd Cullen <[EMAIL PROTECTED]> wrote:
Quick Question (or maybe not that quick): Why do most of the ColdFusion frameworks around use XML configuration files rather than providing methods to build the required data structure in ColdFusion? Something in line with what RoR does.
The main reason for using XML is that it's very easy to manipulate programmatically which makes it very amenable to driving a framework and/or building tools around a particular XML specification. XML provides a fairly rich language for specifying the structure and/or behavior of your application. Rails goes to the opposite extreme in relying on convention and, if you need to break with that convention, you have to start writing a lot more code to tell Rails how you want to do things. If you've ever seen a Rails app that has to deal with a legacy database with funky column names, you will have seen just how ugly this can get. For comparison, Fusebox 4.x and 5.x are driven entirely by XML but Fusebox 6 will introduce a set of conventions that will allow you to omit some, most or even all of the XML depending on how closely you choose to follow those conventions. Reactor already takes that approach to some extent: if you work with default table names and column names, the only thing you have to tell Reactor about is the relationships (something it cannot reliably deduce for all databases). Compare that with Transfer which does no introspection and requires that you specify all the table names and column names through XML. Of course Transfer has pros as well as cons when compared to Reactor so you can't just focus on that one point! -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ "If you're not annoying somebody, you're not really alive." -- Margaret Atwood -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Reactor for ColdFusion Mailing List [email protected] Archives at: http://www.mail-archive.com/reactor%40doughughes.net/ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
