|Adobe ColdFusion 7MX|
Feature: Macromedia ColdFusion 7 latest version
upgrade and where it fits
For developers new to ColdFusion, it uses a tag language similar to HTML called CFML-ColdFusion Markup Language. So it is analogous to such popular server side web development tools as ASP, JSP and PHP. And in fact, ColdFusion helped lead the web development world into the 3-tier model logic back in the early 1990's where the presentation logic was moved to the server along with the backend database bindings and processing logic which then was served over HTTP and onto any client browser. In effect, ColdFusion acted as a simplified front end to access complex Web server and CGI logic.
This Web-based model has gained greater ascendancy as organizations need to deliver info anytime, anyplace and on any platform - Windows, Mac, Linux, and Unix. The open and standard Web interface makes this possible. It also helps that users have found the Web GUI interface easy to learn and remember how to use. Finally, the Web model is helped by the fact that the latest updates to program logic are delivered to one place - the server and then delivered just-in-time to each requesting user rather than the operational nightmare of having to keep thousands of client machines updated with the latest version of a smart client application.
The disadvantage of the Web model is that offline operations are difficult to do because most of the application's logic resides almost exclusively on the server. In addition, there are inherent network delays that make talking back and forth between client and server more time consuming than the rival smart client approach which delivers much of the logic to a workstation (Mac, PC, kiosk with embedded processor, etc). So the Web model has been working over the past few years to deliver ever larger chunks of application code to the client - but still centrally served in the just-in-time method. These chunks of code are applied to discrete operations like data form validations; delivery of reports; running UI components like dropdown calendars, tree lists, and menus locally rather than having to interact through the server as in earlier Web programs.
ColdFusion has helped lead the way in this distribution of more tasks down to the client - and those capabilities are enhanced in version 7. In addition, ColdFusion has also simplified access to the very scalable, reliable, and secure backend operations represented by Java JSP and J2EE servers and now Web Services. This is no small benefit as J2EE and Web Services coding can become non-trivial quickly. Finally, ever increasing bandwidth and the explosion of mobile telephones and other handheld connected devices has created an increasing demand for delivery of program interaction to these devices through SMS, WML, and other messaging frameworks. So it helps to think of ColdFusion as a front end tool that simplifies access to a wide variety of distributed processing resources. Certainly in the features of the new version 7.
Application Development Tools Divergence
Now some readers will say who needs another application development tool ? - we have too many already. It is Eclipse/JBuilder or Visual Studio - game over. Well, as in the Hertz TV commercial - not exactly. As has happened with software technology over the past 40 years, the bar has been raised again. And the old players, with their huge development IDEs, are seriously pressed to meet the new development demands for mobiles, offline/online and other embedded devices with tack on extensions. We have already mentioned the problems in the presentation layer as tasks such as validations and adhoc calculations are moved from server to client and back again.
Application development is in this flux again. The history of timesharing, file server, 4GL, CASE, client-server, Web server - and now SOA and ESB architectures among the high points is not helter-skelter but rather is the rational response to changes in technology and its economics over the past 30-40 years. As new technical and business opportunities present themselves, tools change or are replaced.
For example one of the major technical and economic changes is the huge market of embedded devices that are now getting connected. Mobiles and handhelds lead the way as embedded computing devices (which now exceed annual PC sales by 10 to 1) are empowered with ever greater bandwidth by means of 2.5G, 3G, and WiFI/WiMax initiatives. Also in the 5As(Anytime, Anywhere, ...) there is implicit but not stated an Any object requirement for new systems. Any object means more than the familiar text and numeric fields. Any object means adding to the mix objects like images, signatures and drawings; speech inputs and outputs along with rich audio; video and animations; spatial and location information plus many other objects. And of course it is not unfolding neatly according to any plans in Armonk, Helsinki, Redmond, or Tokyo. Who would have guessed that games and video would be the drivers in the mobile phone market ahead of location functions or bare bones speech enablement ?
Macromedia comes to the table with ColdFusion 7 and argues rather effectively that their tag-based, front-end experience plus cross platform development and delivery capabilities puts them in a neat position to deliver the new and enhanced application development environ. And ColdFusion 7 delivers better object and forms handling with the Flash form option including development extensions for Dreamweaver Mx 2004. It also touts better reporting with a new visual banded report writer tool which can now deliver to Adobe PDF and Flash Paper as well as HTML pages. Finally, ColdFusion 7 adds important support for SMS-based mobile text messaging and IM-Instant Messaging support. In sum, ColdFusion is making some strong steps into the new 5A's application development world.
The New Feature Details
In addition there are at least a half dozen improvements to existing capabilities:
CFFORM: New Input Capabilities
XForms on the other hand, separate logic from presentation allowing stylings as well as form functionality and validation to be shared and reused even across projects. In general form and parameter validation has been significantly enhanced through new Dreamweaver extensions. As well these extensions simplify the form design process in a fashion that will be familiar to Flex developers. However, this is still not the drag and drop Visual forms designer developers may be used to from Visual Basic, PowerBuilder or JBuilder experience - but reserve judgment until you try it. Cold Fusion 7 removes a lot of the tedium of positioning, alignment, and styling changes. Particularly attractive is the ability to apply stored and reusable skins that apply a look and feel.
However, there is some concern about bridging between classic CF and the
new Flash Forms implementation that only detailed testing with the final
product will bring out. But clearly Macromedia has boosted not just ease
in forms design; but also easier backend connectivity to databases and Web
Services. look to our follow up review to spell out how this plays out.
With version 7, ColdFusion has two ways of generating reports - dynamically with the traditional COLD Fusion tags and methods or with the new Windows-only Visual Report designer that creates a .CFR report file that can be called with ColdFusion tags and included in various output. Of course as alluded to at the top of this review, the various outputs includes PDF and FlashPaper files. And because the output type is a simple one attribute setting, switching from Excel to flash to PDF will be trivial.
Now the Visual Reportwriter is attractive because it appears to be a free
stand alone product that allows developers familiar with Crystal Reports
or other page layout report writers to create rich reports. This includes
summary and sorted groupings and the inclusion of charts and plots in the
reports. And as noted it is simple to redirect report output from HTML to
PDF or Flash.
The downside to data access in ColdFusion is the lack of an organizing framework
like ADO.NET in ASPX or JDO in some JSP providers. We have seen mixed results
with such frameworks so only further test will tell how Cold Fusion compares
with the traditional server-side tools.But again it is evident that Macromedia
has added significant report writing flexibility in this upgrade.
And making development for SMS simpler can have large payoffs in such applications
as event polling and surveys where cellphones are used to respond to presenters
questions. Or event notification such as warehouse shipment arrivals or availability
of standby seating are a natural. And of course sports scores, stock market
quotes, and bank account queries are all part of the potential application
Again Cold Fusion has a template for both protocols and testing emulators so that an IM application can be proven locally before being expanded to system wide testing. In addition, Macromedia has supplied some example implementations that show how IM can be exploited. Finally, the templates them selves can be extended for specific needs.
In fact, this is the third key capability in ColdFusion 7's Event gateway implementation - users can build their own. customized gateway protocols. ColdFusion 7 provides the basic asynchronous messaging mechanism, which can be used with many kinds of event or messaging resources. As noted above ColdFusion provides complete application templates for SMS and two instant messaging protocols. But it also has lightweight sample gateways for Java Sockets with TCP/IP , JMS-Java Messaging Service, and also various FileSystem notification services. Java savvy developers can use these examples to develop their own protocols that can then be called directly from ColdFusion
In sum, ColdFusion 7 provides a front end to Any Device connectivity. But in addition, the program provides the flexibility of third party or roll your own protocols. This is an attractive addition to Any Device capability - especially given that Flash and PDF are available in other improved CF modules such as CFREPORT, CFDOCUMENT, and CFFORM. Both Flash and PDF allow not just cross platform but increasingly cross device support. Also both provide standalone, offline runtimes so some functionality can be delivered offline to mobile workers or anytime and anywhere users.