We're looking into using frameworks to do our development. I would appreciate it if you could share your experience your use of frameworks and/or your preference for choosing one over another.
I'll start by saying my experience with these various solution is only at the investigative / experimental level, and my findings are only my own impressions / opinions, but below is the position I arrived at.
Overly convoluted and non-intuitive for what it delivers. I think back in its version 2.0 days, it had something going for it, but I think it's the least good offering as far as frameworks go, available currently. At the point at which it started putting logical control structures (conditionals, etc) in its config, it had definitely lost the plot.
I evaluated this at the same time as I did Model Glue, and by comparison Mach-II seemed slightly jerry-built or... I dunno... using a round peg to fill a square hole or something. It seemed a better prospect than FB, but it didn't seem as polished as Model Glue, so I stopped my investigation fairly quickly. I think it's probably fine, but M-G clicked for me very quickly, so theer seemed no point in looking at Mach-II any further.
When investigating FB & M2, I found myself thinking "there's a lot of horsing around here to get anything done", and I was refreshed that how obvious, intuitive and perhaps even elegant Model Glue seemed. After having a quick read through the docs and trying Ray Camden's phot gallery tutorial (which was a coupla hours work), I had a Neo-esque moment "whoa... I know Model Glue!". I also thought that if I had the ability and motivation to build a framework myself, I would (want to ~) end up with something like Model Glue.
As well as these three, there are some more related frameworks to consider:
This usually goes hand-in-hand with Model Glue (in fact it might be a requirement now?). Again this seems very polished and intuitive (not quite so intuitive as MG, but I think its concepts are more complex, so that's probably fair enough), and I like the dependency injection & IoC ideas.
ORM-type frameworks might be slightly redundant these days with CF9's in-built Hibernate support, but I had a quick look at TransferORM and Reactor whilst I was doing this investigation. My opinion re TransferORM vs Reactor were similar to those of Mach-II vs Model Glue. TransferORM did the job, but it didn't really seem like it approached things quite the way I would approach things if I was doing it, whereas Reactor just seemed sensible and elegant to me. That said, I'd probably investigate just using CF9's Hibernate wrapper to fulfil this requirement.
I've never looked at ColdBox, but have heard good things about it. I also had a passing glance at Sean Corfield's Framework One... it seemed interesting to me, but my initial feeling was that it was a bit too lightweight to bother with. However - giving Sean the benefit of the doubt because he is certainly more clever than I am - I figured I had just not have that "whoa!" moment, and wasn't quite "getting it".
If I was starting a project from scratch and didn't need to fit in with someone else's ideas of how things should be done (which is seldom the case, unfortunately), I'd be going the Model Glue / ColdSpring / CF9-Hibernate route, I think.
Mach-II or FuseBox
I work daily on applications that use the one or the other. In fact, I was responsible for developing our company's pilot Mach-II project.
Adopting either FuseBox or Mach-II is, in my opinion, much more preferable to using no framework at all. Both enable you to structure software in a way that makes maintenance easier, and fosters team-work.
FuseBox keeps things simple, and is simpler to learn than Mach-II. It is therefore better suited to a team of Coldfusion developers with limited experience.
Mach-II has the advantage of being an object-oriented framework (FuseBox isn't). It can help you clearly demarcate your software into the familiar Model-View-Controller pattern. The underlying objected-oriented abstraction assists you when you design the relationships between the various parts of your application.
Europe, Middle East and Africa