40

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.

Peter Boughton
  • 102,341
  • 30
  • 116
  • 172
naspinski
  • 32,338
  • 34
  • 100
  • 151
  • 4
    My favorite ColdFusion framework FW/1 already shows up as an answer. Here's a useful link to a comprehensive list of CFML Application Frameworks/Methodologies http://www.carehart.org/cf411/#cffw – Andreas Schuldhaus Jul 29 '10 at 13:08
  • Really great input everyone, thanks! I am going to leave this open a while longer to try to get more opinions – naspinski Jul 30 '10 at 15:41

10 Answers10

33

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.

Most of these you can add

An introduction to ColdFusion frameworks at Adobe.com

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.

Miguel-F
  • 13,042
  • 5
  • 33
  • 55
Nathan Stanford
  • 1,266
  • 2
  • 19
  • 35
16

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

Peter Boughton
  • 102,341
  • 30
  • 116
  • 172
  • 1
    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 Jul 29 '10 at 12:28
  • 2
    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 Jul 29 '10 at 16:44
13

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
  • 474
  • 2
  • 4
  • 4
    +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 Jul 29 '10 at 12:14
12

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.kaminsky
  • 5,475
  • 25
  • 31
9

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
  • 2,027
  • 5
  • 18
  • 25
5

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
  • 224
  • 2
  • 4
5

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
  • 453
  • 4
  • 15
4

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.

4

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
  • 2,422
  • 1
  • 17
  • 29
-29

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.

yfeldblum
  • 63,188
  • 11
  • 126
  • 168
  • 6
    http://www.terrenceryan.com/blog/post.cfm/dear-coldfusion-denier http://www.terrenceryan.com/blog/post.cfm/dear-coldfusion-skeptic – Andreas Schuldhaus Jul 29 '10 at 13:14
  • 2
    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 Jul 29 '10 at 13:37
  • @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. – yfeldblum Jul 29 '10 at 13:44
  • @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. – yfeldblum Jul 29 '10 at 13:46
  • 12
    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 Jul 29 '10 at 14:06
  • @Stephen My answer was "Everything is negotiable." – yfeldblum Jul 29 '10 at 16:20
  • -1 Comparing a framework (Rails) to a Language (ColdFusion) doesn't make a lot of sense. Coldfusion is mature and doesn't outdate it's code or have the types of performance or scaling issues Rails has right now. I would – Jas Panesar Nov 05 '10 at 04:17
  • 1
    Hi Justice, just saw this now. I'm not sure if you have used coldfusion enough to comment on it, because you can use cf as a tag language (which seems to be what you're commenting on), or use cfscript, which is ecma script (ala javascript) based. It's quite clean. The standard coldfusion functions are far more mature and a wider/deeper feature set for the web out of the box than any language (including Ruby) that I've worked with. Check it out for yourself, I think you might be pleasantly surprised. Coldfusion makes app dev trivial more than any other lang I've found. – Jas Panesar Nov 23 '10 at 20:11
  • Everything is negotiable only if you have decision-making ability. Many people do not. Whether or not you prefer ColdFusion (you clearly don't) doesn't matter if the language has already been decided for you ... and given that the OP hasn't used CF in years and is still supposed to work in it, even if the question were something other than "Picking a ColdFusion MVC Framework" (which Ruby, Python, and ASP.NET are clearly not), suggesting another language does the OP no good. – Dave DuPlantis Mar 31 '11 at 01:48
  • @yfeldblum Picking a ColdFusion MVC Framework VS Rewriting the CF apps in Rails 3: Really? Don't troll – Edward J Beckett Jun 28 '12 at 17:28
  • @EddieB Ignoring the argument and sticking a shocked question mark after the headline: Really? Don't troll. – yfeldblum Jun 28 '12 at 21:19
  • I only say that because both Ruby and ColdFusion have their pros and cons ... Your statement was completely off topic. The OP needed to know about CF MVC ... Not Java, Ruby, PHP, etc. – Edward J Beckett Jun 28 '12 at 21:52