Welcome!

You will be redirected in 30 seconds or close now.

ColdFusion Authors: Yakov Fain, Jeremy Geelan, Maureen O'Gara, Nancy Y. Nee, Tad Anderson

Related Topics: ColdFusion

ColdFusion: Article

Propel Your ColdFusion Projects with Application Frameworks

Propel Your ColdFusion Projects with Application Frameworks

What is an application framework? This article defines the term and compares three current application frameworks or methodologies. I'll also explain how they're used to implement "foundational" functionality, which can be reused in other applications with little or no programmer involvement.

What Is an Application Framework?
I've often used the metaphor of building a house when discussing the Web application development process with my clients. When building a house, different subcontractors come in to complete separate but equally important building tasks. An application framework is like having the lot cleared, the slab poured, and the frame raised. I call this part the foundation. The soundness of the foundation is critical. If it's not well constructed, you might be better off tearing down the house and starting from scratch rather than adding that second story. We all know it would have cost less in the long run if the foundation were strong enough to handle your additional growth needs.

Once the foundation of the house is complete, the interior walls go up, the painters paint, the carpet's laid, and so forth. The painter doesn't have to know how the slab was poured or how the frame was put together. The painter needs to know only that the kitchen should be painted peach and the dining room green.

When building a Web-based application with an application framework in place, you want this framework to handle as much of the foundational functionality as possible. Then, rather than reinventing the proverbial wheel, you can focus on customizing the functionality of the Web site. The foundational functionality may differ slightly depending on the application you're building, but in general the areas shown in Table 1 should be considered foundational functionality for any Web-based application.

What Should an Application Framework for Web-Based Applications Accomplish?
In an ideal world an application framework would have all the features mentioned in Table 1 and the developer wouldn't be required to learn how they're implemented. Requiring an application framework to live up to the promise of better developer productivity and robust, secure applications with a rapid application development time without a tremendous learning curve is a lot to ask.

Let's examine three separate technologies and see how they compare.

Fusebox - Framework or Methodology?
What is Fusebox? Many developers have heard about Fusebox but haven't had an opportunity to use it and see what it accomplishes. The idea behind Fusebox architecture is, as stated in the Fusebox Web site (www.fusebox.org), "to increase teamwork efficiency, productivity, and reduce the time it takes to build a Web application."

I've seen several presentations and implementations of the Fusebox architecture, and have read through the Fusebox Web site. My determination is that Fusebox is a developer's application methodology. It's a set of agreed-to standards on how a Web application should be written. By following the Fusebox standards, a project that's utilizing multiple developers would be more productive because it addresses issues such as file-naming conventions. What Fusebox doesn't address are standards for encapsulating commonly used functionality.

Fusebox addresses some fundamental standards that, until recently, hadn't been addressed in ColdFusion application development. For this reason I think that Fusebox has a place in the developer's world as a methodology. To be fair, Fusebox doesn't claim to be an application framework. I'm discussing this technology to emphasize and contrast an application framework versus an application methodology.

When to Use Fusebox
If your development group doesn't have any standards in place for building applications, Fusebox can help, although I have some concerns with the Fusebox methodology. It's a programming methodology that can help enhance your team development.

When Not to Use Fusebox
If you're creating a public "Internet" site, Fusebox is not ideal because, among other issues, it lacks support for search engines. Fusebox application pages can't be dynamically indexed, which is important to the search engines. The reason for this is, there's only one root-level file for the entire application - the index.cfm. To provide custom functionality, a fuseaction URL variable must be passed. Passing parameters in the URL will prevent many search engines from "spidering" the pages within the site.

Table 2 provides a comparison of the Fusebox methodology with the application framework requirements.

Spectra - What Is It?
Spectra is the latest ColdFusion-based product offering from Allaire. Allaire calls it "the first packaged system to address the three critical areas of every successful online business - content management, e-commerce, and personalization." I'm not sure what a "packaged system" means, but if you look deep enough, you'll see that Spectra is indeed both a programming methodology and an application framework.

Spectra frees the programmer from the responsibility of role-based security and authentication by allowing nontechnical people to administer security and authentication. It handles content management, and its workflow capabilities appear to be quite robust. You also get personalization capabilities, if you need them. Spectra includes a site design tool as well.

The Spectra application framework requires you to adopt its ColdFusion programming methodology. This methodology is an object-based paradigm requiring you to plan and design your objects, methods, and properties carefully. This is not unusual and is the case for any object-oriented system or any application development methodology. Each "object" in the system then has common services that can be used for functionality, such as logging, granting permissions, and supporting metadata. Inheritance is not supported. Figure 1 shows a content management screen in Spectra v1.0.1.

A thorough overview article of Allaire Spectra appeared in the October 1999 issue of ColdFusion Developer's Journal (Vol. 1, issue 5) located online at http://www.sys-con.com/coldfusion/article.cfm?id=48. This article makes some very good observations regarding the advantages of Spectra, but also addresses some of the shortcomings of version 1.0.

To use Spectra for development, the programmer is required to adopt the OO methodology, and my experience and investigation show there's a big learning curve.

When to Use Spectra
Spectra is well suited for very complex enterprise-level applications in which you may have many, many different types of users, each with very complex access or authority rules.

When Not to Use Spectra
Due to its high price tag and the time investment necessary to learn how to adopt the Spectra programming methodology and API, Spectra rather negates the whole rapid application development mantra that has made ColdFusion so popular in the first place. I don't see smaller departments and companies, or the "let's get this application up and running by this Friday" type dot-com businesses, widely using Spectra. Table 3 provides a comparison of Spectra with application framework functionality. Table 4, which originally appeared in the October 1999 issue of CFDJ (Vol. 1, issue 5), provides an overview of Spectra.

iiFramework - What Is It?
iiFramework from Infrastructure Inc. is a ColdFusion add-on product for Web application developers. It's a true application framework that implements most of the features we're discussing in this article (see Table 5).

iiFramework was developed through an iterative process of providing common functionality over and over again in real-world Web-based applications. Most of the code that makes up the iiFramework is actually two to four years old. Infrastructure took all the components of the iiFramework and rolled them into a product that allows an application to be built at a rapid rate. With iiFramework the application developer doesn't have to be aware of or need to know how to design and program foundational functionality. It requires very few changes to your programmer's current coding practices.

iiFramework uses the Site Manager Module to create a new site. This site can be based on any other site you may have previously created in the iiFramework. This allows reuse of an entire application with full customization capability. You can code the business logic into one site, then easily replicate that logic to any other site. The new sites will automatically inherit the look and feel of the base site. iiFramework separates business logic from presentation. To take full advantage of these features, Infrastructure provides 15 to 20 custom tags that you should become familiar with but are not required to use.

Where Spectra is object-centric, iiFramework is page-centric. Everything revolves around the model of the "page" or "template." Every page in the site must be registered with the iiFramework system (see Figure 2). If a page isn't registered, the iiFramework won't allow it to be displayed. If it is registered, the iiFramework will ensure that the current user has access to this page and that it's active before displaying it. Any page can be cloned and customized.

The iiFramework manages everything about this page including the static content, the ColdFusion code, the help content, and even the WML content. Yes, iiFramework supports WAP devices, even if you don't provide specific WML content. iiFramework manages permissions to the page by allowing you to specify which groups have access to it. With iiFramework, content management is supported by an integrated WYSIWYG editor.

Graphics layout of the site is handled via sitewide variables. Navigational control is handled by the iiFramework so the programmer doesn't have to code a menu of links. The system automatically reformats your navigational links, based on your current login and the pages your group has authority to access. If a user doesn't have access to a page, its links aren't shown. If the user knows the URL for the page, the system will still verify access authority and keep that user out.

All exceptions are automatically handled by the system and formatted within the same sitewide graphics layout as the rest of the site. The errors can be automatically e-mailed to a programmer for attention.

When to Use iiFramework
iiFramework works well with your typical ColdFusion Internet, intranet, and extranet applications that need to be developed rapidly. Any project requiring development time of one to 16 weeks will fit well into the iiFramework system. It's been used for 25,000-part catalog stores and program management systems, and Infrastructure uses it for all its company Web sites.

If you plan to build a CF application, iiFramework will help you build it better and make it more secure, supportable, and scalable.

When Not to Use iiFramework
If you're looking to build a complete reusable class library for an enterprise-wide development strategy, iiFramework may not be the best tool because it doesn't force an object-oriented methodology. While you can still reuse code through standard ColdFusion custom tags, by default you can't use inheritance and other OO properties that can be very powerful.

Other Programming Methodologies
As I mentioned, Fusebox was chosen for this article as an example of a methodology versus an application framework. I also chose Fusebox because it's been around the longest and gets more press to date than any other such methodology. Two other ColdFusion application development methodologies are worth checking out (see www.smart-objects.com and www.cfobjects.com). These are two object-oriented methodologies that may complement your coding practices. They certainly can be used in conjunction with the iiFramework.

Resources

  1. Fusebox: www.fusebox.org
  2. Spectra: www.allaire.com/products/spectra
  3. iiFramework: www.iiframework.com.

More Stories By Patrick Steil

Patrick Steil is president and chief technology officer of Infrastructure Inc., a Texas-based software development company. As cochairman of the DFW ColdFusion User Group, he's very involved with the ColdFusion development community.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
SYS-CON Events announced today that Keisoku Research Consultant Co. will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Keisoku Research Consultant, Co. offers research and consulting in a wide range of civil engineering-related fields from information construction to preservation of cultural properties. For more information, vi...
SYS-CON Events announced today that SIGMA Corporation will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. uLaser flow inspection device from the Japanese top share to Global Standard! Then, make the best use of data to flip to next page. For more information, visit http://www.sigma-k.co.jp/en/.
SYS-CON Events announced today that NetApp has been named “Bronze Sponsor” of SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. NetApp is the data authority for hybrid cloud. NetApp provides a full range of hybrid cloud data services that simplify management of applications and data across cloud and on-premises environments to accelerate digital transformation. Together with their partners, NetApp em...
SYS-CON Events announced today that N3N will exhibit at SYS-CON's @ThingsExpo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. N3N’s solutions increase the effectiveness of operations and control centers, increase the value of IoT investments, and facilitate real-time operational decision making. N3N enables operations teams with a four dimensional digital “big board” that consolidates real-time live video feeds alongside IoT sensor data a...
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, will introduce two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a mu...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
Mobile device usage has increased exponentially during the past several years, as consumers rely on handhelds for everything from news and weather to banking and purchases. What can we expect in the next few years? The way in which we interact with our devices will fundamentally change, as businesses leverage Artificial Intelligence. We already see this taking shape as businesses leverage AI for cost savings and customer responsiveness. This trend will continue, as AI is used for more sophistica...
SYS-CON Events announced today that SourceForge has been named “Media Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. SourceForge is the largest, most trusted destination for Open Source Software development, collaboration, discovery and download on the web serving over 32 million viewers, 150 million downloads and over 460,000 active development projects each and every month.
SYS-CON Events announced today that DXWorldExpo has been named “Global Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Digital Transformation is the key issue driving the global enterprise IT business. Digital Transformation is most prominent among Global 2000 enterprises and government institutions.
Real IoT production deployments running at scale are collecting sensor data from hundreds / thousands / millions of devices. The goal is to take business-critical actions on the real-time data and find insights from stored datasets. In his session at @ThingsExpo, John Walicki, Watson IoT Developer Advocate at IBM Cloud, will provide a fast-paced developer journey that follows the IoT sensor data from generation, to edge gateway, to edge analytics, to encryption, to the IBM Bluemix cloud, to Wa...
There is huge complexity in implementing a successful digital business that requires efficient on-premise and cloud back-end infrastructure, IT and Internet of Things (IoT) data, analytics, Machine Learning, Artificial Intelligence (AI) and Digital Applications. In the data center alone, there are physical and virtual infrastructures, multiple operating systems, multiple applications and new and emerging business and technological paradigms such as cloud computing and XaaS. And then there are pe...
SYS-CON Events announced today that B2Cloud will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. B2Cloud specializes in IoT devices for preventive and predictive maintenance in any kind of equipment retrieving data like Energy consumption, working time, temperature, humidity, pressure, etc.
DevOps at Cloud Expo – being held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real r...
SYS-CON Events announced today that Suzuki Inc. will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Suzuki Inc. is a semiconductor-related business, including sales of consuming parts, parts repair, and maintenance for semiconductor manufacturing machines, etc. It is also a health care business providing experimental research for...
SYS-CON Events announced today that Massive Networks, that helps your business operate seamlessly with fast, reliable, and secure internet and network solutions, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. As a premier telecommunications provider, Massive Networks is headquartered out of Louisville, Colorado. With years of experience under their belt, their team of...
SYS-CON Events announced today that Fusic will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Fusic Co. provides mocks as virtual IoT devices. You can customize mocks, and get any amount of data at any time in your test. For more information, visit https://fusic.co.jp/english/.
SYS-CON Events announced today that Ryobi Systems will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Ryobi Systems Co., Ltd., as an information service company, specialized in business support for local governments and medical industry. We are challenging to achive the precision farming with AI. For more information, visit http:...
SYS-CON Events announced today that Daiya Industry will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Daiya Industry specializes in orthotic support systems and assistive devices with pneumatic artificial muscles in order to contribute to an extended healthy life expectancy. For more information, please visit https://www.daiyak...
SYS-CON Events announced today that Interface Corporation will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Interface Corporation is a company developing, manufacturing and marketing high quality and wide variety of industrial computers and interface modules such as PCIs and PCI express. For more information, visit http://www.i...
SYS-CON Events announced today that Mobile Create USA will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Mobile Create USA Inc. is an MVNO-based business model that uses portable communication devices and cellular-based infrastructure in the development, sales, operation and mobile communications systems incorporating GPS capabi...