MAX 2005 Day 3
My last day of MAX started out with a hands-on session covering the ColdFusion Application Framework, which is basically just the techniques you need to use when using the Application.cfc in place of the Application.cfm file. There is definitely some power in using Application.cfc, but it appears you really have to plan your app in advanced to use it, not something you can just upgrade your existing apps to. I definitely need to experiment with this some more to get a handle on it.
My next session on Integrating ColdFusion with Flex. ColdFusion and Flex appears to be in a gray area right now, as when Flex 2.0 comes out next year there will be many improvements. That being said, the session covered current generation techniques. Flex data calls are asynchronous, meaning that Flex will make a call for data, but not wait for it to return before continuing. So you will need to write a routine that will be aware of when data is returned to run any events dependent on the incoming data. Using the RemoteObject tag you can reference a CFC, and then call the functions in that CFC directly. Query objects are returned to Flex as result._items. You need to use bracket notation (
cfset mystruct["foo"] = var) to preserve the case of your Structures keys when brought into Flex.
If you are going to be creating Flex applications you need to study and learn about Flash Player Sandbox Security and read up on the Best Practices. AMF traffic is not secure, everything is sent in plain text and can be "sniffed". Compiled SWFs are not secure and can be de-compiled, so be very aware of what you are storing inside your Flex app. Best practice is to get sensitive info such as passwords at runtime from the server. Look at security white papers.
Next was another hands-on session, this time covering ColdFusion's Printing and Reporting features. On Day 1 I took an advanced session on these features, but it was just a lecture. I was looking forward to getting some hands on experience with the Report Builder. It is really simple and very powerful (hey, just like ColdFusion). You can setup a script to automatically e-mail or FTP out a report. When asked about how to force the browser to ask the user to save a report to their desktop (opposed to loading within the browser), the instructor wasn't sure on how to accomplish this. I suggested that the
CFHEADERtag can accomplish this, and at the end of the class gave out the code to do so to someone who was interested. The generated reports are not perfect, sometimes there are minor differences in the output when switching from PDF format and FlashPaper format.
My next session was a presentation by the Macromedia XD Team on eCommerce best practices in creating a Guided Experience. I actually found this to be one of the most inspiring sessions of the conference. While none of the items may be necessarily ground breaking, it really made me think of my current eCommerce project, and what we are doing wrong. Here are some quick notes: Have better search results. 30% of eCommerce business is abandoned during the checkout process. Consumers need more info and higher resolution photos of products to make the on-line shopping experience compete with the retail experience. If a product is configurable, allow it to be configured in the shopping cart and during the checkout, not just at the point before adding it to your cart. For any device that has data inputs (like a HDTV or a stereo head unit) display an image of the ports so users can see what they are buying (as they would in a store). Mobile devices should compliment and extend the shopping experience, not replace it. Your end goal should be: Create a retail level experience with the convenience of shopping on-line.
And finally, my last session of MAX 2005, was on Next Generation Flex Data Services. This was pretty much the only session I attended that was over my head. And to make it even worse, all that was shown off in this session won't be available until Flex 2.0. These were features not even in the current Alpha version of Flex 2.0 - but should be in the upcoming Beta release.
Basically working with data is going to be like 1000 times easier in Flex 2.0 then in 1.5. Flex Messaging Services can communicate with non-Flash interfaces. He demo'd a Flash chat client talking with a Java client.
A really cool demo displayed was of a fictional banking application. There was a customer and an employee screen, each designed differently, but subscribed to the same data provider. He ran through a scenario where the customer was filling out a form, but was unsure of some account numbers, so he clicked a button to get a live rep. On the employee screen the customer appeared in a queue for needing assistance. When clicked on, all the information entered so far by the customer was displayed on the employee screen. The employee could then use their own tools to pull up the customers account. Then, the employee could fill in the missing data on behalf of the customer on their own screen, and it simultaneously appeared on the customer's screen as well. Pretty slick stuff.
So... wow, another year of MAX has passed. Until next year!