views:

384

answers:

10

I am taking over a lot of the ColdFusion stuff that is lingering at our shop and they are insistent it stay on ColdFusion and that new projects in this area MUST be done in CF - basically this part is non-negotiable. I am not very experienced in CF (haven't touched it since 2003) so most of my development has been in .Net, MVC, C#, Linq-to-SQL in the past 4-5 years.

I was doing some looking around for a MVC framework that I could relate my Asp.Net MVC experience to and hopefully an integrated ORM (I am stuck using CF 8 at least for a while). I have found a few like Model-and-glue, Mach II and Coldbox etc. but I don't really know where to start and wanted to get some opinions on the advantages, disadvantages, etc. of each of them from people who use them.

I know that I will need to do an extensive brushing-up (pretty much re-learning) of CFML, so I don't need to be told that - I am looking into the future here.

Could you please share any information you have on CF MVC Frameworks to help me choose which one will be best for me? Thank you.

+9  A: 

I've been using CFWheels for a couple of years and I've not found a better framework. It's inspired by Ruby on Rails and is very easy to learn with great docs and a very active community.

www.cfwheels.org

Andy Bellenie
Andy, I hope you don't mind; I changed "based on" to "inspired by", to clarify that it is not built on top of RoR. And I linkified your link for you. :)
Peter Boughton
I'd have to second CFWheels. I have been using CF Frameworks for over 11 years. I stick to ColdBox and CFWheels exclusively. ColdBox is great and I tend to use it for much larger applications that interact with other apps or need alternate front-ends (Flex, etc.). But for small / mid-sized projects I always use Wheels. The built-in ORM and validations make it dead-simple and quick to get your app up and running. No other framework compares to it for speed of development.
Russ Johnson
+6  A: 

I teach a course in ColdFusion and use Sean Corfield's Framework/1 in the classroom. It's lightweight and has a very gentle learning curve, which makes it especially good for transitioning existing codebases. But at the same time, it's easy for a team of developers to work with and can scale to large apps. It's the framework that feels least like a framework and most like natural code, to me anyway.

http://github.com/seancorfield/fw1/

Rick O
+1 - it's a very good MVC framework that strikes a good balance between speed of development and organisation. We wrote our own MVC-ish framework for the last few years but next time we'd like to go with FW/1. Good community too: http://groups.google.ie/group/framework-one
Ciaran Archer
+3  A: 

You might also like my SOS and COOP frameworks. We are in the process of creating better public docs. It will likely be more like the code you are used to than other options.

John Farrar
+8  A: 

It has to be coldbox really.

It has excellent documentation on the site, and also has a book which has been brilliantly written to cover many aspects about object orientated programming, amongst other topics. Honestly, really impressed by the book, more than I was expecting.

What I like about the framework is that it uses coldfusion code in its handlers, when I picked it up I think the other frameworks where using xml...not sure if this has changed.

The framework is easy to pick up if you are knowledgeable on CFCs, and has several useful features for building sites. PLugins, Debug toolbar, URL rooting for "pretty URLS"..

I cant speak highly enough of the framework..

Theres also a really helpful community here who respond to all my questions really promptly.

namtax
Coldbox is great.
jarofclay
+3  A: 

You could also look at ColdBox. http://www.coldbox.org/ Loads of documentation and loads of features.

There's also Farcry Core Framework http://www.farcrycore.org/

It has to be said that you'll need to make your own mind up which framework you like best or whether to build one of your own. It really depends on what you want out of the framework.

In terms of ORM for ColdFusion 8 you have Transfer ORM (http://www.transfer-orm.com) and Reactor (http://www.reactorframework.org/)

Though, given that ColdFusion is java application on top of a java server, there is no reason why you couldn't go ahead and use Hibernate (http://www.hibernate.org/) ColdFusion 9 does make using hibernate much easier, but you're stuck on 8 for the moment.

Stephen Moretti
A: 

Everything is negotiable. Rewriting the CF apps in Rails 3 would be the strongest approach.

Languages and frameworks built on principles - Ruby/Rails 3 (and other Ruby frameworks), Python/Django 1.2 (and other Python frameworks), ASP.NET MVC 2 - are generally speaking the best thing to use.

ColdFusion and ColdFusion frameworks do not compare because ColdFusion as a language and as a library is hacked together at random and the ColdFusion frameworks (ColdBox, FW/1, Model-Glue, CFWheels, Mach II) can only do so much to smooth that over. For example: CF scopes, lack of closures, lack of loadable classes/components (you can instantiate a component, but not load the component as such), awkward arguments handling, mappings, lack of real applications, lack of delegates and closures, and convenient but non-rigorous approaches to most aspects of the language and library. In comparison, the other languages listed offer rigor plus sugar atop the rigor.

Justice
http://www.terrenceryan.com/blog/post.cfm/dear-coldfusion-denier http://www.terrenceryan.com/blog/post.cfm/dear-coldfusion-skeptic
Andreas Schuldhaus
If I was going to rewrite it, why would I learn a new language/framework? I would stick with what I have been doing for 6+ years: .Net
naspinski
@naspinski Yep, then stick with ASP.NET MVC! It's fairly solid itself, and is built on an extremely solid language and runtime. I personally like the NHaml template engine.
Justice
@Andreas I've been using CF for a few years and have been bitten repeatedly by each flaw of the language that I listed above, as well as numerous other flaws.
Justice
Justice, you aren't answering the question asked. You may feel that Ruby or .Net are the languages that should be used to develop an application, but the question states "MUST be done in CF", so your response is just FUD. Please stick to the question asked.
Stephen Moretti
@Stephen My answer was "Everything is negotiable."
Justice
+3  A: 

I'd suggest checking out Mach-II. It's used on numerous extremely high-profile, high-traffic sites and has been for years. This blog post is a bit old at this point but still has some great info in it in terms of Mach-II in general as well as who uses Mach-II.

It's under very active development (don't let the lower version numbers compared with other frameworks fool you) with version 1.9 just around the corner and big plans for 2.0.

Big features of Mach-II include sophisticated caching and logging functionality, a very nice dashboard for helping with development and monitoring of your applications, a rich form tag library complete with data binding, and tons more.

Matt Woodward
+4  A: 

I wanted to give a +1 for cfwheels.

Since 2003, I've used Mach II, ColdBox, Fusebox, and Model-Glue for various projects. All had their pros and cons (Fusebox is the only one I'd avoid now) but, with a recent project, I decided to try CFWheels.

Using Wheels has been a blast. I've had a great time developing a site for some friends in my small town who own and operate an Ice Climbing and Guiding site ([www.ourayclimbing.com]). Nice SES URLs, runs great on Adobe CF and Railo, the admin was insanely easy to get going with the Scaffolding plugin, convention over configuration (which I love :)), etc.

In any case, if you stick with the major players (ColdBox, CFWheels, Mach II or Model-Glue), I think you'll be pleasantly surprised at what CF can offer you.

craig.kamisnky
+3  A: 

Seeing you are NEW to ColdFusion what I would do is pick ONE FRAMEWORK and stick to it. At first it will be hard you will have problems and you will be tempted to drop the Framework you have chosen but don't do it. After you have mastered one framework then you can learn the others.

  • CF Wheels
  • ColdBox * * * (Nice Documentation)
  • FarCry
  • Framework/1 * * (simple LIGHT framework)
  • FuseBox
  • ModelGlue
  • Mach-II

Most of these you can add

  • ColdSpring
  • Reactor
  • Transfer

Most important is to remember we all have our opinions but there is NO real proof what is best. You can even NOT use a actual framework and just code carefully in MVC.

The stuff you are currently maintaining

I would pick ColdBox, ModelGlue or Framework/1.

ColdBox provides a little Code Generation and Framework/1 is very light so less to learn.

Nathan Stanford
Thanks a lot for this input, I agree that there is no 'best' framework, that is true for all languages
naspinski
A: 

I'd go with either CFWheels or FW/1. Both are very easy to use for those new to CF frameworks (I still count myself in that group) and don't have nearly as steep a learning curve as some others. Coldbox looks amazingly powerful, but I had a hard time getting my head around it.

Gary