Uniting Microsoft Technologies with ColdFusion

    Wyatt Barnett
    Share

    I had the opportunity to attend CFUnited on Friday. Now, in previous years I would have not attended the event (save some of the parties), but things changed a lot this year. In a major change of tack, Microsoft had a major presence at the conference and put on a number of interesting sessions. Some highlights from my day there:

    Atlas + ColdFusion = Neato

    Atlas is a very powerful Ajax framework generally associated with ASP.NET. But Brad Adams’ keynote session, Developing a Better User Experience with Atlas, demonstrated how one can use Atlas’ JavaScript libraries with ColdFusion (or any other server-side technology). Now, I am not a CF guy, but Theo Rush is. He attended the session and thought that this interconnection had some potential. In addition, Brad has been kind enough to post the slides and the sample application. Check out this post for details.

    IIS7: Apache Killer?

    IIS6 is a very, very solid web server. But it is not without its issues. One of the most prevalent is that configuration generally requires one have root access to the box where the server resides, which is not really an option in many shared hosting scenarios. The other flaw in the system is that it is not the most extensible package. Yes, one can write ISAPI extensions and filters, but everyone I know who has written one has very little desire to ever go down that path again. I shall discuss extensibility below, but first configuration.

    An End-to-end overview of Microsoft’s New Web Application Server, IIS7, Drew Robbins explained how the next version of IIS will address these issues. In a radical departure from previous versions of IIS, one can manipulate the configuration in a human-intelligible Xml file. Furthermore, one can override web-server configuration settings in individual sites with each sub-site’s web.config file. Fear not server admins—you can specify what, if any settings, can be overridden down to individual nodes and attributes. And, if one does not want to delve into the Xml, Microsoft also provides a graphical interface to manage the server.

    Now, anyone who has deployed any significant ASP.NET application (or, come to think of it, anything significant to IIS), probably has spent a fair amount of time tracking down configuration differences between the development environment and the staging/deployment environments. Oftentimes while pulling out hair, and possibly drinking heavily. With IIS7 this will largely go away because one can embed the configuration settings with the application’s configuration. Kind of like how one can use .htaccess files to tweak apache for LAMP applications.

    These new features seem to be squarely aimed at some of Apache’s main strengths—having text-based, inheritable configuration files to ease maintenance and application-specific configuration issues. While also covering the one of the biggest weaknesses—one need to understand the gory details of the lengthy httpd.conf file to do much with the server.

    IIS7: Kiss My ISAPI Goodbye

    The other big new feature is that one need not delve into C++ to extend the server. Any site or virtual folder on IIS 7 can be extended by writing a class that implements IHttpModule and registering it properly with the server. I can see some neat uses for this, such as implementing visitor tracking on otherwise static sites with ease.

    This is not to say previously existing, functional ISAPI extensions are not going to be supported—they very clearly are. The entire demo today was shown using ColdFusion running on IIS using the current ISAPI extension.

    IIS7: FREB Is My Buddy. And Your’s Too.

    Probably the neatest feature was the builtin Failed Request Event Buffer (FREB). It allows an administrator (or developer) to define various criteria, such as Http response codes and page execution times, and log a plethora of information about those failed requests. There is one very neat feature specific to .NET applications: this event buffer can also log your custom trace events. I can see this feature being very handy when you are debugging some of those production-only race conditions.

    FREB, like just about everything in IIS7, dumps to an Xml file for easy parsing into whatever you use to analyze or track such things.

    Hey! I Wanna Play With IIS7

    Running IIS7 requires Windows Vista Beta 2. Unfortunately, the preview program is now closed so if you did not sign up, you are out of luck, at least for the time being.

    To keep up to date on IIS7 (or all things IIS), check out IIS.net.