Uniting Microsoft Technologies with ColdFusion

Tweet

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.

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • http://www.t3projects.com t3projects

    yeah…Atlas is not the coolest on the block. Personally Scriptaculous with Prototype is way better along with Mochikit.

  • http://www.dotcomwebdev.com chris ward

    I run my .net 2.0 apps on Apache 2.0 for the main reason of wanting mod_rewrite… and it works a treat, but then I certainly would like to get everything onto a single platform

    any updates on mod_rewrite clones for IIS?
    Cheers!

  • wwb_99

    @Chris: There is ISAPI rewrite, but I would avoid any non-.NET url rewriting for .NET applications, it can have interesting effects on postback & the viewstate.

    Within the .NET request pipeline, one can apply url rewriting. The main trick is that it only happens if the request is handled by ASP.NET. One can make wildcard mappings on IIS6 if need be.

  • Communicate

    I hate CF… I am a big fan of macromedia (yikes! adobe!) products but I just can’t bring myself to develop in CF…. I am a php/mysql fan, and I think under almost ALL circumstances I can justify php over asp/.net/cf/etc

  • marsh13

    I love CF, and I am not that great at it either! But I have re-built my companies OsCommerce application in CF to be user friendly in less time than it took the developers to build all the funtionality into OsC. I did this using II5 as my server, so I can’t wait to try II7.

    And if you haven’t used CF, try it, you just may like it!