May 16, 2008

Pages


Search Site


Topics


Useful Links

Blogs I Read


Archives

Entries Tagged as 'Spring'

What Is ColdFusion?

May 12 2008 by Andrew Powell

This is a follow-on to my previous post.

As CFML developers start to learn Java and move into the realm of Spring and Hibernate, it is very important to stop and ask "What Is ColdFusion?".  ColdFusion, since CFMX, has been a J2EE application running within a J2EE server (JRun, JBoss, Tomcat, Websphere, etc.).  This is important because thinking of ColdFusion like this lets us expand our mind to what we can really do with ColdFusion.  We (CFML developers) can start to leverage J2EE services and frameworks like JPA, JNDI, JTA, and others to make ColdFusion a real player in the J2EE stack.  

Java developers are quick to dismiss ColdFusion as simply a J2EE app and miss its real potential:  It is the fastest way to get data to the web.  It is the fastest way to get data to AJAX, Flex, Silverlight, and even JavaFX (the last two via XML or web service).  I think that going forward, ColdFusion will really shine in this space and make itself be known as a the leader in moving data into RIAs.

ColdFusion also provides complex services easier than Java, .Net, Ruby, or whatever wishes they could.  Let's look at a couple of examples:  CFMAIL is, by far, the easiest way to generate email from an application.  CFPDF?  Are you kidding me?  It doesn't get any easier than this.  Don't tell the Java guys this, but it integrates with JMS easier than Java does too (look at the gateways).  These specialty services are an often used, but at times, overlooked part of ColdFusion because of their simplicity.  By the same token, they're often a source of ammo for the ColdFusion detractors.  Maybe they're just jealous.  

Simply put, at the end of the day, ColdFusion is a J2EE app that enables you to be more productive than if you were writing pure Java or CFML code, alone.  Look at it, and embrace it as such, and a whole new world will open up to you, as a CFML or Java developer.

Posted in Java | ColdFusion | Flex | General | Spry | JMS | Spring | Adobe | JSP | JRun | Hibernate | XML | AJAX | 1 comments

Should CFML Developers Switch to Java or Decaff?

May 12 2008 by Andrew Powell

Note:  This started as a reply to Brian's cf.Objective() topic, but I felt it deserved its own post.

OK, so we know ColdFusion (as Joe has said) makes it "stupid-easy" to render HTML off of dynamic data.  We (CFML developers) have been using it to do this for years.  Only recently, with the fast emergence of RIAs in the last 5 years, has the game changed.  My personal approach has become to to let ColdFusion do what it does best, and no more.  No AJAX generation or any of that silly UI stuff.  Leave that to the AJAX frameworks, or Flex, or whatever your UI is going to be on the front-end.  That's what the UI tool was designed for, CF wasn't.  Let CF focus on three things:  Getting data into and out of RIA front-ends, rendering HTML with dynamic data, and providing services that Java and .Net cannot provide (more on that in a bit).  Beyond that, let Java, .NET, or whatever do the work at the model layer.  Keep your CFML to a minimum and give ColdFusion some room to breathe.

This is not to say I don't use CFCs.  I do.  My framework of choice (Mach-II) relies almost exclusively on CFCs for processing requests.  However, the only CFCs I have in my application (outside of the framework) are for listeners, plugins, and filters.  No more, no less.  The rest of the work is done at that Java layer.  Spring handles my IOC and AOP, and Hibernate is responsible for my persistence.  No more, no less.

This approach solves much of what the "vocal minority" at the cf.Objective() CF 9 BOF were clamoring for:  You get the best of both worlds.  You get all of CF's ability to deliver data and render that static UI, plus kick-ass services:  CFMAIL, CFPDF, etc that you cannot and never will be able to do easily in Java (my OO lang of choice).  You also get the things that Java does well:  strong-typing, easy persistence (Hibernate), strong IOC utils (Spring), a true OO language, plus a ton of other stuff that CFML & ColdFusion just don't do well as Java.  

I think that there are some CFML developers who are not necessarily "outgrowing CFML" as Brian has put it, but learning that there are other tools in the tool belt besides your favorite hammer.  Is that so bad to realize and use those other tools?  I don't think so.  I think it's a natural progression of the good developer to push themselves to, occasionally, learn other languages and not be complacent with just one language.

So, should CFML developers switch to Java?  No.  Should they learn it and learn how to leverage it within their CFML apps? Absolutely.  It gives you the ability to let ColdFusion run and truely perform, plus it gives you, the developer, another skill that will make you that much more marketable.  It truly is a win-win situation.

Posted in Java | ColdFusion | Flex | General | Spring | Adobe | 1 comments

Belated cf.Objective() 2008 Thoughts

May 07 2008 by Andrew Powell

I've been a bit busy since leaving St. Paul, so I've not had the time to collect my thoughts on cf.Objective() until today.  

My initial thoughts are that it was a better show than last year. The content was, again, top notch.  The food and hotel were great, and the people were, as always, the best part.  It was good to meet new faces and reconnect with old friends & people I only know via blog comment conversations.

There were very few sessions that I went to that disappointed me and didn't meet my expectations.  The first highlight, for me, was the coming out party for Mate (http://mate.asfusion.com) & Swiz (http://code.google.com/p/swizframework/).  I think that by this time next year, they will have matured into full fledged alternatives to Cairngorm.  They're both well on their way now.  

The second highlight was the ColdFusion 9 BOF.  It was, without a doubt, the single most rowdy session I've ever attended at a conference (my & Brian's contributions not withstanding).  As much as there were a lot of truer OO functionality pieces asked for, I couldn't help but think:  "Why not learn Java?", but that's another blog post.  The knowledge gap in the room was almost palpable, but I think the "thought leaders" of the CF Community (as someone so eloquently put it in another review) should accept the challenge and step up and help close the gap for those that want to get into hardcore CF development.  How do we do that?  I don't have a damn clue right now, I'm just throwing ideas out.

I'm going to go on record as saying that for both price and quality of content, cf.Objective() is the single best conference for ColdFusion developers, hands down.  There is no competition.  And, yes, I was a shameless shill for my buddies at 360|Flex, the Flex world's equivalent.  

That being said, you sure better know what you're doing with ColdFusion when you walk in the door.  All content can be considered "200 level" and above.  If you're a cfNoob, you'll be way lost and over your head.  Plain and simple.

On to my session.... 

I had a LOT of blank stares in my session, but I kind expected that.  I know the stuff I was doing was going to be way over a lot of people's heads.  I will be posting a comprehensive HOWTO document on setting up Spring & Hibernate with ColdFusion in the next few days.  There are a few people who really got it and even extended it to work with ColdSpring (good job, Joe).   If I confused you, just try to remember to look at ColdFusion (the server) as just another J2EE app and it will be an easier task for you.

That's about all I've got.  Feel free to comment on my session or whatever you like. 

Posted in Cairngorm | Java | ColdFusion | Flex | General | Conferences | BlazeDS | ColdSpring | Spring | Adobe | Mach-II | Hibernate | XML | Speaking | 0 comments

Enterprise MVC With ColdFusion and Java

May 03 2008 by Andrew Powell

Here is the code/slides for my cf.Objective 2008 presentation: "Enterprise MVC With ColdFusion and Java".  If you are currently sitting in my session, feel free to download the code and follow along.  If you're not in my session right now, still download the code and follow along.

 

Download The Code From My Google Code Site

 

P.S.  Don't forget to come to my BOF tonight on creating & using Open-Source Projects. 

Posted in Java | ColdFusion | General | Conferences | Spry | Spring | Adobe | Mach-II | Universal Mind | JSP | Hibernate | XML | Speaking | 0 comments

Love Me? Hate Me? Come See Me At cf.Objective

April 30 2008 by Andrew Powell

If you're going to cf.Objective this week, and want to see something you've NEVER seen ColdFusion do before, come to my session: "Enterprise Class MVC with ColdFusion And Java".

You will need to know what the MVC pattern is and nothing more. Jason Delmore's session would be a good warmup for this one, but it is not required. Oh yeah, I'll have swag to give out at my session too. I am not above bribery to bring butts into the seats.

Session Description:
This session will show you how to leverage the power of Java tools, like Hibernate, to increase the speed and scalability of your ColdFusion MVC based applications. We will look at performance differences between using Java and ColdFusion based solutions and discuss the benefits and drawbacks to both methods. The discussion will also cover when using such an approach is appropriate and why a developer would want to take this approach. Demos will also be provided to show you how to take advantage of this new technique.

I am also hosting a BOF session on Saturday night entitled: Open Source Development & Publishing. The title is a bit wack, but the premise is simple. Lots of people want to write open-source components, but don't know what it takes to publish them. Conversely, a lot of people want to know what open-source components are available to use in their applications. Well, we'll cover both of these topics and other things such as the various OS licenses available to publish under and how they work together, or with commercially released software. Come, sit down, talk. It'll be fun.

Beyond both of these sessions, I will be hanging around, going to some sessions, and generally catching up with people I've not seen since MAX. Come find me in the hall or lunch, or wherever and I promise I'll make some time to talk with you about ColdFusion, Flex, Java, the Braves, the Red Sox, whatever.

BTW, if you do come to my BOF, someone remember to bring me a bottle of scotch (single malt Islay if you have it, or Johnnie Walker Gold Label if you must bring a blend). I promise you, it will make me much more interesting.

Posted in Java | ColdFusion | Flex | General | Conferences | Spry | Spring | Adobe | Mach-II | Universal Mind | Hibernate | Air | XML | Speaking | AJAX | 0 comments