Wednesday, April 25, 2007

9 ways ColdFusion 8 will rule web development

Taken from: http://www.downloadsquad.com/2007/04/24/9-ways-coldfusion-8-will-rule-web-development/

Ben Forta and Adobe are getting into full swing with ColdFusion 8 Scorpio Pre-Release tour. Last night Ben gave us in Seattle a taste of things to come. Here is why it will kick the tar balls out of everything else on the market.

  1. Built in AJAX widgets. Create AJAX windows, auto complete forms, calendar popups, grids, WYSIWYG editors, and much more. All using simple ColdFusion based tags and generating industry standard solutions such as Prototype and Yahoo User Interface Javascript.
  2. Native JSON support. ColdFusion components now know if they are called by a web browser and will return JSON formated data automatically. You can also create JSON packets directly or consume them and turn them into native ColdFusion objects.
  3. .NET (and Java!) integration. Pull in .NET objects and use them like native ColdFusion objects. Combine .NET and Java on the same page if you like. Easily the best web based middleware solution.
  4. Microsoft Exchange integration. Love it or hate it, most organizations use Exchange religiously. Now you can read and update email, calendars, tasks and much more. No change to the Exchange server is required.
  5. Flash based presentation builder. Combine HTML, Audio, Flash Movies, Images, and CFCharts to create spiffy flash based presentations on the fly. Just wrap your existing pages in CFPRESENTATION and you are on your way.
  6. Full PDF integration. Create, combine, update, and interact with PDF files using CFPDF and CFPDFFORM tags.
  7. Native image manipulation functions. Blur, sharpen, draw, rotate, stream to browser, and much much more. This finally brings ColdFusion's image support in line with PHP and other frameworks while keeping it so simple that even I could use it.
  8. Across the board enhancements. Improvements in security, speed, Flash Forms, Report Builder, and more.
  9. Administration API. Now you can access, audit, and snapshot all the information the server knows about itself. No longer is ColdFusion a black box. Audit long running processes, most frequently run queries, and bottle necks. SnapShot the server before making your change or doing a reset so that you can analyze potential problems later.
Admittedly I am a ColdFusion fan boy, but I know that it isn't for everyone. Still, ColdFusion is easily the BMW (both in price and in raw engineered quality) of the web application languages out there. With ColdFusion 8 it now becomes possible to build and integrate a vast amount of functionality with only a few lines of code. Imagine letting users quickly create their own presentation by uploading photos and editing slides using a WYSIWYG editor. Then, when they are all done, they can view and share it on the web via Flash or push it to a PDF file. ColdFusion 8 lets you wrap up all this up into a tight package using heavily documented yet extremely simple tags. No scripting required!
ColdFusion 8 Scorpio should land sometime in mid-2007. You know I'll be there.

WEBDAV: Creating Exchange objects with ColdFusion

Exchange Item Creator

Explanation

My workplace has a heavy investment in Microsoft Exchange. We also have a very heavy investment in ColdFusion. So, we've tried to set the two up on a blind date for years. This past year, we finally started to see sparks. It turns out that Exchange can be accessed with WebDav for the purpose of creating Exchange Items. With a little work, ColdFusion can communicate using WebDav. With a little more work, ColdFusion can create Exchange Objects.

read full article at http://www.numtopia.com/terry/code_exchange_item_creator.cfm

BEN FORTA: Scorpio Per Application Settings

Taken from: http://www.forta.com/blog/index.cfm/2007/4/24/Scorpio-Per-Application-Settings

ColdFusion users have long wanted a way to define settings per application, rather than server-wide. In truth, this is doable right now, just install multiple instances of ColdFusion an each instance gets its own CF Admin and own settings.

But, if that is not an option, then Scorpio will help, as I explained last night in Seattle. ColdFusion MX7 introduced Application.cfc as an alternative to Application.cfm. Application.cfc does everything that Application.cfm does, and added important new features (like methods that get executed OnSessionStart and OnSessionEnd).

To set application settings using Application.cfc, variables are set in the THIS scope. THIS.name to set the application name, THIS.sessionManagement to enable session state management, and so on.

In Scorpio, Application.cfc and the THIS scope can be used to define per application settings. For example, THIS.mappings is a structure which contains the currently defined ColdFusion mappings.

To set a mapping you just modify that structure like this:

<cfset THIS.mappings["MyStuff"]="c:\inetpub\MyStuff">

Or like this:

<cfset StructInsert(THIS.mappings, "MyStuff", "c:\inetpub\myStuff")>

To set the Custom Tag path you can update THIS.customtagpaths which is a simple ColdFusion list.

You can set the path like this:

<cfset THIS.customtagpaths="c:\inetpub\wwwroot\ben\tags">

Or use ListAppend() to add a path, like this:

<cfset THIS.customtagpaths=ListAppend(customtagpaths, "c:\inetpub\wwwroot\ben\tags")>

You get the idea. It's clean, simple, and highly intuitive. Which means you now have yet another reason to use Application.cfc.

I've forgotten the ColdFusion Administrator password. What can I do?

I've forgotten the ColdFusion Administrator password. What can I do?

In ColdFusion MX, open the file C:\Program Files\ColdFusionMX\lib\neo-security.xml. Alter

<var name="admin.security.enabled">
<boolean value="true" />
</var>

to read

<var name="admin.security.enabled">
<boolean value="false" />
</var>

Restart the ColdFusion MX Application Server service. You can then open the ColdFusion Administrator without being prompted for a password. Enter the new password twice, but don't check the Use a ColdFusion Password box. Click the Submit button and close the browser window. Edit the admin.security.enabled node in neo-security.xml back to true again and restart the ColdFusion MX Application Server service. You will then be able to access the ColdFusion Administrator by supplying the new password.

As a side note, I found that just ticking the Use a ColdFusion Password box in the Administrator just displayed a message saying "Unable to change password" and bombed me out. The procedure above seems to work fine, though.

In ColdFusion 5 Server and earlier, run regedit and go to to

HKLM\Software\Allaire\ColdFusion\CurrentVersion\Server

Change UseAdminPassword from 1 to 0. This will allow you to get into your ColdFusion Administrator without being asked for a password.

Remember to turn on password protection from the Administrator once you get in and change the password.

Installing CFMX7.0.2 on Win Vista with IIS7

This article takes you step-by-step through the process of installing ColdFusion MX 7.0.2 on a PC running the new Vista operating system and using Internet Information Services (IIS) 7.

There are points during the installation process that can and will give you trouble if you follow directions published prior to Vista's release. Therefore, special emphasis has been given to the information you'll need to get working with ColdFusion on Vista.

Who will benefit by reading this article?

ColdFusion programmers who develop and/or run CFM pages locally (including developing CFCs) on a Vista box and who use IIS7.

There are multiple versions of Vista. I am using Vista Business Edition. However, according to the documentation, Vista Home Premium, Ultimate, and Enterprise also ship with IIS 7. Check the Microsoft web site for more information about the Vista editions. I found the Help and How-To pages useful, too.

ColdFusion Server Configuration Choices

ColdFusion pages can be served up using

  1. Server configuration - installs ColdFusion MX 7 as a self-contained server.
  2. Multi-server configuration - installs ColdFusion MX 7 on JRun 4.
  3. J2EE configuration - packages ColdFusion MX 7 as a J2EE application for deployment on an existing J2EE server.

This tutorial includes a discussion of the first server configuration only. That is, the installation of ColdFusion MX 7 as a self-contained server.

Summary of instructions

To get ColdFusion MX 7 running on Vista and IIS 7 you need to do several things:

  1. Install the metabase compatibility component of IIS 7.
  2. Download and run the installation program, which is not entirely successful because it doesn't know how to deal with IIS 7. Fix up is done in the next two steps. In addition, there's a bug in Vista that you need to be aware of when you run the installation program.
  3. Get the missing .dll files.
  4. Configure IIS 7 mappings (for *.cfm and *.cfc files).

In addition, I've included a few notes about uninstalling ColdFusion at the end of the article.

<?cmx action="pagebreak"?>

Install the Metabase Compatibility Component of IIS 7

To use IIS 7 you'll need to install the metabase compatibility component. This component is not automatically installed since it's not used by IIS 7. It's there for backward compatibility. Check out this article for detailed information about the metabase compatibility component. However, before you get bogged down in that really long article, be aware that you don't need to know all the details to continue. You just need to make sure it's installed before you attempt the ColdFusion installation.

To install the metabase compatibility component:

  1. Go to Start > Control Panel > Programs and Features.
  2. Click Turn Windows features on or off.

    Control Panel > Programs and Features > Turn Windows features on or off

  3. The O/S will prompt you to confirm this action. The dialog, titled User Account Control, says Windows needs your permission to continue. This is a new Vista security feature. Click Continue.
  4. In the Windows Features dialog, make sure you have checks in all the boxes under Internet Information Services > Web Management Tools > IIS 6 Management Compatibility. You'll be asked to wait while the features are configured. The name is a bit confusing at first glance. Think of it this way: you are installing into IIS 7 a component that is needed by applications that ran successfully within IIS 6.

    Internet Information Services > Web Management Tools > IIS 6 Management Compatibility

Okay, now you're ready to start the ColdFusion installation.

<?cmx action="pagebreak"?>

Download and Run the Installation Program

  1. Get the installation executable from the Adobe web site. Save it to your disk and then double-click it.
  2. Click Run when you see the Open File - Security Warning dialog.

    Open File - Security Warning dialog

  3. The files are extracted ...

    The files are extracted

  4. Pick your language and click OK.

    Beginning the installation process

  5. The wizard starts. Click Next to continue.

    The install wizard starts

  6. Accept the terms of the licence agreement and click Next.

    Accept the terms of the licence agreement

  7. If you have a serial number, input it now or just select the 30-day trial the way I did for this installation. Click Next to continue.

    input your serial number or select the 30-day trial

<?cmx action="pagebreak"?>
  1. Now pick your configuration. The directions presented here are for the Server configuration. Click Next to continue.

    Select "Server configuration"

  2. Specify the sub-components to install. Click Next to continue.

    Specify the sub-components to install

  3. Specify the installation folder. By default, the directory is CFusionMX7 at the root of your C drive. Click Next to continue.

    Specify the installation folder

  4. Select the All IIS websites radio button. Click Next to continue. (Actually, it doesn't matter what you select here since the installer doesn't recognize IIS 7.)

    Select the All IIS websites radio button

  5. Specify the location for the ColdFusion MX administrator. Note that a bug in Vista causes the folder name to be wrong. Be sure to replace %SystemDrive% with C: (or whatever drive letter is appropriate to your installation). Click Next to continue.

    Specify the location for the ColdFusion MX administrator

<?cmx action="pagebreak"?>
  1. Enter an administrator password. Click Next to continue.

    Enter an administrator password

  2. Enter an RDS password. Click Next to continue.

    Enter an RDS password

  3. The next screen displays a summary of the configuration options you've specified so far. Click Install to continue.

    summary of the configuration options

  4. Even though the installer has some problems (because of Vista and IIS 7), you're informed that the installation is complete and was successful. You'll fix the problems manually (shown below). Click Done.

    The installation is complete and was successful

The wizard instructions say that to continue, you should go to http://localhost/CFIDE/administrator/index.cfm. However, that produces the following server error:

internal server error

The problem is that since the installer doesn't recognize IIS 7, it did not unpack the required DLLs and it did not configure IIS 7.

<?cmx action="pagebreak"?>

Get the Missing DLLs

So now we begin the manual work to correct problems encountered by the installer. Fortunately, Adobe has provided a TechNote that lists the steps to manually configure the web server connector. Unfortunately, these directions are for IIS 6 so you can't follow them verbatim. They give a good starting point, though.

  1. Open the TechNote and scroll down to the section titled Microsoft IIS 6 Configuration. (Note: there are several typos in the section you need to use. Most are missing spaces between words and filenames. Read their doc carefully. I've corrected the errors here, though.)
  2. Locate the wsconfig.jar file in the cf_root\runtime\lib\ folder. This JAR archive has a lot of files in it. You won't need all of them.

    cf_root corresponds to the folder you indicated in step 10 in the previous section. If you left the dialog set at the default value, the cf_root folder is C:\CFusionMX.

    Hopefully, you already have a utility that unpacks JAR files. If not, get something like WinRAR. The trial version is free for 40 days. Then is $29 (USD). If you use WinRAR, just drag and drop the files from the WinRAR utility to the appropriate directory. It's simpler to do it that way instead of using WinRAR's Extract to button because Extract to, by default, retains folder information, which you don't want.

  3. Extract jrun_iis6.dll and copy it to to cf_root\runtime\lib\wsconfig\.
    You'll find this file in the connectors\isapi\intel-win\prebuilt folder of wsconfig.jar.
  4. Create a new folder in cf_root\runtime\lib\wsconfig\ named 1 (the number one).
  5. Extract and copy jrun_iis6_wildcard.dll to the folder you just created (cf_root\runtime\lib\wsconfig\1). You'll find jrun_iis6_wildcard.dll in the connectors\isapi\intel-win\prebuilt folder of wsconfig.jar.
  6. In the cf_root\runtime\lib\wsconfig\1 folder, create a file called jrun_iis6_wildcard.ini. The file should contain the following:
    verbose=false
    serverstore=cf_root/runtime/lib/wsconfig/1/jrunserver.store
    bootstrap=127.0.0.1:51011
    apialloc=false
    ssl=false
    #errorurl=<optionally redirect to this URL on errors>

    Note that you'll need to replace cf_root as appropriate to your installation. For example, C:/CFusionMX7. Note the use of the forward slash rather than a back slash.

    In addition, be sure to use the correct bootstrap. The TechNote lists two values, one for MX 6.1 and the other for MX 7. The only difference is the port number. MX 7 uses port 51011.


  7. Create a file called jrunserver.store in the cf_root\runtime\lib\wsconfig\1 folder. The file should contain the following:
    proxyservers=127.0.0.1:51011

    Here again you specify the port number according to your version of MX. Port 51011 is used for MX 7.


The rest of the steps in this TechNote pertain to IIS 6 so you can safely skip them.

Next you need to configure IIS 7 to handle the ColdFusion mappings.

<?cmx action="pagebreak"?>

Configure IIS 7 Mappings


In this section you'll make some changes to IIS 7 so that it recognizes and knows how to deal with ColdFusion files. You'll need to add two mappings. One for ColdFusion components (*.cfc) and another for ColdFusion pages (*.cfm).


  1. Go to Start > Administrative Tools > Internet Information Services (IIS) Manager. (You'll get the security prompt "Windows needs your permission to continue" again. Click through it.)
  2. Double click Handler Mappings from the IIS area.

    Select Handler Mappings from the IIS area


  3. Right-click in the center area of the window and select Add Script Map... from the context menu that appears (or select the Add Script Map... link from the Actions listed on the right side).

    Add two mappings. Map both of them to the jrun_iis6_wildcard.dll that you unpacked and placed in the cf_root\runtime\lib\wsconfig\1\ folder (see step 5 in the previous section).

    Mappings for *.cfc and *.cfm files

    After you click OK in the Add Script Map dialog,

    Enable the ISAPI extension

    When you're done, the Handler Mappings list look like this.

    The ColdFusion mappings

    The newly added mappings get added to the bottom of the list but when you refresh you'll see the list sorted according to the values in the Path column.


You may have noticed that you're not using the jrun_iis6.dll that you extracted from wsconfig.jar and placed in the cf_root\runtime\lib\wsconfig\ folder. This is a bit of a mystery to many people. I found that it's not needed, though the Adobe TechNote says you need to put that dll in the wsconfig folder. My guess is that this direction is for IIS 6 only, which I didn't test.

<?cmx action="pagebreak"?>

Uninstall ColdFusion MX 7.0.2


When you uninstall ColdFusion you end up with some "turds" - this is, files that should have been deleted but weren't. That means you need to do the clean up manually.


  1. Initiate the uninstall by going to Start > Control Panel > Programs and Features.
  2. Select Macromedia ColdFusion MX 7 from the list and then click Uninstall/Change (or right-click ColdFusion to see the same option).

    Uninstall ColdFusion MX 7


  3. Upon completion, you'll see a dialog that says the uninstall completed but that several files could not be removed. All of them are in the CFusionMX7 folder (in other words, the cf_root).

    uninstall completed but that several files could not be removed

    (By the way, I installed on my D drive so that's why this screenshot shows my cf_root as D:\CFusionMX7.)


  4. Reboot your computer.
  5. Manually delete the the entire CFusionMX7 folder using the File Explorer.
  6. Lastly, you'll need to remove ColdFusion MX 7 from the program list you see when you go to Start > All Programs > Macromedia.

    Delete the folder to remove the item from the App Programs list

    To remove it, delete the C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Macromedia\ColdFusion MX 7 folder.