Agent in Training

Welcome to Free Agent!

The goal of the Free Agent project is to create a highly cohesive, loosely coupled collection of CFCs that will allow us to move from creating applications for a specific ColdFusion MVC framework, such as Mach-II or Model-Glue, to creating applications that will run within *ANY* of these frameworks. To be successful, it must be either no more difficult or not much more difficult to use Free Agent than it is to write an application for an individual framework. Although this is an ambitious goal, I believe it is possible. And even if we fall short of our goals, I believe the end result will enrich the ColdFusion community.

Join our discussion group to become a part of our project.

I've just uploaded the first batch of code to the SVN trunk for this project. Nothing is tested. And although yes, some of the IoC integration code has come from the onTap framework, this is *NOT* an "onTap plugin" or an "onTap thing". This is a project for the entire community, in much the same spirit as CacheBox. :) I also expect to bring in some great integration ideas from other projects, such as the delegated authentication concept from Laura Arguello's Mango Blog.

Other planned feature additions include a link-building abstraction (URLs are often different for each framework) and a redirect utility that includes preservation of variables across the redirect (a feature that's been added to a couple of MVC frameworks lately).

I hope to hear from many of you with ideas, bug reports, and particularly usability complaints. If there's something in Free Agent that's challenging to use, make sure you let us know!

Looking forward to you guys showing me how to build a great new tool! :)

Comments
John Farrar's Gravatar Yes and no about the controllers being the only issue. These same arguments were given about music components about 20 years ago. It was the right argument at that time but today MP3 players have changed the game again. My iPod Touch has a computer, wifi, video player, music player, speaker built in with optional audio out. One size fits all is like trying to please all the people all the time. Rather than a closed minded argument that just sparks arguments about exceptions and distracts people from hearing what you offer it might be better stated that you provide the ability to shift from controller application platform to another platform.

With that said, there is more to an application than a controller applicatino platform. There is also two big components of presentation and security/authentication. If I write an application and Jane Doe writes an application and Mary Lou gets our applications and deploys them together will they look the same in personality? Will they share authentication without having to rewrite them? You may have solved these issues... but the next question would be what type of solutions do you have so someone who is a fusebox programmer will know how to instruct a Machii developer to deploy his application. Documentation and "implementation" challenges should be interesting.
# Posted By John Farrar | 11/17/09 8:22 AM
ike's Gravatar Hey John, thanks for the comments, I really appreciate it. You brought up some good points and addressed what seems to be a bit of muddle in my initial presentation of the idea. :) Although I haven't solved all the security and view issues yet, they are in my list of things to address. I guess I omitted them in the forum post here. Maybe I should go back and update the post.

What I'm envisioning in my mind right now is a "securityfacade" container that houses a simplified API for interacting with the most common security tasks such as "get the current user info" and "check if user x has y permission". Having it as a facade in the Free Agent tools would allow various Free Agent applications to hook into a security layer, without knowing what that security layer is or without knowing anything about its internals. At that point there might be a couple of different public implementations of the security layer or you might roll your own, and one or more of the public implementations could be used interchangeably as a default security layer for Free Agent apps when installed in a "stand alone" mode.

We may end up with something similar for certain kinds of assets, for example, I'm imagining a jQuery loader as a Free Agent container that might be a requirement for some other Free Agent applications, or that some folks may choose to publish a container of just CSS sheets that could be used by various different Free Agent apps.

All told tho, I'm sure you're right, the challenges of documentation and implementation will be ... well, challenging. ;)
# Posted By ike | 11/17/09 1:05 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.5.006. | Protected by Akismet | Blog with WordPress