ColdFusion 10 - Wish List

Oct 08, 2009

I did this for ColdFusion 9 while it was under its initial development, and even though 9 just came out earlier this week. It's time again to reflect and come up with new features for ColdFusion 10 (codename Link). The team at Adobe will soon be compiling their own list of features, so this is the time to pitch your idea. Feel free to comment to this and add anything I may have missed.

While attending the CF Unconference at Adobe Max, there were several times where we sat around and were brainstorming on new features. This is the list I took from my notes plus some additional items I'm adding in.

General Items

  • Server-side Actionscript support
  • Incorporate Omniture capabilities and features
  • Message queue feature
  • Be able to call a CFC from Java and to have a CFC be able to extend a Java object
  • Queryparam functionality for LDAP calls
  • Multiple datasource support in ORM
  • NTLM support


CF Admin or Monitor features

  • The ability to link RDS and CFAdmin users to LDAP (or Active Directory to be more specific)
  • Decouple CF Monitor from the main CF Process so it can properly run while the server is experiencing problems
  • Be able to toggle off deprecated tags and functions in the cfadmin
  • Proxy server setting in CFAdmin to route http calls etc. through a proxy.
  • Thread limit per application (or sandbox)
  • Better Log viewer in CFAdmin, also include runtime logs
  • Better updater for CF updates and patches


CF Builder

  • Linux support for CF Builder
  • Load Tester in CF Builder


My particular requests not already listed above

  • CFAdmin should be running entirely off the adminapi CFCs. It's currently not which creates some interesting disconnects between the two.
  • Enhance VFS support for zip files, ftp, S3 cloud
  • Better installation process (development server versus production server, etc)
  • Change the default client variable storage from registry to either cookie or derby
  • We have Sharepoint and Exchange integration - what about LiveCycle and InDesign Server integration?
  • Have a cachedUntilChanged in the cfquery tag
  • Better internationalization support
  • Perhaps a lite version of Flash Media server bundle in with CF Server
  • Call a CFC method with cfschedule without using a URL path (just via component path)
  • Incorporate JHOVE or similar project for file validation - http://hul.harvard.edu/jhove/
  • Integration with the Adobe Collaborative Services (basically be able to drop in whiteboard, video camera, etc. with a cf tag call)
  • CFgroovy - Barney Boisvert's project should be a part of the language. Be able to inject python, java, groovy or php code into a cfml page.
  • Barcode generator
  • Support for cfant tag and also subversion support
  • DNS groper
  • A better wysiwyg - Adobe should be able to build a better editor than FCKeditor

 

Items Adobe has said so far they will address in CF10

  • Reporting features
  • Rich media
  • Additional support for Cloud Services


Items Adobe is addressing within the life of CF 9

  • Amazon AMI pricing and support

Comments

charlie arehart

charlie arehart wrote on 10/08/09 7:03 PM

Thanks for sharing, John.

I'm curious about "Be able to call a CFC from Java". When that was discussed, did anyone mention the available CFCproxy java API?

It was added in 7.01, but sadly remains undocumented. Ben Forta did the closest thing to it, at http://www.forta.com/misc/cfcproxy.htm. Now, to be clear, this is about calling a CFC from a java app running in the same address space as CF. If someone wants to call one from outside, they'd need to call it as a web service (or other kind of cross-server call).
John Mason

John Mason wrote on 10/08/09 7:15 PM

Yep, naturally that came up as well as Mark Mandel's work. Like with several of the items listed there may be an independent or undocumented solution but is not actively supported or documented by Adobe. Another example is cfant. I believe the desire here is to expand this ability.
Jake Munson

Jake Munson wrote on 10/08/09 7:25 PM

I add a +1 to all of these:
-Incorporate Omniture capabilities and features
-Be able to toggle off deprecated tags and functions in the cfadmin
-Better Log viewer in CFAdmin, also include runtime logs
-Better updater for CF updates and patches
-Linux support for CF Builder
-Enhance VFS support for zip files, ftp, S3 cloud
-Change the default client variable storage from registry to either cookie or derby
-Have a cachedUntilChanged in the cfquery tag
-Incorporate JHOVE or similar project for file validation
-Support for cfant tag and also subversion support
-# A better wysiwyg - Adobe should be able to build a better editor than FCKeditor
Dan G. Switzer, II

Dan G. Switzer, II wrote on 10/08/09 8:30 PM

I'd also love to see CF add better XSS integration integration. The OWASP AntiSamy project would be a wonderful OS project to integrate into CF:

http://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project

Essentially it allows you to parse a string and remove potential XSS attacks.

I wrote a blog entry a while back showing how to use AntiSamy in CF:

http://blog.pengoworks.com/index.cfm/2008/1/3/Using-AntiSamy-to-protect-your-CFM-pages-from-XSS-hacks

It just seems like with increasing XSS attacks out there, that implementing some native functions for cleaning out user input would be nice.

CF is really lacking in good XSS tools and there really should be a robust solution for this in CF. Too many people are implementing WYSIWYG controls on their websites, without properly checking that input to make sure it's safe from various XSS vector attacks.

(NOTE: I don't see this as anything automated, but available as functions/methods within the language for the programmer to use to clean input.)
Marcel

Marcel wrote on 10/08/09 8:45 PM

I personally think server-side javascript is a must have feature instead of ActionScript, what a selling point to be able to write all your field validation in one language and to be able to do DOM manipulation server side using jQuery (which is the fastest growing language on the planet according to what I saw on Google stats the other day).

I know this could be hacked together using Rhino but I would like that work done by CF, personally I'd like to see Server.js and Application.js supported! Perhaps a CFJS server specification working group as well as a CFML one.
Russ Michaels

Russ Michaels wrote on 10/09/09 5:35 AM

I would also like tosee the ability to completely disable client storage (registry) so that it cannot be overidden through code as this can cause major server problems when a client uses registry and fills up the server memory.
Adam Cameron

Adam Cameron wrote on 10/09/09 3:06 PM

Have you guys raised all these enhancement requests via the official Adobe channel for doing so? That way rather than "vote" for the issues on someone's blog (or a variety of blogs), one can vote on the system in which the votes actually mean something.

CF:
http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html

CFB:
http://cfbugs.adobe.com/bugreport/flexbugui/cfbugtracker/main.html

If you *do* raise an E/R, it'd be good to publicise what the reference number is, and encourage others to go vote if they agree.

It's like the difference between having a conversation with your mates @ the pub about who should be president, or actually voting in the election. Not that there's anything wrong with having a conversation with your mates @ the pub!

--
Adam
John Mason

John Mason wrote on 10/09/09 3:26 PM

Yep Adam. I'll submit them through the official channels to Adobe. It feels weird to submit it through their current Bug tracker since these are new version requests, but it may just be because it doesn't have the JIRA look and feel.

At this point, this is certainly the conversation level of things. I wanted to compile a good list with discussion (and even counter points) to provide some context for the folks at Adobe.
Adam Cameron

Adam Cameron wrote on 10/09/09 3:55 PM

Cool. Yeah, the new bugtracker needs some work, but it's a good start.

I do stress I was not suggesting you shouldn't be discussing it here, or other people doing the same on their blogs; just that this sort of thing should be raised directly with Adobe *as well*.

And certainly the current bug tracker UI is not very good at promoting DISCUSSION on bugs/enhancements, because the comments for a bug are hidden away on a different screen. And I doubt it's indexable by external search engines, either. So blog discussions like this are invaluable resources.

I'm also trying to get awareness of the new public bug tracker increased on the whole, because the more it's used, the more seriously Adobe will take it.

--
Adam
TJ Downes

TJ Downes wrote on 10/09/09 4:49 PM

Not down with the server-side AS built into CF. I believe this should be a separate application server, built from the ground up, without the legacy codebase of ColdFusion.

Otherwise, +1 on these features.

I'd also like to see:

Native integration with IIS7. This ISAPI stuff has to go. http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=73935

CFCs as a single compiled class, rather than 1 class for each method.

CFC instantiation needs to become MUCH faster. CF is still a dog, even with CF9, when trying to do a "pure OO" project.

Allow use of Java/Groovy model when serializing/deserializing via AMF.
jim collins

jim collins wrote on 10/09/09 5:30 PM

I'd like to be able to do :

var a,b,c,d = 0;
John Mason

John Mason wrote on 10/09/09 7:24 PM

This may seem a small detail to some but it's big headache for those of us writing articles and howtos. The directory pathing is different between the various install options of CF. For example, the standard install reflects the old pre CF6 days. The multi server JRun install is more in line with way Java servers work. There was a request at the 'Meet the Team' session at Max to standardize this across all install versions. Basically, make the standard install have the same pathing as the multiserver. I missed it in my notes, but thankfully I just ran across it again today and remember it needs to be added in.
Snake

Snake wrote on 10/10/09 7:11 AM

Sandbox paths also still do not work as per the docs.
According to the docs you can enter <path>/* to allow that path and all sub dirs and files, this however has never worked, you must enter 2 paths
<path>/
and
<path>/-
Eric Hynds

Eric Hynds wrote on 10/14/09 12:27 PM

If the maxrows attribute or limit keyword are used in a cfquery, I would like to see a key in the "result" structure for the total number of rows that would have been returned. Invaluable for server-side pagination.
John Mason

John Mason wrote on 10/17/09 9:19 AM

@Jim - there is assignment chaining in CF9
jim collins

jim collins wrote on 10/17/09 4:22 PM

Thanks John, I must gave forgotten.
Marcel

Marcel wrote on 02/04/10 3:18 AM

I was thinking that it would be nice if there was a good workflow engine added, something powerful enough to make BizTalk look lame would be nice.

A workflow designer or some way to really take advantage of CF as a Business Services BUS in a major way making it 1000% easier than dealing with BizTalk.

Combine that with a built in Hudson server for continuous integration and MOST IMPORTANTLY a freaking code analyser that can take in preferences and report back if a developer is not adhering to company code style guides!! Now THAT would be freaking awesome!
Kurt D

Kurt D wrote on 05/20/10 10:35 AM

Why have 10 step procedures for installing security updates and patches?

+1 -Better updater for CF updates and patches
Reinhard Jung

Reinhard Jung wrote on 10/14/10 8:35 AM

How about supporting html5 within cfInput, like <cfinput type="url" />?
Kurt

Kurt wrote on 02/11/11 11:58 AM

Another CF patch day which means about 30 minutes of time per server to apply the security update. I really hate Adobe's tedious directions to apply patches.

Even worse, I don't want to upgrade to CF 9 because right after I do, I'll have to manually install a bunch of security fixes. My CF8 install is already updated with current patches.

Write your comment



(it will not be displayed)