CFObjective() Refactoring in ColdFusion from Procedural to OO Presentation

I presented twice at the CFObjective() conference on Refactoring in ColdFusion from Procedural to OO. I love giving this presentation because it is the culmination of many many hours of practice and research expended when I made the transition from procedural programmer to OO programmer.

The basic premise of the presentation is how to take a pragmatic approach to refactoring. Rather than feeling the need to completely rewrite your application to achieve a good OO architecture ( Managers never like this idea), I offer a reasonable, incremental approach on moving pieces and part of your application at a time.

In the presentation, there are a handful of slides with guidelines and high-level talking points about migrating to OO and move right into the code samples. The code samples show common procedural structures and then a comparible Object Oriented structure. This compare/contract method helps programmers understand how to move toward common software patterns in their applications.

If you missed the presentation, and were not at one of the user group presentations I gave last month, you can still get in on the action by showing up at CFUnited. I've also included the slides and code samples in a zip. You can download it from the Features Pod on the right hand side of the page, or better yet, from the Flagrantly Cool SlideSix.com

TransferORM gets closer to 1.0 release

The word on the street is Transfer 1.0 will be in release candidate status at CF.Objective 2008. I've actually overheard that the Transfer code in SVN ( http://svn.riaforge.org/transfer ) is complete and ready for the 1.0 release, all that remains is documentation. Mark Mandel has been quite specific that the 1.0 release will be properly documented. It appears as if he has been quite busy. I just stumbled upon the new Transfer documentation and MAN is it looking sweet!

[More]

Refactoring in ColdFusion: From Procedural to OO

I just finished giving my presentation on Refactoring in ColdFusion to the Triangle Area ColdFusion User Group. This was the first time I've given the presentation to a live audience and it went rather well. All the slides were in order and all the code samples were in place. We had a fun time, thanks to all who came out. I'd like to present this talk at least once more before May 1. If your CFUG is short a speaker and can host a Connect, let me know.

This presentation timed at 1:15. This is fine for a CFUG but a little over time for CF.Objective(), where the sessions are 60 minutes. To shorten it for the big show, I've whacked two of the 18 slides and have my eye on a third. Most people would rather see code samples than slides anyways, the slides are really to keep some structure in the presentation.

I could talk on this topic all day long but I'm definitely going to stick to the alloted 60 minutes at CF.Objective(). I'll save my pontificating for afterwards at the get togethers.

In other news, Phill Nacelli and I are having our sessions repeated on Sunday at CF.Objective(). Phill is talking about Leveraging Basic Design Pattern in ColdFusion and his session is the most popular of all sessions at CF.Objective() so far. Congrats Phill! We are both pretty stoked to be on the list of repeats.

If you haven't yet signed up for CF.Objective(), what are you waiting for? The Schedule is jam packed with awesome training from luminaries and experts in ColdFusion/RIA. Reading blogs can only get you so far. Come get trained by the best in the business. I plan on walking out of the conference 72% smarter, myself.

Don't have a blog? Have something to say? Read This!

The ColdFusion community is full of intelligent developers who have experience on interesting areas of ColdFusion development. Many developers have blogs and share their experiences. Some do not have blogs because of the hassle in setting up a blog. You gotta get the design just right, figure out the right host for your budget, evaluate blog software, who has the time, right? Just because you are busy, doesn't mean you have nothing to say.

If that is you...

You are invited to share at ColdFusion.dzone.com. ColdFusion.dzone.com is a place where you can share your experiences, opinions, news and tutorials with the masses.

Here is what you can do...

Writing for ColdFusion.dzone.com is easy. Simply log in with your dzone.com account (OpenID also accepted), click Post Content, Choose Story and write your article. Once you submit your article, it will be editorially reviewed by one of the Zone Leaders. Once complete, your article will be available for viewing.

Here is how we all win...

We all learn tips and tricks from community articles. If you want to contribute to your community and have been putting it off for the reasons mentioned above, I invite you to share at ColdFusion.dzone.com. You get the recognition you deserve, we gain from your experiences.

Coldfusion Dzone Top Links For Last Week

ColdFusion has been on dzone.com for a week. We've posted some very interesting articles for the dzone.com community at large. Here are the top 5:

Title Author Votes (up/down) Traffic
How Do You Set Up Your Development Environment? Scott Stroz (Boyzoid) 10/3 Views: 1229, Clicks: 950
Some HOT Flex Skins for your Flex app Ralf Sczepan 9/0 Views: 780, Clicks: 489
Services DAOs and Functional-Organization Author: Paul Marcotte 7/0 Views: 689, Clicks: 373
What Tools Do ColdFusion Developers Use? Todd Sharp 11/0 Views: 358, Clicks: 133
Did you know that ColdFusion Arrays are Java Arrays? Adrian Moreno 9/0 Views: 301, Clicks: 100

Views: the total count of visitors that read the teaser on dzone.com.
Clicks: Traffic routed to the blog/website holding the article.

Scott Stroz can vouch for the 'dzone effect' on his post How Do You Set Up Your Development Environment?. Even though he wrote the article a little while back, his recent submission to dzone gave new exposure to a whole new crowd of developers. On his blog, it now shows 31 comments and a total of 2326 views.

Be sure and watch the new ColdFusion tagged links at dzone.com. If you like what you see, give it a vote. It is really easy and only takes a second.

How I created a back-end XML service from BlogCFC

Bruce Phillips asked me about the code I used to generate the XML that feeds Surfing Stats. I wanted to look it over before I released it, thinking I would clean it up some. Plus, there was an annoying order bug I wanted to fix. I've fixed it now and am ready for others to use the code as they see fit.

How It Works

When a request comes in, statsexport.cfm looks for a value in the url scope called dataset which then is evaluated inside a large switch statement. If the passed value matches a case, then one or more queries are run. If not, the default case runs and an empty query is generated. The Blog Totals dataset actually runs a number of queries and uses the fancy Query functions in ColdFusion (QueryNew, QuerySetCell etc) to create and populate a query. (I used the queries that were in the stats.cfm page so there should be no difference between the table structure of your blog and mine.)

At the very bottom of the page we:

  1. reset the content (XML hates stray whitespace)
  2. convert the query to XML using queryToXML by Nathan Dintenfass
  3. set the content type to text/xml
  4. return the response to the client
  5. <cfcontent reset="true" type="text/xml"><cfoutput>#queryToXML(theQuery)#</cfoutput>

    You can download the file using the download link at the end of this post. I've also included it in the latest SurfingStats zip file located at the download link at the bottom of the Intro to Surfing Stats post. If you make something interesting with this file, let me know.

How to grow the ColdFusion community. What YOU can do to help.

Every day, a whole lot of useful information about ColdFusion is created and delivered over the airwaves. ColdFusion developers are passionate about their platform of choice. We know better applications are built quicker using the only commercially supported platform offering Image manipulation (by the people who make Photoshop, nonetheless), RIA, Server-side printing/PDF forms, Charting, Integration, Reporting and other libraries/frameworks. So why the occasional bad press?

After looking at the issue for some time, I've had some relevations. The majority of the developer promotion and information about ColdFusion is spread inside the ColdFusion community. Yes, friends and neighbors, we preach to the choir a bit more than we should.

Where do you get ColdFusion news from? I'd bet you answer either MXNA, Feed-Squirrel, FullAsAGoog.com or ColdFusionBloggers.org. Am I right? Those are great community resouces. I use them myself. As a matter of fact, most ColdFusion developers worth their salt use those aggregators for news. The problem is, Java developers, Perl developers, .Net developers and Ruby developers do not use those sources for their news. Thus, a tree falls in the forest, but no one is there to hear it.

What the heck is dzone?

Dzone.com consists of a variety of internet properties all focused on meeting the needs of developers. As of late, dzone.com added a ColdFusion tag to their dzone.com link sharing website. The fine folks at dzone.com also added a special zone for ColdFusion. You can see this zone at the aptly named coldfusion.dzone.com. These two websites are for you, the passionate ColdFusion developer, to get the message out. ColdFusion is the best tool on the market for quickly building feature rich web based applications.

How Dzone.com Works

At dzone.com, you can submit links of interesting posts into a pool where developers from all sorts of backgrounds can find them. Backgrounds like Java (Natural ColdFusion Converts), Perl, PHP, Python and .Net, anything really. If you come across a helpful or interesting article somewhere in your Internet travels and the link will benefit your fellow developers, add the link into the system. When others read the article you have submitted via link, they may vote it up, or down. Links with a high number of positive votes will be shown more often. This concept is sort of similar to digg. As a matter of fact, if you took out all the whining close-minded users and focused the content on only developer-centric topics, you would have a pretty good idea of what dzone.com is.

How ColdFusion.dzone.com Works

ColdFusion.dzone.com is a targeted portal for ColdFusion information. It is managed and organized by members of the community. Content on this site will remain an open community resource. From time to time, there will be interviews, special articles, announcements and other items of interest. I expect this resource to evolve as time passes.

ColdFusion.dzone.com has a few Zone Leaders. Rey Bango is one. I am another. There will be one or two more additions in the upcoming future. The responsibility of the Zone Leaders is to moderate discussions, be a point of contact for ColdFusion related matters and to review articles submitted by community members.

My Vision

It is my vision that coldFusion.dzone.com will be a resource for the ColdFusion community by providing a place to share information. We encourage quality submissions by members of the community. While not every article can be posted, we encourage those of you who want to share your experiences and lessons with the rest of the community. This is a great way to help others, get more traffic for your blog and increase your community visibility.

It is my vision that ColdFusion.dzone.com will be a resource for other communities. ColdFusion is a great language and a great platform. Not enough people know that. By having a zone full of good ColdFusion content as well as by submitting good content from the zone and from community blogs, we can help bring the reality of ColdFusion to the masses.

How You Can Participate

http://coldfusion.dzone.com/ is yours. Bookmark it now. Come here often and read the information and post content you want to share with the developer community at large. As always, feel free to add a link back to your own blog. You deserve the recognition and the traffic.

The queue of ColdFusion related content on dzone.com is something you should check often (Don't worry, there is an RSS feed). As I said before, submitted articles get votes and rise to the front page where tens of thousands of developers from all backgrounds can see, read and learn. When you see a good article in the queue, give it a vote.

The most popular ColdFusion content on dzone.com is another page to watch (RSS Feed Too). Articles that have made it to this page have proven popular and have garnered visibility for the ColdFusion community in general and the author in specific. You might want to read these articles because your peers have already voted them worthy. If you agree, give it a vote.

By sharing our love and passion for ColdFusion among other communities, we will grow the ecosystem at large. Please consider these resources as your personal way to engage the developers of the world.

ColdFusion Exam Preparation

Before the end of 2007, I wanted to move closer towards my goal of being an Adobe Certified Expert and Adobe Community Expert, so I took the ColdFusion 7 Developer Exam. The exam tests expertise and competency of a ColdFusion Developer. Question topics range from Web Development to ColdFusion Product specific knowledge. The exam is 66 questions in multiple choice format.

Examinees who pass are awarded one of two titles dependent on score:

[More]

Are you using ColdFusion with Java? I'd like to interview you.

There exists untold billions of lines of Server Side Java code running in production environments today. Java is a fine language, widely adopted and used by companies both large and small. One of the drawbacks in Java development is that Java is not a rapid development environment. Adding functionality, screens and new applications on top of an existing Java based SOA requires manpower and time.

ColdFusion is built on J2EE underpinnings. The deep Java heritage offers tremendous power and functionality. ColdFusion objects are Java objects. A ColdFusion Array is actually an instance of java.util.Vector thus you can run Vector methods directly on a ColdFusion array. It is just that simple. ColdFusion can easily create or consume SOAP webservices. ColdFusion can knit together disparate subsystems to make a unified SOA. All without fundamentally changing platforms or languages.

[More]

Find/Submit interesting articles on ColdFusion at dzone.com

The fine folks at dzone.com have added a ColdFusion tag. Now you can add your coldfusion content to dzone.com and reach millions of developers from around the world.

See ColdFusion on dzone.com

Thanks to dzone.com for adding the tag.

dzone.com

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.001. Contact Blog Owner