Rob Gonda's Blog

75 of the Fortune 100 companies use ColdFusion

In use at 75 of the Fortune 100 companies and at more than 10,000 other companies worldwide, ColdFusion MX is one of the most widely adopted web technologies in the industry.

Check out Adobe for a list of customers and case studies.

ColdFusion Rocks!

ColdFusion MX 7.0.2 Cumulative Hot Fix 1 Released

ColdFusion MX 7.0.2 Cumulative Hot Fix 1 has been released, containing 14 fixes, none of which really affects my projects. It is recommended you apply this patch -- which only takes a few seconds -- if you are experiencing any of the problems described by Adobe.

ColdSpring at techrepublic

Quick note to check out this ColdSpring Article by Brian Kotec. It covers in a very basic level most aspect of ColdSpring, including the Dependency Injection, Simple/Complex Factories capability, and AOP. ColdSpring is trully amazing, so you ought to check this one out.

Frameworks Conference is on!

The ColdFusion Frameworks conference is here. It combines beginner to advanced, the Frameworks Conference has it all. It's the best place to learn about Object Oriented Programming principles, Model-Glue, MachII, Reactor, Transfer, ColdSpring, everything you need to know. Imagine a smaller conference with a selection of only the best topics of CFUnited ...

Check out the topics and tell me it doesn't look attractive! I'll be covering Intro to Object Factories (beginner) and Model-Glue Actionpacks (Advanced). Hope to see you all there.

Transfer ORM Presentation

Mark Mandel presented his Transfer ORM today over breeze -- see the online recording here. For those of you new to ORM, it stands for Object-Relational Mapping, and it is a programming technique that links databases to object-oriented language concepts. Relational databases use a series of tables representing simple data, while in OOP, programming objects represent real-world objects.

Transfer is based on the Data Access Object (DAO) design pattern to separate low-level data access logic from high-level business logic, but automating classes that provide CRUD (create, read, update, delete) operations for each data source.

A typical DAO implementation has the following components:

  • A DAO factory class
  • A DAO interface
  • A concrete class that implements the DAO interface
  • Data transfer objects (sometimes called value objects)

The concrete DAO class contains logic for accessing data from a specific data source. In the sections that follow you'll learn techniques for designing and implementing data access objects.

Transfer automatically generates all the access objects to the database, allow you to concentrate in the service layer (and perhaps any gateways you may need).

The beauty is that by using an ORM, you don't need to write any CRUD SQL statements, data access objects, beans, or value objects. Transfer works with MsSQL, MySQL, PostgreSQL, and Oracle.

ajaxCFC 1.01: ColdFusion frameworks update

Dan Wilson pointed out today that the Model-Glue and Mach-II branches of ajaxCFC were not updated for v1.0, so I just updated them to the lasted Ajax engine, added logging, and matched all the featured of the stand-alone release. RIAForge's SVN has been updated as well as the main ajaxCFC download distro.

By the way, I updated the live examples as well to include and enable logging. You can get the list of examples in the main project page.

The code is back-compatible. The only updates where engine.js, ajax.js, log4javascript.js, and log4javascriptSetup.js. In order to enable logging simple add 'debug':true to the Ajax config section, which in the examples is located inside the JavaScript.cfm, in the views folder.

ajaxCFC reaches 1.0

I'm happy to announce that ajaxCFC has reached 1.0; but wait, there is more! ajaxCFC has a new home: it is now hosted at RIAForge where you can discuss issues in the forums, file bugs, and browse the source code with SVN.

As part of this new build I included the log4javascript integration: an unobtrusive html pop-up that logs your every Ajax request, showing requested methods, arguments, responses, and trapped server-side errors.

I must confess, I have my own subversion server, thus you won't be seeing much activity in the RIAForge's public one, nevertheless, you will get updates before I upload new builds.

I will also re-open a Wiki for ajaxCFC, but this time I will make is private. Last time I tried this it kept getting sabotaged, so if you want access just ping me.

p.s. I almost forgot, I updated the documentation.

How do I return a query from an Excel file?

There are two three ways of doing this. The first one is using dynamic datasources, where you can define a dsn in the ColdFusion Administration, and then override the location of the file in runtime. This works for Access and Excel, and it's well explained in the Adobe site.

The second option JDBC drivers directly, and this is a good time to remind everyone about the ColdFusion Cookbook, which is yet another project that Ray's leading. It's explained here.

JIC you want to know what it looks like, here's a UDF.

<cffunction name="getExcelSheet" access="public" output="false" returntype="query">
      <cfargument name="filename" required="true" type="string" />
      <cfargument name="sheetName" required="true" type="string" />
      <cfscript>
         var c = "";
         var stmnt = "";
         var rs = "";
         var sql = "Select * from [#sheetName#$]";
         var myQuery = "";
         arguments.filename = expandPath(arguments.filename);
        
         if(len(trim(arguments.filename)) and fileExists(arguments.filename)){
            try{
               CreateObject("java","java.lang.Class").forName("sun.jdbc.odbc.JdbcOdbcDriver");  
               c = CreateObject("java","java.sql.DriverManager").getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=" & arguments.filename );
               stmnt = c.createStatement();
               rs = stmnt.executeQuery(sql);
               myQuery = CreateObject('java','coldfusion.sql.QueryTable').init(rs);
            }catch(any e){
               // error-handling code             }
         }
         return myQuery;
      </cfscript>
   </cffunction>

The third option is to use Sean Corfield's Java CFX tags, part of the OpenXCF project. I couldn't find extensive documentation, but it looks pretty straight forward:

<cfx_ExcelQuery action="read" file="#xlsfile#" variable="myQuery" />
<cfx_ExcelQuery action="write" file="#xlsfile#" query="myQuery" />

Reminder: South Flordia CFUG tomorrow

Drew Nathanson will be speaking tomorrow at the South Florida CFUG and database design. For those of you who didn't make it to Max -- most of us --, I'm sure this would be a great topic, so I hope to see you there.

As a side note, I would probably brief you on some info Adobe is releasing at Max, such as info on Scorpio and Apollo.

Server Mechanic Flash Game

Server MechanicIf you're a sysadmin or have every been one, you've got to play this game! Server Mechanic is a flash game about a man and a stubborn server that just won't start. You can play a 1-Player version against time and competing to win free hosting packages, x-box 360's, and a 42' plasma TV, or a 2-Player version to compete in real time against other visitors.

Behind the scenes, the server mechanic is using a ColdFusion MX7 Server and Flash Communication Server 1.5 for the 2-Player game.

More Entries

This blog is running version 5.9.003. Contact Blog Owner