Rob Gonda's Blog

RIA traffic debugging

Quick note on debugging a Rich Internet Application. As you probably know, RIAs usually don't refresh and communicate to the server in the background. You can't easily see the traffic, so I usually recommend using Firebug for Firefox, Live HTTP Headers, Fiddler, and my recommendation, Service Capture.... Well, there's a new kid on the block ... not so new perhaps, but I just finally tried it and I'm loving it. Charles is another http/amf monitoring application with many more capabilities than service capture ... actually, forget about the capabilities, the fact that I can open it with Firefox with no problems should be enough ... but if that's not enough, you can see the traffic is a structured view instead of sequential, which allows you to see the requests by domain, then folder, then file, and it even groups all the flash remoting calls together ... it's a beautiful thing. In addition it does have more capabilities such as seeing cookies, request / response sizes, mirror responses to disk, analyze cache, bandwidth throttle, spoof dns, and port forwarding. I'm very impressed.

ColdFusion 8 Public Beta is Live on Labs

I know it's been in the blogsphere for a few days, but if you missed it, ColdFusion 8 Public Beta is Live on Labs; it will let you develop next-generation Internet experiences faster and more easily than ever before. Here are just a few of the key features that you'll discover in the public beta:

  • Significant performance improvements - up to 5Xfaster than ColdFusion MX7.
  • Server monitoring identifies server bottlenecks, allowing for tuning and improved performance.
  • Code debugging speeds your development with set breakpoints, variables monitoring, and step through ColdFusion code with an Eclipse plug-in debugger.
  • Integration with Adobe Flex(tm) and AJAX features let ColdFusion power personalized, multimedia-rich applications to enhance your users' experiences on the web.
  • High-quality, on-demand presentations can be created dynamically on the server.
  • Applications can interact with PDF documents and forms for a printable, portable way to intelligently capture and share information.
  • Create and manipulate images with more than 50 new CFML tags and functions
  • Native support for .NET objects to easily integrate all of your enterprise data and infrastructure services.
  • Server-side printing

Flex Intensive Course Preview

I'm presenting a really small preview for my Flex Intensive CFUnited pre-conference class tomorrow at the CF Meetup. It will be at 12:30 and you can access here. The presentation will cover basics of Flex, why you would want to learn it, show you the huge amount of topics I will cover, and some Q&A... so it will be 1/2h tops, thus you can easily connect during your lunch time and check if you're interested in attending.

I'll post my slides tomorrow after the presso.

Cheers.

I'm at CFUnited's Homepage

CFUnited posted a small video summary of some of last year's random interviews and I'm featured in the first slot :) ... so check me out at CFUnited and try to make it this year to say hi ... The conference has improved every year and promises to do so this year again.

BTW, if you have any interest in Flex, don't forget my pre-conference 8h intensive Flex class, for all levels.

Cairngorm 101 presentation and files

I presented a session on Cairngorm last week at CF.Objective() and explained all its elements, design patterns, event flow, levels of abstraction, and walked-through steps on a simple example.

You can find my slides and examples -- MVC1.001, 002, and 003 -- and each adds a little more functionality. MVC1.001 just displays a form, 002 adds a click event, fire an event, traps is in the controller, executes a command, updates the model, and 003 also uses a business delegate and a service locator. To run the files simply extract in a folder, open flex builder, import a project, and point to the MVCX folder. I did not include the Cairngorm source files, so depending on your preference, either copy them into your project, or add the SWC to your classpath library. You can download the latest version from labs. Just in case, right click the project, click properties, Flex Build Path, Library Path, click Add SWC, and point to the cairngorm.swv binary that you downloaded from labs.

Here's an overview of the differences in the examples so your can follow along:

MVC1.001
* Cairngorm MVC with views only
* No events, commands, model, VO
* Main file loads service, controller, and viewlet

General flow:
* Main shell loads business, control, and view
* View displays login box


MVC1.002
* MVC1.001 plus
* Cairngorm MVC with model, view, controller
* No business delegate or service locator
* Main file loads service, controller, and layout view
* Added LoginCommand, and LoginEvent
* Control registers event
* Added Login model in model locator
* Model implements state
* View contains view stack binded to state
* Command immediately approves login attempt and update model

General flow:
* Main shell loads business, control, and view
* View displays layout with view stack
* View stack is bound to the model and displays login box by default
* User clicks login button and triggers loginUser()
* Function creates a LoginVO to hold the login data
* Function creates a LoginEvent and passes the LoginVO
* Function dispatches the event
* Controller traps the event and executes the LoginCommand
* Command updates the login model and workflow state in model
* Viewstack is bound to workflow stats and update view


MVC1.003
* MVC1.002 plus
* Cairngorm MVC with model, view, controller, business delegate, and service locator
* Added LoginDelegate
* Services.mxml contains RPC, but it's commented out for demo purposes

General flow:
* Main shell loads business, control, and view
* View displays layout with view stack
* View stack is bound to the model and displays login box by default
* User clicks login button and triggers loginUser()
* Function creates a LoginVO to hold the login data
* Function creates a LoginEvent and passes the LoginVO
* Function dispatches the event
* Controller traps the event and execute the LoginCommand
* Command initializes the LoginDeletate to talk to the server
* LoginDelegate gets the loginService from the service locator (commented for demo purposes)
* LoginCommand invokes thes login function in the LoginDelegate
* LoginDelegate invokes the login function in the loginService (commented for demo purposes)
* LoginDeletate calls the loginResult which randomly logs the user in (only for demo purposes)
* Service call returns and calls the onResult function in the command
* Command updates the login model and workflow state in model
* Viewstack is bound to workflow stats and update view

I'll explain all this and much, much, much more in my 8h Flex Intensive for ColdFusion Developers at CFUnited.

Developer Circuit: specialized jobs

Developer Circuit is growing and looking good. They provide a nice widget, in two different sizes, that are displayed in influential sites, such as top ColdFusion and Flex community blogs. It is currently syndicated by 52 sites and displayed over 8000 times today. The widgets were developed in Flex 2 (check them out in my jobs section). To post a job click here, and to find out more about the widgets, check out their widgets section.

Yahoo Web Messenger Built with Flex 2


Flex is so cool! Check out the full story.

Model-Glue:Flex

After playing/working with Flex and Cairngorm for a few months, Joe Rinehart (author for Model-Glue) chose to write a port for Flex. Cairngorm was built by the Adobe Consulting Group, and applies a number of design patterns and best practices that make it very flexible, scalable, robust, and manageable, however, because of its layers of abstraction it does require some repetitive code to be written. MG:F's goal is to provide a similar level of abstraction, but making the framework automate some of the tedious processes.

I have not looked at the code myself yet --though I expect to do so very soon--, but you can start checking the posts, such as the Service Autoproxies.... stay tuned.

Flex Module to Replace Flash Forms

I am curious why no one has posted any articles on the IIS/Apache Flex Modules... Adobe made available on labs a plugin to compile Flex code server-side, just like Flex 1.5 did... with that said, it's probably simpler to write Flex than Flash Forms, and by far more powerful... so why haven't we seen any ColdFusion / Flex Module examples? Performance? I haven't tried it yet (guilty as charged), but I will put together a few examples to prove my theory... yes, they say it's not for production use, or at least they won't support it .. but if it works w/o a bug performance hit, can you imagine the possibilities? Maybe a cf-wrapper, a custom tag that already includes some of the higher level code allowing you to replace your old-slow-pain-in-you-cheeks flash forms? Who's with me?

Flex Intensive Course

Extra, extra, read all about it! Flex Wizard in a miracle cure! I'll be teaching a full day pre-conference class June the 25th, at the CFUnited Conference. Last year I taught an Ajax Intensive class, which turned out to be very successful... The feedback I received was: more code, more code! so this year, it's mostly hands-on! You'll be coding in no time.

This full day hands-on Flex course that require no previous Flex experience. The class promises to be fun, energetic, and saturated with information, examples, and code. It will focus not only on Flex architecture, but also teach you to organize your ColdFusion code in such fashion that you can reuse your business layer across any front-end, including Html, Ajax, Flash, or Flex.

Agenda:

  • Flex Builder Environment
  • Flex Built-in Components
  • Basics
    • Event System
    • Data binding
  • ActionScript 3.0
  • Remote Calls: HTTP Services, Web Services, AMF3 / Remoting
    • Organizing your ColdFusion Service Layer
    • Flexible Messaging Architecture
    • Error Handling
    • Logging
  • Flex Data Services
  • Cairngorm Microarchitecture
    • Basics / Request Flow
    • Design Patterns
    • Analogy with ColdFusion Frameworks
  • Debugging
    • Within Flex
    • Monitoring HTTP / AMF Traffic
  • Documentation
  • Automated Deployment using ANT

p.s. if you're still wondering about the first line of this post, it's a quote from Tommy, by The Who.

More Entries

This blog is running version 5.9.003. Contact Blog Owner