<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Simon Whatley &#187; Frameworks</title>
	<atom:link href="http://www.simonwhatley.co.uk/tag/frameworks/feed" rel="self" type="application/rss+xml" />
	<link>http://www.simonwhatley.co.uk</link>
	<description>The opposite of every great idea is another great idea</description>
	<lastBuildDate>Wed, 02 Nov 2011 09:28:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Let&#039;s not Dilly-Dally: ColdFusion has its Merits</title>
		<link>http://www.simonwhatley.co.uk/lets-not-dilly-dally-coldfusion-has-its-merits</link>
		<comments>http://www.simonwhatley.co.uk/lets-not-dilly-dally-coldfusion-has-its-merits#comments</comments>
		<pubDate>Fri, 09 Jan 2009 10:58:36 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[administrator]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe ColdFusion]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[enterprise-level search]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[fundamentals]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Applications]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rapid application development]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[web technology]]></category>
		<category><![CDATA[web world]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1734</guid>
		<description><![CDATA[ColdFusion is 13 years old. That make makes it the daddy of the web world! It does not make it any less hip or useful than the relatively new kids on the block. Let's not dilly-dally, bicker or insult one another about which is best, which one is dying and which one is not worth the computer it is compiled on. What is important is to understand the merits of each language and decide which one best suits the application, not only in technical terms, but also in terms of time-to-market, cost of development, availability of a skilled workforce etc.]]></description>
			<content:encoded><![CDATA[<p>ColdFusion is 13 years old. That make makes it the daddy of the web world! It does not make it any less hip or useful than the relatively new kids on the block.</p>
<p>Take this scenario. A company I once worked for had what can be described as a business directory built upon a licensed, yet bastardised, version of a popular ColdFusion-based <abbr title="Content Management System">CMS</abbr>. It didn&#8217;t work that well! The decision was made to redevelop the application in Java. It took two years to reach the same level of functionality! What happened next? Ruby-on-Rails is what! The rest is history and beyond the topic of this post.</p>
<p>So, in effect, the application almost went full-circle in its development paradigm &#8212; both ColdFusion and Ruby-on-Rails can be considered <q>Rapid Application Development</q> environments, Java, certainly not. Why did the decision makers not stick with ColdFusion and put time aside to actually build it properly in the first place? To put it simply, they lost faith in ColdFusion; it was largely mis-understood.</p>
<p>The weakness of every programming language does not lie with the language itself per se &#8212; albeit it can have an important influencing factor &#8212; but rather with the ability, or indeed inability, of the developer to leverage the language in the most efficient and optimal way.</p>
<p>ColdFusion, like every other programming language has had and I&#8217;m sure still does have its fair share of poor developers; those people simply working with it as a means-to-an-end, rather than those passionate about the language, those people programming without understanding the fundamentals of programming or the implications of their poorly written code. This is apparent from .NET to Java, ColdFusion to Ruby, JavaScript to ActionScript.</p>
<p>Let&#8217;s not dilly-dally, bicker or insult one another about which is best, which one is dying and which one is not worth the computer it is compiled on. What is important is to understand the merits of each language and decide which one best suits the application, not only in technical terms, but also in terms of time-to-market, cost of development, availability of a skilled workforce etc.</p>
<p>ColdFusion, whether rightly or wrongly in some people&#8217;s opinion, can sit proudly amongst its peers and provide a truly compelling alternative.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Here&#8217;s how (in no particular order):</p>
<ol>
<li>Low Total Cost of Ownership &#8211; frequently, ColdFusion is described as expensive, it simply isn&#8217;t especially if you consider the natively supported functions. But to put it bluntly, if your company cannot afford the cost of ColdFusion standard, or indeed ColdFusion hosting, you have bigger things to worry about regarding the profitability of the company; you won&#8217;t be able to afford much of anything! The problem becomes not the product. ColdFusion applications are quicker to develop and developers are vastly cheaper to employ than their peers in Java or Ruby, just look at <a href="http://www.itjobswatch.co.uk/" title="ITJobsWatch" target="_blank" rel="nofollow">ITJobsWatch</a> for examples.</li>
<li>Rapid Application Development &#8211; ColdFusion vastly simplifies tasks. What would take other languages numerous lines of code to produce is efficiently encapsulated either in a tag or function or as a setting in the administrator. This is a simplistic yet indicative example: where else can you connected to a database simply with one line of code or indeed simply by name? ColdFusion changed the idea of specifying development time in terms of months and years to weeks and months or small features a matter of hours and days. Simplicity is not the mother or all evil. To be pragmatic, simplification reduces costs.</li>
<li>Rich Internet Applications &#8211; ColdFusion may or may not have pioneered the <abbr title="Rich Internet Application">RIA</abbr> paradigm, but it has played a significant supporting role to Flash and now Flex. ColdFusion natively supports Flash remoting, providing the all important data access tier.</li>
<li>Platform Maturity &#8211; ColdFusion 8 is built upon the latest version of Java (1.6). Along with internal improvements to the ColdFusion application, this has afforded ColdFusion unprecedented speed improvements and stability.</li>
<li>Language Maturity &#8211; with each major release of ColdFusion comes many language enhancements added to the core. This means that previous addons, for example image manipulation, which came at a premium are now standard. Adobe and other companies that produce <abbr title="ColdFusion Markup Language">CFML</abbr> engines are now participating in  a <abbr title="ColdFusion Markup Language">CFML</abbr> advisory committee, which aims to set standards for the core language. This is not only a sign of maturity but a letter of intent by the industry that will mean your application will work on any engine, assuming no proprietary functionality is used.</li>
<li>The Ultimate Middleware &#8211; ColdFusion sits comfortably between any backend and front end system. Be it interfacing with a host of databases, Java, .NET, <abbr title="Component Object Model">COM</abbr>, Corba or connecting to classic <abbr title="HyperText Manrkup Language">HTML</abbr> or rich Flash, Flex and <abbr title="Asynchronous JavaScript and XML">AJAX</abbr> frontends with little or no configuration.</li>
<li>Feature Rich &#8211; what other web technology <strong>natively</strong> supports <abbr title="">PDF</abbr> generation, charting, enterprise-level search, <abbr title="Asynchronous JavaScript and XML">AJAX</abbr>, image manipulation, Atom and <abbr title="Really Simple Syndication">RSS</abbr> creation, Zip and <abbr title="Java Archive">JAR</abbr> file manipulation, a server monitor, Flex integration, encryption libraries, all important database connectors, webservice creation, <abbr title="">XML</abbr> manipulation, inbuilt reporting application (similar to Crystal Reports), email, <abbr title="File Transfer Protocol">FTP</abbr> to name but a few? I hazard a guess at none, unless you&#8217;re happy to pay a premium.</li>
<li>Platform Independent &#8211; since ColdFusion 6, when Macromedia redeveloped the entire application in Java, ColdFusion has been platform independent. You can install it on practically any machine.</li>
<li>OpenSource Alternatives &#8211; BlueDragon and Railo are both significant alternatives to Adobe ColdFusion and both have opensource alternatives, the latter of the two having recently joined the JBoss community. Adobe are also considering providing a free edition to academic institutions.</li>
<li>The Future &#8211; many commentators have mentioned Hibernate as a significant addition to the next release of ColdFusion, version 9. But having seen the prerelease notes, that is not all that will be added. Alas I&#8217;m under <abbr title="Non-Disclosure Agreement">NDA</abbr>, but rest assured, there is going to be a significant intake of breath when developers get hold of the next release. ColdFusion 8 was firmly geared towards middle management with fuzzy additions, ColdFusion 9 is set to re-address the balance with compelling language and functionality enhancements.</li>
</ol>
<p>ColdFusion evangelism needs to step up a gear! Adobe certainly doesn&#8217;t afford much marketing budget to the product, prefering <q>The Community</q> do the hard work. It is not always easy convincing the decision makers that ColdFusion is a good product of choice, without Adobe&#8217;s unnerving support, but we have to work hard, break down those barriers, encroach on events outside the comfortable sphere of the ColdFusion world and demonstrate ColdFusion&#8217;s match-winning ability.</p>
<p>ColdFusion isn’t dying, it’s simply niche. Every niche has its place.</p>
<p><strong>UPDATE:</strong> If you would like to view the ensuing debate regarding ColdFusion prompted by <a href="http://aralbalkan.com/1864" title="Aral Balkan - Why learning ColdFusion today is a waste of time." target="_blank" rel="nofollow">Aral Balkan</a>, feel free to do so. This post should serve as a positive reminder of ColdFusion&#8217;s virtues, alongside the need for a balanced and polite debate.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/lets-not-dilly-dally-coldfusion-has-its-merits/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Rich Internet Application Frameworks for Flex and AIR</title>
		<link>http://www.simonwhatley.co.uk/ria-flex-air-frameworks</link>
		<comments>http://www.simonwhatley.co.uk/ria-flex-air-frameworks#comments</comments>
		<pubDate>Thu, 04 Sep 2008 14:34:42 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Consulting]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[asset management]]></category>
		<category><![CDATA[backend services]]></category>
		<category><![CDATA[Cairngorm]]></category>
		<category><![CDATA[classic Model-View-Controller]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Gaia]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Guasax]]></category>
		<category><![CDATA[Internet Application Frameworks]]></category>
		<category><![CDATA[Internet Applications]]></category>
		<category><![CDATA[inversion-of-control]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[Mate]]></category>
		<category><![CDATA[Model-Glue Flex]]></category>
		<category><![CDATA[model-view-controller]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[software engineers]]></category>
		<category><![CDATA[Swiz]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=986</guid>
		<description><![CDATA[Whether you are new to Adobe &#174; Flex &#174; or have been developing for a while, frameworks can help you get organised quickly. Below is a list of Flex and AIR frameworks that will allow you to get up and running and develop highly-collaborative applications. The introductions are by the frameworks themselves, but I'd like to here from you about your experiences using them.]]></description>
			<content:encoded><![CDATA[<p>Whether you are new to Adobe &reg; Flex &reg; or have been developing for a while, frameworks can help you get organised quickly.</p>
<p>Below is a list of Flex and <acronym title="Adobe Integrated Runtime">AIR</acronym> frameworks that will allow you to get up and running and develop highly-collaborative applications. The introductions are by the frameworks themselves, but I&#8217;d like to here from you about your experiences using them.</p>
<h3>Cairngorm</h3>
<p>Cairngorm is the lightweight micro-architecture for <a href="http://en.wikipedia.org/wiki/Rich_Internet_application" title="Wikipedia: Rich Internet Application" target="_blank" rel="nofollow">Rich Internet Applications</a> built in Flex or <acronym title="Adobe Integrated Runtime">AIR</acronym>. A collaboration of recognized design patterns, Cairngorm exemplifies and encourages best-practices for <abbr title="Rich Internet Application">RIA</abbr> development advocated by <a href="http://www.adobe.com/consulting/" title="Adobe Consulting" target="_blank" rel="nofollow">Adobe Consulting</a>, encourages best-practice leverage of the underlying Flex framework, while making it easier for medium to large teams of software engineers deliver medium to large scale, mission-critical Rich Internet Applications.</p>
<p>More information can be found on the <a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" title="Cairngorm RIA Framework" target="_blank" rel="nofollow">Cairngorm project&#8217;s website</a>.</p>
<h3>PureMVC</h3>
<p>PureMVC is a lightweight framework for creating applications based upon the classic <a href="http://en.wikipedia.org/wiki/Model-View-Controller" title="Wikipedia: Model, View and Controller design pattern" target="_blank" rel="nofollow">Model-View-Controller</a> concept.</p>
<p>Based upon proven design patterns, this free, open source framework which was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and <acronym title="Adobe Integrated Runtime">AIR</acronym>, has now been ported to nearly all major development platforms.</p>
<p>Two versions of the framework are supported with reference implementations; Standard and MultiCore, though only the Standard version has been ported to other languages so far.</p>
<p>More information can be found on the <a href="http://puremvc.org/" title="PureMVC Framework" target="_blank" rel="nofollow">PureMVC project&#8217;s website</a>.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h3>Mate</h3>
<p>Mate is a tag-based, event-driven Flex framework.</p>
<p>Flex applications are event-driven. Mate framework has been created to make it easy to handle the events your Flex application creates. Mate allows you to define who is handling those events, whether data needs to be retrieved from the server, or other events need to be triggered.</p>
<p>In addition, Mate provides a mechanism for dependency injection to make it easy for the different parts of your application to get the data and objects they need.</p>
<p>More information can be found on the <a href="http://mate.asfusion.com/" title="Mate Framework at ASFusion" target="_blank" rel="nofollow">Mate project&#8217;s website</a>.</p>
<h3>Swiz</h3>
<p>Swiz is a framework for Adobe Flex that aims to bring complete simplicity to <abbr title="Rich Internet Application">RIA</abbr> development. Swiz provides Inversion of Control, event handing, and simple life cycle for asynchronous remote methods. In contrast to other major frameworks for Flex, Swiz imposes no <abbr title="Java 2 Platform, Enterprise Edition">J2EE</abbr> patterns on your code, no repetitive folder layouts, and no boilerplate code on your development. Swiz represents best practices learned from the top <abbr title="Rich Internet Application">RIA</abbr> developers at some of the best consulting firms in the industry, enabling Swiz to be simple, lightweight, and extremely productive.</p>
<p>More information can be found on the <a href="http://code.google.com/p/swizframework/" title="Swiz Framework on Google Code" target="_blank" rel="nofollow">Swiz project&#8217;s website</a>.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h3>Guasax</h3>
<p>Guasax is an ease of use programming framework which provides the creation of an ordered and scalable application with Adobe Flex. The lifecycle of the Guasax framework is based in the <acronym title="Model-View-Controller">MVC</acronym> pattern to take on our program actions. The Guasax framework helps you to maintain your business logic tier highly decoupled from your presentation logic tier.</p>
<p>Guasax takes reflection and introspection techniques as well as the <a href="http://en.wikipedia.org/wiki/Inversion_of_control" title="Wikipedia: Inversion of Control" target="_blank" rel="nofollow">Inversion of Control</a> (<abbr title="Inversion of Control">IoC</abbr>) pattern to execute the operations which we have pointed at and to make a decision about itself. Guasax is not intrusive on your class model. You <em>don&#8217;t</em> have to extend your classes in a framework class to use it.</p>
<p>More information can be found on the <a href="http://www.guasax.com/" title="Guasax Project" target="_blank" rel="nofollow">Guasax project&#8217;s website</a> or on their <a href="http://code.google.com/p/guasax/" title="Guasax Project on Google Code" target="_blank" rel="nofollow">Google code project</a>.</p>
<h3>Model-Glue: Flex</h3>
<p>Model-Glue: Flex brings <a href="http://en.wikipedia.org/wiki/Implicit_invocation" title="Wikipedia: Implicit Invocation" target="_blank" rel="nofollow">implicit invocation</a>, Model-View-Controller design, and cleaner, less repetitive integration with backend services to Flex and <acronym title="Adobe Integrated Runtime">AIR</acronym> applications.</p>
<p>It shuns repetitive, boilerplate code in favor of helper classes and expressive <abbr title="Application Programming Interface">API</abbr>s.</p>
<p>More information can be found on the <a href="http://www.model-glue.com/flex.cfm" title="Model-Glue: Flex project's website" target="_blank" rel="nofollow">Model-Glue: Flex project&#8217;s website</a>.</p>
<h3>Gaia</h3>
<p>Gaia is an open-source front-end Flash Framework for <abbr title="ActionScript 3">AS3</abbr> and <abbr title="ActionScript 2">AS2</abbr> designed to dramatically reduce development time.</p>
<p>Gaia is targeted at anyone who develops Flash sites. It provides solutions to the challenges and repeated tasks faced with front-end Flash site development, such as navigation, transitions, preloading, asset management, site structure, deep linking and <abbr title="Search Engine Optimisation">SEO</abbr>. It provides speed and flexibility in your workflow and a simple API that gives you access to its powerful features.</p>
<p>More information can be found on the <a href="http://www.gaiaflashframework.com/" title="Gaia framework's website" target="_blank" rel="nofollow">Gaia Framework&#8217;s website</a>.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>UPDATE: Some more frameworks that I overlooked.</strong></p>
<h3>Parsley</h3>
<p>Parsley is an application framework for Flex/Flash/AIR applications written in AS3. It contains the following modules:</p>
<p><abbr title="Inversion of Control">IoC</abbr> Container (Configuration and Dependency Injection) &#8211; Inspired by the Spring Framework it brings the concept of an<abbr title="Inversion of Control">IoC</abbr>(Inversion of Control) container to ActionScript. It is useful for configuration and wiring of applications. It helps building a well structured architecture and decoupling the individual building blocks of your application. Configuration is based on <abbr title="eXtensible Markup Language">XML</abbr> files.</p>
<p><abbr title="Model View Controller">MVC</abbr> Framework &#8211; The <abbr title="Model View Controller">MVC</abbr> (Model View Controller) framework helps decouple the view layer from other parts of the application. It borrows the concept of a FrontController from Cairngorm, but instead of advocating the use of BusinessDelegate and ServiceLocator patterns, the framework integrates the FrontController with the <abbr title="Inversion of Control">IoC</abbr> container.<br />
More information can be found on the <a href="http://www.spicefactory.org/parsley/" title="Parsley framework's website" target="_blank" rel="nofollow">Parsley Framework&#8217;s website</a>.</p>
<h3>Prana</h3>
<p>Prana is an Inversion of Control (<abbr title="Inversion of Control">IoC</abbr>) Container for ActionScript 3.0, and more specifically the Flex framework. It enables you to configure objects and components in a non-intrusive way by describing them in an external <abbr title="eXtensible Markup Language">XML</abbr> document and having them loaded at runtime.</p>
<p>At its core is a Spring-ish application context and <abbr title="Inversion of Control">IoC</abbr> container. The <abbr title="eXtensible Markup Language">XML</abbr> dialect for the application context is aimed to be Spring compliant.</p>
<p>The framework also contains utility classes for configuring and extending Cairngorm and PureMVC applications, a Reflection <abbr title="Application Programming Interface">API</abbr> and general utilities.</p>
<p>More information can be found on the <a href="http://www.pranaframework.org" title="Prana framework's website" target="_blank" rel="nofollow">Prana Framework&#8217;s website</a>.</p>
<h3>Arp</h3>
<p>Arp is a pattern-based framework for Flash and Flex. It supports both ActionScript 2 and ActionScript 3.</p>
<p>More information can be found on the <a href="http://osflash.org/projects/arp/" title="Arp Framework" target="_blank" rel="nofollow">Arp project&#8217;s page</a> on the Open Source Flash website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/ria-flex-air-frameworks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion Is Hotting Up in the UK</title>
		<link>http://www.simonwhatley.co.uk/coldfusion-is-hotting-up-in-the-uk</link>
		<comments>http://www.simonwhatley.co.uk/coldfusion-is-hotting-up-in-the-uk#comments</comments>
		<pubDate>Fri, 27 Jun 2008 11:56:10 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe ColdFusion]]></category>
		<category><![CDATA[Adobe MAX]]></category>
		<category><![CDATA[Aral Balkan]]></category>
		<category><![CDATA[BlueDragon]]></category>
		<category><![CDATA[Brighton]]></category>
		<category><![CDATA[cf.Objective]]></category>
		<category><![CDATA[CFUnited]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Coldspring]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[europe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Fusebox]]></category>
		<category><![CDATA[Hal Helms]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[Mach-II]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Model-Glue]]></category>
		<category><![CDATA[Peter Bell]]></category>
		<category><![CDATA[Peter Elst]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Scotch on the Rocks]]></category>
		<category><![CDATA[Sean Corfield]]></category>
		<category><![CDATA[search engine]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Simon Bailey]]></category>
		<category><![CDATA[Spry]]></category>
		<category><![CDATA[technology-agnostic topics]]></category>
		<category><![CDATA[united kingdom]]></category>
		<category><![CDATA[United States]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=588</guid>
		<description><![CDATA[In the past, the US has held a near monopoly not only in ColdFusion-based user groups, but also conferences, with CFUnited, cf.Objective() and the more general Adobe MAX leading the way.]]></description>
			<content:encoded><![CDATA[<p>In the past, the <abbr title="United States">US</abbr> has held a near monopoly not only in ColdFusion-based user groups, but also conferences, with <a href="http://cfunited.com/" title="CFUnited" rel="nofollow">CFUnited</a>, <a href="http://www.cfobjective.com/" title="cf.Objective()" rel="nofollow">cf.Objective()</a> and the more general <a href="http://max.adobe.com/" title="Adobe MAX">Adobe MAX</a> leading the way.</p>
<p>But the landscape is changing and the <abbr title="United Kingdom">UK</abbr> is challenging for its share of the scene. 2008 is seeing a renaissance in the ColdFusion world following on from the buzz created around the release of ColdFusion 8 in 2007 and the eagerly anticipated future release of ColdFusion, codenamed Centaur. This buzz has resulted in not one but three conferences for 2008: <a href="http://europe.cfunited.com/" title="CFUnited Europe" rel="nofollow">CFUnited Europe</a> was held in London in March, <a href="http://www.scotch-on-the-rocks.co.uk/" title="Scotch-on-the-Rocks" rel="nofollow">Scotch-on-the-Rocks</a> was held in Edinburgh in June and soon we will see the return of <a href="http://www.cfdevcon.com/" title="CFDevCon" rel="nofollow">CFDevCon</a>.</p>
<p>The inaugural CFDevCon one-day-conference was held back in 2006, in Croydon, but in September 2008 it is heading down to what is arguably one of the creative capitals in the south of England, <a href="http://maps.google.co.uk/maps?f=q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK&#038;ie=UTF8&#038;ll=50.9342,0.054932&#038;spn=2.271057,4.812012&#038;z=8" title="Google Maps - Brighton" rel="nofollow">Brighton</a>. The conference has not only become a two-day conference, but its scope has moved beyond simply Adobe-based products, with the introduction of Microsoft-based technologies, specifically <abbr title="Internet Information Server">IIS</abbr>7.0, Silverlight and <abbr="Structured Query Language">SQL</abbr> Server 2008 and technology-agnostic topics such as Regular Expressions, Search Engine Optimisation (<abbr title="Search Engine Optimisation">SEO</abbr>) and Accessibility.</p>
<p>As with all <a href="http://www.scotch-on-the-rocks.co.uk/" title="Scotch-on-the-Rocks" rel="nofollow">great conferences</a>, CFDevCon has a great line-up of speakers with the likes of Sean Corfield, Hal Helms, Peter Elst, Peter Bell, Aral Balkan and Simon Bailey, to name a few, all presenting sessions.</p>
<p>So, lets get excited people, support the conferences and <a href="http://www.adobe.com/cfusion/usergroups/search_results.cfm?findType=2&#038;loc=en_us&#038;country_id=9259BCE3-668D-4A21-BB8751DC0E2A45B3" title="UK Adobe User Groups" rel="nofollow">user groups</a> and evangelise ColdFusion.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/coldfusion-is-hotting-up-in-the-uk/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Occam&#039;s Razor</title>
		<link>http://www.simonwhatley.co.uk/occams-razor</link>
		<comments>http://www.simonwhatley.co.uk/occams-razor#comments</comments>
		<pubDate>Tue, 21 Nov 2006 21:43:55 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[assumotion]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[few assumptions]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[law of succinctness]]></category>
		<category><![CDATA[lex parsimoniae]]></category>
		<category><![CDATA[logician]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[occam]]></category>
		<category><![CDATA[ockham]]></category>
		<category><![CDATA[okham]]></category>
		<category><![CDATA[phenomenon]]></category>
		<category><![CDATA[principle]]></category>
		<category><![CDATA[razor]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[simplest]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[William of Ockham]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=147</guid>
		<description><![CDATA[Occam's Razor (also spelled Ockham's razor) is a principle attributed to the 14th-century English logician and Franciscan friar William of Ockham. Occam's razor states that the explanation of any phenomenon should make as few assumptions as possible. The principle is often expressed in Latin as the lex parsimoniae (law of succinctness).]]></description>
			<content:encoded><![CDATA[<p>Occam&#8217;s Razor (also spelled Ockham&#8217;s razor) is a principle attributed to the 14th-century English logician and Franciscan friar William of Ockham.</p>
<p>Occam&#8217;s razor states that the explanation of any phenomenon should make as few assumptions as possible. The principle is often expressed in Latin as the lex parsimoniae (law of succinctness):</p>
<blockquote><p>entia non sunt multiplicanda praeter necessitatem</p></blockquote>
<p>which translates to:</p>
<blockquote><p>entities should not be multiplied beyond necessity</p></blockquote>
<p>This is often paraphrased as &#8220;All things being equal, the simplest solution tends to be the best one.&#8221; One consequence of this methodology is the idea that the simplest or most obvious explanation of several competing ones is the one that should be preferred until it is proven wrong.</p>
<p>So, how can this apply to web development. There is an analogy between software development and the scientific theory as a means to enhance the credibility of a particular set of programming practices. Once a programmer has a theory (model) of the software in their head, they can talk about and explain its behavior to others. When they make changes to the code, they do so in a way that is consistent with the theory and therefore &#8220;fits in&#8221; with the existing code base well. A programmer not guided by such a theory is liable to make modifications and extensions to the code that appear to be &#8220;tacked on&#8221; as an afterthought, and not consistent with the design and  philosophy of the existing code base.</p>
<p>Simply, don&#8217;t add markup where markup is not needed. Don&#8217;t over complicate an application structure. If you have the choice between 2 or 3 paths to the same end &#8211; choose one and let it be the simplest and shortest, but with the caveat, don&#8217;t cut corners. This will make for cleaner, understandable code with faster download times, something all developers should work towards.  <acronym title="Cascading Style Sheets">CSS</acronym> has helped this concept immersurably by removing the need to use inline styles, font tags, tables for positioning etc.</p>
<p>In terms of ColdFusion, the use of design patterns (e.g. Singleton, Model-View-Controller&#8230;) and the now numerous frameworks (e.g. Fusebox, Model-Glue, Mach-II, Reactor&#8230;) has reduced or even removed the concept of &#8220;spaghetti code&#8221;, the bane of may a web developer&#8217;s life and indeed the often muted argument against ColdFusion as an enterprise level application development environment.</p>
<p align="center"><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/occams-razor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion ORM Frameworks &amp; Tools</title>
		<link>http://www.simonwhatley.co.uk/coldfusion-orm-frameworks-tools</link>
		<comments>http://www.simonwhatley.co.uk/coldfusion-orm-frameworks-tools#comments</comments>
		<pubDate>Thu, 27 Apr 2006 20:53:05 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Active Record Factory]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[code generation]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Doug Hughes]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[generation]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Nicholas Tunney]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[object relational mapping]]></category>
		<category><![CDATA[object-oriented programming]]></category>
		<category><![CDATA[ObjectBreeze]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[Reactor]]></category>
		<category><![CDATA[Reactor Reactor]]></category>
		<category><![CDATA[relational database]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Transfer]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=65</guid>
		<description><![CDATA[Object-Relational Mapping (or ORM), is a programming technique that links databases to object-oriented language concepts, creating (in effect) a "virtual object database". There are both free and commercial packages available that perform object-relational mapping, although some programmers opt to code their own object-relational mapping for their systems.]]></description>
			<content:encoded><![CDATA[<p><strong>Object-Relational Mapping (or ORM)</strong>, is a programming technique that links databases to object-oriented language concepts, creating (in effect) a &#8220;virtual object database.&#8221; There are both free and commercial packages available that perform object-relational mapping, although some programmers opt to code their own object-relational mapping for their systems.</p>
<p>In object-oriented programming, programming objects represent real-world objects. To illustrate, consider the example of an address book, which contains listings of people along with zero or more phone numbers and zero or more addresses. In object-oriented terms this would be represented by a &#8220;person object&#8221; with &#8220;slots&#8221; (fields, members, instance variables etc.) to hold the data that make up this listing: the person&#8217;s name, a list (or array) of phone numbers, and a list of addresses.</p>
<p>The crux of the problem is in translating those objects to forms which can be stored in files or databases, and which can later be retrieved easily while preserving the properties of the objects and their relationships; these objects can then be said to be persistent.</p>
<p>Object-Relational systems attempt to solve this problem by providing libraries of classes which are able to do this mapping automatically. Given a list of tables in the database, and objects in the program, they will automatically map requests from one to the other. Asking a person object for its phone numbers will result in the proper query being created and sent, and the results being &#8220;magically&#8221; translated directly into phone number objects inside the program.</p>
<p>From a programmer&#8217;s perspective, the system looks like a persistent object store. One can create objects and work with them as one would normally, and they automatically end up in the relational database.</p>
<p>A number of ORM frameworks have been created for ColdFusion:</p>
<h2>Reactor</h2>
<p>Reactor, created by Doug Hughes of <a target="_blank" title="Alagad" href="http://www.alagad.com/">Alagad</a> fame, is a very simple <acronym title="Application Program Interface">API</acronym> for ColdFusion which generates and instantiates database abstraction <acronym title="ColdFusion Components">CFCs</acronym> on the fly as needed.</p>
<p><a title="Reactor for ColdFusion" target="_blank" href="http://www.doughughes.net/index.cfm?filter=category&#038;categoryId=30">http://www.doughughes.net/</a></p>
<h2>Arf!</h2>
<p>Active Record Factory (Arf!) is a Rails-style ActiveRecord implementation in ColdFusion.</p>
<p>Below is a list of the basics that Arf! provides:</p>
<ul>
<li>JDBC metadata based reflection:  not database specific</li>
</ul>
<ul>
<li>Creates ActiveRecord <acronym title="Application Program Interface">API</acronym>&#8216;d instances out of <acronym title="ColdFusion Components">CFCs</acronym> that extend a base ActiveRecord component</li>
</ul>
<ul>
<li>Implements hasMany() and belongsTo() methods for establishing Record properties that point to other tables</li>
</ul>
<ul>
<li>Allows for overloading any of the automagically generated methods to add custom business logic</li>
</ul>
<ul>
<li>Automagic methods on Records include GetInstance(), Create(), Read(), Update(), Delete(), Save() [smart create/update], List(orderBy, whereClause), Validate() [does type and length checking], and SetNNN()/GetNNN() methods for each DB column</li>
</ul>
<p><a title="Arf!" target="_blank" href="http://www.clearsoftware.net/index.cfm?mode=cat&#038;catid=4BF355FB-E081-2BAC-691AF2BBF35F5E7C">http://www.clearsoftware.net/</a></p>
<h2>objectBreeze</h2>
<p>Developed by Nicholas Tunney, objectBreeze is an <acronym title="Object-Relational Mapping">ORM</acronym> tool that allows you to interact with your data persistence layer and easily model objects within your ColdFusion applications. With no setup, objectBreeze will instantly create objects directly from your database schema. objectBreeze requires that your table has -a- primary key defined. Currently, objectBreeze works with Microsoft SQL, Oracle, MySQL and PostgreSQL, but other versions are on the way.</p>
<p><a title="objectBreeze" target="_blank" href="http://www.objectbreeze.com/ob/">http://www.objectbreeze.com/ob/</a></p>
<h2>cfcPowerTools</h2>
<p>Batch generation of your data layer objects in minutes.</p>
<p><a title="cfcPowerTools" target="_blank" href="http://cfcpowertools.riaforge.org/">http://cfcpowertools.riaforge.org/</a></p>
<h2>Transfer</h2>
<p>Transfer was built out of a need to speed up the development process that is normally slowed down by the development of Business Objects and Data Access Objects.</p>
<p>Transfer does this through a series of methods, including SQL generation and CFML code generation, that all occur during the run-time process.</p>
<p>All this is configured through a XML file, that maps your object generation back to the tables and columns in your database.</p>
<p><a title="Transfer object Relational Mapping" href="http://www.compoundtheory.com/?action=transfer.index">http://www.compoundtheory.com/</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/coldfusion-orm-frameworks-tools/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coldfusion AJAX Frameworks</title>
		<link>http://www.simonwhatley.co.uk/coldfusion-ajax-frameworks</link>
		<comments>http://www.simonwhatley.co.uk/coldfusion-ajax-frameworks#comments</comments>
		<pubDate>Sat, 25 Mar 2006 21:24:04 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adaptive Path]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[AjaxCFC]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[blowfish encryption]]></category>
		<category><![CDATA[CFAJAX]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Del.icio.us]]></category>
		<category><![CDATA[document object model]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[following existing technologies]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jesse James Garrett]]></category>
		<category><![CDATA[JSMX]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[open source tool]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rob Gonda]]></category>
		<category><![CDATA[SAJAX]]></category>
		<category><![CDATA[Steve Smith]]></category>
		<category><![CDATA[Todd Kingham]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=60</guid>
		<description><![CDATA[Asynchronous JavaScript and XML. It's a whole new way of looking at the web where HTML page makes asynchronous calls to the server using JavaScript and loads the data in bits and pieces as needed. Ajax is not a new technology. Itâ€™s a new developing approach, based on the following existing technologies: XHTML, CSS, DOM, XML, XSLT and XMLHttpRequest.]]></description>
			<content:encoded><![CDATA[<h3>What is AJAX?</h3>
<p>Asynchronous JavaScript and XML. It&#8217;s a whole new way of looking at the web where HTML page makes asynchronous calls to  the server using JavaScript  and loads the data in bits and pieces as needed. Ajax is not a new technology. Itâ€™s a new developing approach, based on the following existing technologies:</p>
<ul>
<li><strong>XHTML</strong> and <strong>CSS</strong> for standard presentation,</li>
<li><strong>DOM (Document Object Model)</strong> for dynamic and interactive presentation,</li>
<li><strong>XML</strong> and <strong>XSLT</strong> for data exchange and manipulation, and</li>
<li><strong>XMLHttpRequest</strong> for asynchronous data retrieval</li>
</ul>
<p>The term &#8220;AJAX&#8221; was first muted by Jesse James Garrett of <a title="A new approach to web applications" target="_blank" href="http://www.adaptivepath.com">AdaptivePath</a> and has become synonymous with the ideas and concepts of Web 2.0. Ajax has been popularised by the likes of <a title="Google" target="_blank" href="http://www.google.com">Google</a> in their <a title="Gmail" target="_blank" href="http://mail.google.com">Gmail</a> and <a title="Google Suggest" target="_blank" href="http://www.google.com/webhp?complete=1&#038;hl=en">Google Suggest</a> applications, <a title="Flickr photo sharing" target="_blank" href="http://www.flickr.com/">Flickr</a> and <a target="_blank" title="del.icio.us social bookmarking" href="http://del.icio.us/">del.icio.us</a>, now both owned by <a title="Yahoo" target="_blank" href="http://www.yahoo.com/">Yahoo!</a>.</p>
<p>Below I have listed a few of the frameworks available to the ColdFusion community.  I will leave it up to you to decide which one is the best and easiest to implement.  Please tell me your experiences.</p>
<h3>AjaxCFC</h3>
<p>AjaxCFC, created by <a target="_blank" title="Rob Gonda" href="http://www.robgonda.com/">Rob Gonda</a>, is a ColdFusion framework meant to speed up Ajax application development and deployment by providing developers seamless integration between JavaScript and ColdFusion, and providing built-in functions, such as security and debugging, to quickly adapt to any type of environment and helping to overcome cross-browser compatibility problems.</p>
<ul>
<li>ColdFusion components following the best practices of object oriented programming and design patterns. Programming with ajaxCFC involves extending components and creating your own ajax faÃ§ades.</li>
<li>Intergration with Model-Glue, one of the most popular MVC frameworks widely used by the ColdFusion community.</li>
<li>Works with ColdFusion MX 6.0, 6,1, 7.0 and Blue Dragon.</li>
<li>Automatically handles complex object transmitted from the client to the server and vice versa.</li>
<li>Server returns pure JavaScript code to the callback handler (instead of XML or JSON) to vastly improve performance.</li>
<li>On-the-works: Built-in base64 and/or blowfish encryption.</li>
<li>Licensed under the Apache License Version 2.0, by <a target="_blank" title="Rob Gonda" href="http://www.robgonda.com">Rob Gonda</a>.</li>
</ul>
<p>The project can be downloaded from Rob Gonda&#8217;s website at the following address: <a target="_blank" title="AjaxCFC" href="http://www.robgonda.com/blog/projects/ajaxcfc/">http://www.robgonda.com/blog/projects/ajaxcfc/</a></p>
<h3>JSMX</h3>
<p>JSMX is a simple API available for connecting your Web Applications to an AJAX front end. The main difference between JSMX and other AJAX implementations is that JSMX allows you to pass either XML or JavaScript to the API. JSMX was originally created to be used with ColdFusion applications because of how easy it is to create JavaScript Strings natively within ColdFusion (using either the CFWDDX tag or the ToScript() function). However, because there is no server-side component to be installed, JSMX can really be used with any programming language.</p>
<ul>
<li>Using the CFWDDX tag, or the toScript() function, within ColdFusion makes converting your ColdFusion Objects to JavaScript a SNAP!</li>
<li>Smaller Packet Sizes over the wire (JavaScript Vs. XML).</li>
<li>Reduced latency due to less parsing of the responses.</li>
<li>Parameters can be sent to the server in multiple formats including, strings, objects, and entire forms without having to build extra logic to handle each type.</li>
<li>API has no Server Side components which makes it more portable.</li>
<li>Extremely simple syntax shortens the learning curve and speeds up development.</li>
<li>Open-source (Creative Commons Attribution-ShareAlike License).</li>
</ul>
<p>JSMX is the creation of Todd Kingham at <a title="La La Bird" target="_blank" href="http://www.lalabird.com">LaLaBird.com</a> and can be downloaded from the following link: <a title="JSMX download" target="_blank" href="http://www.lalabird.com/?fa=JSMX.downloads">http://www.lalabird.com/?fa=JSMX.downloads</a></p>
<h3>CFAjax</h3>
<p>CFAjax is the AJAX implementation for coldfusion. It makes ColdFusion method calls on server directly from HTML page using JavaScript and return backs the result to the calling HTML page. CFAjax comes with simple to use JavaScript API and simple ColdFusion implementation that marshalâ€™s the response between your ColdFusion methods and HTML page. Using CFAjax you can create highly interactive websites with greater performance and usability.</p>
<p>CFAjax can be downloaded at the following link: <a title="CFAjax download" target="_blank" href="http://www.indiankey.com/cfajax/project.asp">http://www.indiankey.com/cfajax/project.asp</a></p>
<h3>SAJAX for ColdFusion</h3>
<p>Sajax is an open source tool to make programming websites using the Ajax framework â€” also known as XMLHTTPRequest or remote scripting â€” as easy as possible. Sajax makes it easy to call PHP, Perl or Python functions from your webpages via JavaScript without performing a browser refresh. The toolkit does 99% of the work for you so you have no excuse to not use it.</p>
<p>Sajax for ColdFusion is the creation of Steve Smith at <a title="Ordered List by Steve Smith" href="http://orderedlist.com/">Ordered List</a> and can be downloaded from the following link: <a target="_blank" title="Sajax for ColdFusion download" href="http://www.orderedlist.com/downloads/SAJAX_ColdFusion.zip">http://www.orderedlist.com/downloads/SAJAX_ColdFusion.zip</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/coldfusion-ajax-frameworks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion Frameworks</title>
		<link>http://www.simonwhatley.co.uk/coldfusion-frameworks</link>
		<comments>http://www.simonwhatley.co.uk/coldfusion-frameworks#comments</comments>
		<pubDate>Wed, 22 Feb 2006 11:15:42 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Ben Edwards]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion application server]]></category>
		<category><![CDATA[Coldspring]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Fusebox]]></category>
		<category><![CDATA[Hal Helms]]></category>
		<category><![CDATA[Mach-II]]></category>
		<category><![CDATA[Model-Glue]]></category>
		<category><![CDATA[model-view-controller]]></category>
		<category><![CDATA[New Brunswick]]></category>
		<category><![CDATA[onTap]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[public services]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Tartan]]></category>
		<category><![CDATA[TheHUB]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[web-application framework]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=27</guid>
		<description><![CDATA[With the introduction of ColdFusion MX, the ColdFusion community is maturing. Most CF developers have moved beyond spaghetti code and the mixing of business logic with presentation code. But it can be difficult and wasteful to "re-invent the wheel" for every application you write. Frameworks can help promote good development practices, standards, and a sound foundation for creating an application.]]></description>
			<content:encoded><![CDATA[<p>With the introduction of ColdFusion MX, the ColdFusion community is maturing. Most <abbr title="ColdFusion">CF</abbr> developers have moved beyond spaghetti code and the mixing of business logic with presentation code. But it can be difficult and wasteful to &#8220;re-invent the wheel&#8221; for every application you write.</p>
<p>Frameworks can help promote good development practices, standards, and a sound foundation for creating an application.</p>
<p>In this article I list a number of these frameworks, but I will leave you to compare them, and decide which you may want to adopt.</p>
<h3>Fusebox</h3>
<p><em>An Historically Strong Framework</em></p>
<p>Fusebox is a popular framework for building ColdFusion and PHP web applications. &#8220;Fuseboxers&#8221; find that the framework releases them from much of the drudgery of writing applications and enables them to focus their efforts on creating great, customer-focused software.</p>
<p>Fusebox provides a small set of &#8216;core&#8217; files and large amount of structure which is helpful to developers. It emphasizes separation of presentation from logic and uses a readily understandable vocabulary for modeling websites, namely circuits, fuses and switches.</p>
<p><a title="Fusebox Application Framework" href="http://www.fusebox.org" target="_blank" rel="nofollow">http://www.fusebox.org</a></p>
<h3>Mach-II</h3>
<p>Mach II is a web-application framework developed by <a title="Hal Helm's personal site" href="http://www.halhelms.com">Hal Helms</a> and Ben Edwards that evolved out of a desire to create a framework that specifically addressed maintenance issues using an <abbr title="Object Orientated">OO</abbr> style. Mach II is based on an Implicit Invocation Architecture and directly supports the <abbr title="Model-View-Controller">MVC</abbr> design pattern.</p>
<p><a title="Mach-II Application Framework" href="http://www.mach-ii.com" target="_blank" rel="nofollow">http://www.mach-ii.com</a></p>
<h3>Model-Glue</h3>
<p>Model-Glue helps you build Object-Oriented ColdFusion applications based on the Model View Controller pattern. It&#8217;s designed to be easy to use and play well with others, like <a title="Tartan Framework" href="http://www.tartanframework.org">Tartan</a>.</p>
<p><a title="Model-Glue Framework" href="http://www.model-glue.com" target="_blank" rel="nofollow">http://www.model-glue.com</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h3>onTap</h3>
<p>The onTap framework is an Open Source Framework for quickly developing powerful web applications using Adobe&#8217;s <a title="Adobe (Macromedia) ColdFusion" href="http://www.macromedia.com/software/coldfusion/">ColdFusion application server</a>. The framework itself bears a marked resemblance to the recently buzzy <a title="Ruby on Rails - open source web framework" href="http://www.rubyonrails.org/">Ruby on Rails</a>.</p>
<p><a title="onTap Framework" href="http://www.fusiontap.com/" target="_blank" rel="nofollow">http://www.fusiontap.com</a></p>
<h3>TheHUB</h3>
<p>TheHUB, like other application development frameworks, utilizes the notion of a central hub template that all requests for the application pass through. That cental hub is the point or place within the application that the processing of all code hinges upon. The code simply checks for a query string and then reads the parameters passed to handle template loading and screen rendering.</p>
<p><a title="TheHub Framework" href="http://www.codesweeper.com" target="_blank" rel="nofollow">http://www.codesweeper.com</a></p>
<h3>Tartan</h3>
<p>Tartan is a command-driven service framework for ColdFusion. It was built to help produce the service layer within a larger application architecture which relies on strict separation or layering of functionality.</p>
<p>All access to the underlying business logic is controlled by public services which are available locally as <abbr title="ColdFusion Components">CFCs</abbr> and remotly via Flash Remoting and <abbr title="Simple Object Access Protocol">SOAP</abbr> web services. A service can be composed of any number of commands, each of which implements a discreet operation within the application. These contain the core logic for the application. Commands can communicate with databases via <abbr title="Data Access Objects">DAOs</abbr>, manipulate values received from the client, execute other commands and even communicate with services available on other remote servers.</p>
<p>At the center of Tartan are 6 Core classes : LocalServiceProxy, LocalService, Command, <abbr title="Data Access Object">DAO</abbr>, ValueObject and ExceptionHandler. They provide most of the functionality of the framework, and must be extended by the application developer.</p>
<p><a title="Tartan Framework" href="http://www.tartanframework.org" target="_blank" rel="nofollow">http://www.tartanframework.org</a></p>
<h3>ColdSpring</h3>
<p>ColdSpring is a framework for <abbr title="ColdFusion Components">CFCs</abbr> (ColdFusion Components).</p>
<p>ColdSpring&#8217;s core focus is to make the configuration and dependencies of your <abbr title="ColdFusion Components">CFCs</abbr> easier to manage. ColdSpring uses the &#8220;inversion-of-control&#8221; pattern to &#8220;wire&#8221; your <abbr title="ColdFusion Components">CFCs</abbr> together. Inversion-of-control provides many advantages over traditional approaches to assembling your application&#8217;s model. Also part of ColdSpring is the first Aspect-Oriented-Programming (AOP) framework for <abbr title="ColdFusion Components">CFCs</abbr>.</p>
<p><a title="ColdSpring Application Framework" href="http://www.coldspringframework.org" target="_blank" rel="nofollow">http://www.coldspringframework.org</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><em><strong>UPDATE:</strong> Since creating this blog post many years ago, two more frameworks have been released that require an honourable mention.</em></p>
<h3>ColdBox</h3>
<p><em>My New Framework of Choice</em></p>
<p>ColdBox is an event-driven conventions based ColdFusion Framework. It provides you with a set of reusable code and tools that you can use to increase your productivity, and it provides you with a development standard when working in a team environment. It makes use of an <abbr title="Model View Controller">MVC</abbr> (Model View Controller) design pattern and an extensive array of patterns for its operations such as Factories, Helpers, Workers, etc. And since it is based on <abbr title="ColdFusion Components">CFCs</abbr> it does not rely on an <abbr title="eXtensible Markup Language">XML</abbr> dialect.</p>
<p>NB. ColdBox also takes advantage of ColdSpring or Lightwire.</p>
<p><a href="http://www.coldboxframework.com" title="The ColdBox Framework" target="_blank" rel="nofollow">http://www.coldboxframework.com</a></p>
<h3>Lightwire</h3>
<p>Lightwire is a very lightweight Direct Injection (<abbr title="Direct Injection">DI</abbr>)/Inversion of Control (<abbr title="Inversion of Control">IoC</abbr>) engine for directly injecting dependencies into singletons and transient business object. The framework is optimised to create transient objects as well as singletons and allows for programmatic as well as <abbr title="eXtensible Markup Language">XML</abbr> configuration. It is the lightweight framework for people who&#8217;d like to put more logic in their beans and less in their service layer.</p>
<p><a href="http://lightwire.riaforge.org" title="Lightwire" target="_blank" rel="nofollow">http://lightwire.riaforge.org</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/coldfusion-frameworks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>onTap &#8211; Web Application Framework</title>
		<link>http://www.simonwhatley.co.uk/ontap-web-application-framework</link>
		<comments>http://www.simonwhatley.co.uk/ontap-web-application-framework#comments</comments>
		<pubDate>Wed, 19 Oct 2005 15:41:43 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[onTap]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Server Side]]></category>
		<category><![CDATA[web applications]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=13</guid>
		<description><![CDATA[The onTap framework is an Open Source Framework for quickly developing powerful web applications using Macromedia's ColdFusion application server.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.fergusonhouse.com/">onTap</a> framework is an Open Source Framework for quickly developing powerful web applications using Macromedia&#8217;s ColdFusion application server. The framework itself bears a marked resemblance to the recently buzzy <a href="http://www.rubyonrails.org/">Ruby on Rails</a>.</p>
<p>The <a href="http://www.fergusonhouse.com/">onTap</a> Framework can be downloaded at the following <acronym title="Universal Resource Locator">url</acronym>:</p>
<p><a href="http://www.fergusonhouse.com/?netaction=download">http://www.fergusonhouse.com/?netaction=download</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/ontap-web-application-framework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fusebox &#8211; Web Application Framework</title>
		<link>http://www.simonwhatley.co.uk/fusebox-web-application-framework</link>
		<comments>http://www.simonwhatley.co.uk/fusebox-web-application-framework#comments</comments>
		<pubDate>Wed, 19 Oct 2005 14:59:53 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Fusebox]]></category>
		<category><![CDATA[Fusebox application architect]]></category>
		<category><![CDATA[Fusebox architect]]></category>
		<category><![CDATA[good manager]]></category>
		<category><![CDATA[machinery]]></category>
		<category><![CDATA[Magicbox (FLIP) Twin 1-Line Cordless Phone]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sean Corfield]]></category>
		<category><![CDATA[Server Side]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web framework]]></category>
		<category><![CDATA[web-based application frameworks]]></category>
		<category><![CDATA[Web-based applications]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=7</guid>
		<description><![CDATA[Application developers face a daunting task: they must translate the often fuzzily-defined requirements for a new application into the rigid language of computers.]]></description>
			<content:encoded><![CDATA[<p>Application developers face a daunting task: they must translate the often fuzzily-defined requirements for a new application into the rigid language of computers. While the Fusebox Lifecycle Process (<acronym title="Fusebox Lifecycle Process">FLiP</acronym>) offers help in managing the project management aspects of creating a new application, what help is there available to developers approaching the technical challenges of creating and maintaining applications?</p>
<p>Application frameworks answer this question, offering pre-built (and pre-tested) code &#8212; a collection of services that can provide the architectural underpinnings for a particular type of application. Web-based applications are increasingly the choice for new application development in which the browser becomes the &#8220;universal client&#8221;. As web development matures, web-based application frameworks allow the developer to concentrate more on meeting the business needs of the application and less on the &#8220;plumbing&#8221; needed to make that application work.</p>
<p>Fusebox is, by far, the most popular and mature web framework available for ColdFusion and PHP developers. The architecture of a Fusebox application is divided into various sections (&#8220;circuits&#8221; in Fusebox parlance), each of which has a particular focus. For example, the responsiblity for ensuring that only authorized users have access to all or part of the application might fall under a Security circuit.</p>
<p>The Fusebox application architect defines these circuits, as well as the individual actions (&#8220;fuseactions&#8221;) that may be requested of it. When a fuseaction request is made of the application, the Fusebox machinery (the &#8220;Fusebox&#8221;) routes the request to the appropriate circuit, where the fuseaction is processed. This idea of encapsulation of responsibilities makes it easy for different functional circuits to be &#8220;plugged&#8221; into an application, making it possible to reuse code.</p>
<p>Within the individual circuit responsible for carrying out the requested fuseaction, the Fusebox architect specifies the individual files (&#8220;fuses&#8221;) needed to fulfill the fuseaction request. Thus, the Fusebox acts like a good manager, delegating tasks to appropriate departments where it is decomposed into individual tasks, each of which can be assigned to individuals to carry out.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/fusebox-web-application-framework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mach-II &#8211; Web Application Framework</title>
		<link>http://www.simonwhatley.co.uk/mach-ii-web-application-framework</link>
		<comments>http://www.simonwhatley.co.uk/mach-ii-web-application-framework#comments</comments>
		<pubDate>Wed, 19 Oct 2005 14:56:39 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ben Edwards]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Hal Helms]]></category>
		<category><![CDATA[Mach-II]]></category>
		<category><![CDATA[Server Side]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web-application framework]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=8</guid>
		<description><![CDATA[Mach-II is a web-application framework focused on easing software development and maintenance developed by Hal Helms and Ben Edwards.]]></description>
			<content:encoded><![CDATA[<p>Mach-II is a web-application framework focused on easing software development and maintenance developed by <a href="http://www.halhelms.com/">Hal Helms</a> and Ben Edwards.</p>
<p><a href="http://www.mach-ii.com/">http://www.mach-ii.com</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/mach-ii-web-application-framework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

