cf.Objective() Day Two: May 5, 2007

 
May 09, 2007

by Brian Rinaldi

Day two at cf.Objective() was all about sessions, since the second keynote was scheduled for Sunday, May 6, with Ben Forta. Nonetheless, the sessions and the quality speakers were the two most prominent strengths of this conference (well, besides the food ;) ). Here are some of the session summaries from day two:

Large Scale Application Architecture

Hal Helms covered a comprehensive list of the common risks you encounter when developing large applications and the various strategies he recommends for mitigating these issues. For instance, he identified the biggest risk as being the software not working the way the client wants it to. This brought up a common theme within Hal's mitigation strategies, which was to create a user interface (UI) prototype first.

Each of the risks he identified would sound familiar to anyone who has been in this industry for some time, and there were a lot of nodding heads across the room. For instance, to avoid the "never-ending project," Hal suggests having an agreement with the client whereby the project is considered finished when the prototype has been fully implemented and making a formal acceptance test of the prototype part of your project plan.

Scorpio Diagnostic Server Monitoring and Real-time Performance Alerts

One of the most impressive looking features of Scorpio is the brand new, Flex-based server monitor, which was presented in detail by Adam Lehman. Adam showed the many ways this offers you deep insight into the inner workings of both your ColdFusion server and your applications. Personally, I am very excited about this feature and see it as an invaluable tool for both making my applications run more efficiently and ensuring the server is "healthy."

In one of Adam's examples, we could see a list of queries running on the server and identify particularly long ones. The monitor will allow you to drill down into the actual SQL passed to the database server as well as the template and line number this was executed on. This led to an important related announcement, which is that Scorpio allows you to cache queries that use CFQUERYPARAM. The lack of this feature has long been the major impediment towards using query caching effectively. The monitor also gives you insight into the different scopes on your server, such as the application and session scopes, allowing you to drill down into these to see specific memory usage.

Other interesting announcements included the possibility that the multi-server panel, which allows you to see this detail on any server in your cluster or on an external host from a single location, could become an Apollo application. Lastly, all of the detailed information contained within the monitor is also available from the ADMIN API.

Building Sustainable Software with Frameworks

Matt Woodward's presentation touched on many of the same issues that Hal's did from a day earlier but from a slightly different perspective, yielding different insights. Much of the presentation was about creating the right working environment so that everyone on your team can succeed. Matt highlighted his idea that software development is not necessarily architecture or engineering, but rather an ecosystem, because it needs to be able to evolve and react to change while avoiding stasis. Applications tend to be unsustainable when the work environment is reactive rather than proactive.

Matt noted a few ways in which a framework can help the software developer achieve these goals. Frameworks can help create consistent application development practices, and they allow for low impact maintenance. For example. the XML configuration files offer developers a roadmap to the application within only a few files, and are "sustainable by design" (built with sustainability in mind). Finally, Matt showed us a real-world example of the benefits discussed with a Mach-II authentication application.

FarCry 4.0: The Application Framework

Jeff Coughlin showed off the latest version of Farcry, version 4.0, which he announced is publicly available. This includes a number of new features and important changes which looked impressive in his examples. These include:

  • A new installer to simplify what had been a notoriously complex install process;
  • A cleaner directory structure that improves the overall code organization (one note on this topic, and this may not be new, but FourQ is no longer available as a separate project. For an explanation of what FourQ was, see http://blog.daemon.com.au/archives/000087.html);
  • New caching features such as a new object broker, webskin caching and URL pagination caching;
  • New Content Object API (COAPI) features such as scaffolding and a flex-based COAPI management tool;
  • Image manipulation enhancements;
  • FarCry will now support BlueDragon 7.

Jeff then went on to give an impressive demonstration of the new scaffolding and management features, called FormTools, which allow you to build instant forms and wizards within the administration. He also let out a secret that the FarCry team is working on a community-based site that will allow people to submit and share plug-ins. Finally, he announced that new tutorial-based documentation is available covering FarCry 4, and more documentation is in development, addressing a frequent complaint of the FarCry user base.

Head First Mach-II and Mach-II 1.5

The first presentation by Peter Farrell, Head First Mach-II, was an introduction to both using an MVC framework and then specifically configuring Mach II. Speaking generally about frameworks, Peter covered a consistent theme in many of the day's sessions, which are the concepts of high cohesion and loose coupling that a framework like Mach-II can help enforce within your application development. The presentation and examples showed how to implement Mach-II's event-driven, implicit invocation architecture, in which events are announced and listeners respond.

During his introductory presentation, Peter hinted at some of the new features included in the current release of Mach-II and some that are in the bleeding edge 1.5 release. These include SES URL support, and include and module support within the configuration file and sub applications. The list of new features was actually quite lengthy, with the most useful and impressive, in my opinion, being the module and subroutine support.

Modules are child applications, or sub-applications, that inherit from your main application. They will allow you to break up both your configuration file and your code organization to make Mach-II applications even more maintainable. They are also intended to ease the integration of third party Mach-II applications by allowing you to simply include them as a module and even override some of their behaviors without ever modifying the module's configuration file.

Subroutines are a simple, reusable set of commands within your configuration that Mach-II can be told to execute at any time. For instance, if a set of commands fetched the data to populate a search box across a large subsection of your site, you could turn these commands into a single module rather than having to copy and paste the commands into each event handler.

Conclusion

After a long but rewarding day of sessions, it was time to hit the town, which is also a benefit of attending conferences. A group of attendees and I first went to the Mall of America and rode one of the indoor roller coasters. Later we hit downtown Minneapolis for some excellent Thai food, ending the evening late, as usual, with another round of drinks among friends and colleagues.


Brian Rinaldi is a web developer at Sun Life Financial, Inc. He is the manager of the Boston ColdFusion User Group and an Advanced Certified ColdFusion MX Developer, as well as a Microsoft Certified Professional. Brian also serves on the editorial advisory board for the ColdFusion Developer's Journal. Brian is most well known for his efforts promoting open-source projects in ColdFusion, especially for maintaining the ColdFusion open-source list as well as the weekly updates, both of which you can find via his web site at http://www.remotesynthesis.com.

Privacy | FAQ | Site Map | About | Guidelines | Contact | Advertising | What is ColdFusion?
House of Fusion | ColdFusion Jobs | Blog of Fusion | AHP Hosting