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
In his Opening Keynote at 21st Cloud Expo, John Considine, General Manager of IBM Cloud Infrastructure, led attendees through the exciting evolution of the cloud. He looked at this major disruption from the perspective of technology, business models, and what this means for enterprises of all sizes. John Considine is General Manager of Cloud Infrastructure Services at IBM. In that role he is responsible for leading IBM’s public cloud infrastructure including strategy, development, and offering m...
With tough new regulations coming to Europe on data privacy in May 2018, Calligo will explain why in reality the effect is global and transforms how you consider critical data. EU GDPR fundamentally rewrites the rules for cloud, Big Data and IoT. In his session at 21st Cloud Expo, Adam Ryan, Vice President and General Manager EMEA at Calligo, examined the regulations and provided insight on how it affects technology, challenges the established rules and will usher in new levels of diligence arou...
The 22nd International Cloud Expo | 1st DXWorld Expo has announced that its Call for Papers is open. Cloud Expo | DXWorld Expo, to be held June 5-7, 2018, at the Javits Center in New York, NY, brings together Cloud Computing, Digital Transformation, Big Data, Internet of Things, DevOps, Machine Learning and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding busin...
Smart cities have the potential to change our lives at so many levels for citizens: less pollution, reduced parking obstacles, better health, education and more energy savings. Real-time data streaming and the Internet of Things (IoT) possess the power to turn this vision into a reality. However, most organizations today are building their data infrastructure to focus solely on addressing immediate business needs vs. a platform capable of quickly adapting emerging technologies to address future ...
No hype cycles or predictions of a gazillion things here. IoT is here. You get it. You know your business and have great ideas for a business transformation strategy. What comes next? Time to make it happen. In his session at @ThingsExpo, Jay Mason, an Associate Partner of Analytics, IoT & Cybersecurity at M&S Consulting, presented a step-by-step plan to develop your technology implementation strategy. He also discussed the evaluation of communication standards and IoT messaging protocols, data...
Nordstrom is transforming the way that they do business and the cloud is the key to enabling speed and hyper personalized customer experiences. In his session at 21st Cloud Expo, Ken Schow, VP of Engineering at Nordstrom, discussed some of the key learnings and common pitfalls of large enterprises moving to the cloud. This includes strategies around choosing a cloud provider(s), architecture, and lessons learned. In addition, he covered some of the best practices for structured team migration an...
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and simple way to introduce Machine Leaning to anyone and everyone. He solved a machine learning problem and demonstrated an easy way to be able to do machine learning without even coding. Raju Shreewastava is the founder of Big Data Trunk (www.BigDataTrunk.com), a Big Data Training and consulting firm with offices in the United States. He previously led the data warehouse/business intelligence and B...
Recently, REAN Cloud built a digital concierge for a North Carolina hospital that had observed that most patient call button questions were repetitive. In addition, the paper-based process used to measure patient health metrics was laborious, not in real-time and sometimes error-prone. In their session at 21st Cloud Expo, Sean Finnerty, Executive Director, Practice Lead, Health Care & Life Science at REAN Cloud, and Dr. S.P.T. Krishnan, Principal Architect at REAN Cloud, discussed how they built...
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
DevOps at Cloud Expo – being held June 5-7, 2018, at the Javits Center in New York, NY – 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 results. Among the proven benefits,...
@DevOpsSummit at Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, is co-located with 22nd Cloud Expo | 1st DXWorld Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait...
Cloud Expo | DXWorld Expo have announced the conference tracks for Cloud Expo 2018. Cloud Expo will be held June 5-7, 2018, at the Javits Center in New York City, and November 6-8, 2018, at the Santa Clara Convention Center, Santa Clara, CA. Digital Transformation (DX) is a major focus with the introduction of DX Expo within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive ov...
SYS-CON Events announced today that T-Mobile exhibited at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. As America's Un-carrier, T-Mobile US, Inc., is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to 67.4 million customers who are unwilling to compromise on qua...
SYS-CON Events announced today that Cedexis 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. Cedexis is the leader in data-driven enterprise global traffic management. Whether optimizing traffic through datacenters, clouds, CDNs, or any combination, Cedexis solutions drive quality and cost-effectiveness. For more information, please visit https://www.cedexis.com.
SYS-CON Events announced today that Google Cloud has been named “Keynote 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. Companies come to Google Cloud to transform their businesses. Google Cloud’s comprehensive portfolio – from infrastructure to apps to devices – helps enterprises innovate faster, scale smarter, stay secure, and do more with data than ever before.
SYS-CON Events announced today that Vivint to exhibit at SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California. As a leading smart home technology provider, Vivint offers home security, energy management, home automation, local cloud storage, and high-speed Internet solutions to more than one million customers throughout the United States and Canada. The end result is a smart home solution that sav...
SYS-CON Events announced today that Opsani 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. Opsani is the leading provider of deployment automation systems for running and scaling traditional enterprise applications on container infrastructure.
SYS-CON Events announced today that Nirmata 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. Nirmata provides a comprehensive platform, for deploying, operating, and optimizing containerized applications across clouds, powered by Kubernetes. Nirmata empowers enterprise DevOps teams by fully automating the complex operations and management of application containers and its underlying ...
SYS-CON Events announced today that Opsani to exhibit at SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California. Opsani is creating the next generation of automated continuous deployment tools designed specifically for containers. How is continuous deployment different from continuous integration and continuous delivery? CI/CD tools provide build and test. Continuous Deployment is the means by which...