Microsoft's Expression Web product, the descendant of Vermeer Technology's FrontPage Web site editor, was discontinued nearly five years ago. Upon its demise, Expression Web 4 (EW4) was posted on Microsoft's Web site as a free download and is still there. (As of July 2020, the download was removed from Microsoft's site but can be found at the WayBack Machine.)
I'm still using it to build Web sites. (So are a lot of others.)
Most PHP developers will consider it heresy that I'm not using a "serious" tool, like JetBrains' PhpStorm IDE, to do my work. They have a point. I have my reasons.
Let's get one thing out of the way right away. Am I somehow locked into using Expression Web? Is that the reason I'm still using it?
Dynamic Web Templates
The answer is yes. I am using a feature introduced in FrontPage (FP) 2003 called Dynamic Web Templates (DWT), a feature also supported to this day by Adobe Dreamweaver. Despite the name, DWTs are static templates that EW4 knows how to manage. It's a very simple idea - pages are attached to templates and whenever the master template is updated, so are all the attached pages.
The key disadvantage of this kind of template comes with sites having a very large number of attached pages. A template change means that each page must be updated and then uploaded to the live site. The update process is dependent on the speed of the developer's computer; ten years ago that would have been painful for a site with several hundred attached pages but today it's a minor inconvenience. The same is true for uploading; ten years ago I had DSL and now I have FIOS, 100 times faster.
The truth is that the sites I build don't have hundreds of pages. A more typical number is 25, sometimes less. Why? Because the sites I build are driven by a content management system (CMS). A site with hundreds of product pages actually has one or sometimes two actual PHP-driven, template-attached pages that serve all product-related pages. For example, product X and product Y are displayed using the same page. It is back-end CMS code that determines the content of the page at any given time.
It is also the case that my DWTs do not have a lot of content. Instead of placing all the code for a main menu into the template, the template includes a PHP file that contains the code needed to emit the menu. Changes to the menu are made to that file, not the template. This means the template changes very rarely. And that means the primary use of the template is to create new pages when necessary.
This may seem old-fashioned but it is very simple and very effective. It has a singular advantage over truly dynamic template systems (e.g., Smarty) in that all the template work is done with EW4, at "compile" time. With a dynamic system, the work is done in real time, on every served page.
I am not really locked in to DWTs. I could easily adopt one of the popular template systems or build my own. I just don't see the need to bother.
The single-folder organization is helpful because backups and archives are as simple as they could be. More important, FP/EW know the scope of a project and can thus perform operations (such as searching) within that strict context. For straight HTML/CSS/JS sites (i.e., not heavy PHP), EW4 understands that a CSS file applies to a given page, can preview the page, and can open files by clicking on their links in other files.
This is simple project management but it has proven itself for as long as I've been using FP/EW. It is vastly better than using a standalone editor with no project context and there are a lot of such programs. I rely on EW's handling of projects and, for now, do not want to walk away from it.
That said, a key feature of a programmer's IDE is extensive knowledge of the language(s) being used. This is where EW4 is weakest because, as a dead project, it is not getting updated as languages advance. EW4 knows about HTML5 and CSS3 to an extent but not fully. EW4 has IntelliSense for PHP but not for the most current versions of the language.
The fact that I continue to use EW4 tells you that I am getting journeyman's work out of the EW editor and could continue to use it as is. Nonetheless, my productivity is falling a bit because after building sites for so long I have a deep reservoir of code with hundreds of functions and classes and methods. I need better support for PHP than EW provides and I'll be writing about what I've decided to do in a following article.
I confess to a certain amount of laziness with respect to EW4. It meets most of my needs, is straightforward, and I'm very used to it. If I decided to do something differently, perhaps to abandon the DWT in favor of another method, I'd have to consider what that meant for all the sites I've deployed for clients. Those sites are running fine and it's very easy for me to install updates to my core software at any time, usually with no disruption. What would be gained by changing my approach now?
For the moment, at any rate, I plan to continue to use Expression Web as my central tool. What I will be changing is the editor I use. Because EW can launch an external editor for any file type, I can use a third-party editor to deal with PHP, the most important language I use and the one where programming productivity is crucial.
I only see one risk, a new version of Windows in which EW4 will not run. I am expecting this to happen at some point. I'll deal with the problem when it's a problem.