This is in a response to John Bland’s Blog on the same topic. I was going to just post a comment, but I too got a little long winded.
I agree that you can’t compare .Net and CF, and in fact, you may be right that CF is easier to use on the web.
However, I still maintain that ASP.Net is a more powerful web tool than CF is. The first thing I need to point out is that you no longer need to compile ASP.Net code, that is taken care of automatically in v2.0, so it really only has one strike against it… you have to know the backend language. This is where I am going to get biased. CF is a scripting language, a very powerful one, but still a scripting language. I grant you that you can extend the capability of CF using Java that you can integrate into CF quite seamlessly, but on the same token, if you are going to code java… why not code C#? That is a more adequate comparison seeing that you have to use Java/CF to have all the ability that ASP.Net/.Net provide in a much more seamless package (even though as I already mentioned CF and Java get along quite nicely… they are still however two seperate models). .Net however IS enterprise level. The main advantage that CF/Java maintain over .Net (although, thanks to the Mono project, not for long) is that they run across platforms where .Net is limited to Windows.
There are MANY cases where if it was put to you to build a site in CF and build a site in ASP.Net, and depending on the complexity of the requirements, that you could get the job done faster with CF. However, for a very complex application, ASP.Net is going to be (in my opinion) by far the better choice because it is has more high level capabilities out of the box, where CF would need to be extended or do things in a manner that would not be considered “Good Coding”.
I grant that I am biased toward .Net, and I will stand up equally for anyone who says that Cold Fusion is a bad language, it isn’t. However, comparing it to ASP.Net is akin to comparing a Windows to a Mac to (pure)Unix. Sure, they can both perform the same tasks, but each one is better at a given task than the other. Where one excels and the other gets by, the situation could be reversed in a different circumstance.
So, which is better? I would say it depends on your project, both are powerful languages, but .Net is more far reaching in terms of overall capability.
Which would I use? Why, .Net of course.
Just don’t talk to me about PHP.