Modern Software Experience



I have used FrontPage in the past. Never liked all the proprietary extension, and its penchant for modifying your carefully crafted HTML, but I did like the multiple windows editing and the colour-coding. I’ve often used just as an HTML editor, ignoring all its proprietary features.

two replacements

FrontPage is dead. Microsoft has not one, but two replacements; Expression Web and SharePoint Designer. These are not two entirely different products, there is some overlap, but they have been created with different audiences in mind.

As the name suggests SharePoint Designer is really a tool aimed SharePoint specialists, something I am not. I gravitate to Expression Web not only because it supports XHTML and CSS standard-based web pages, but also because it is part of Expression Suite.

Expression Suite

Now, there is plenty of proprietary stuff in that suite, and it is Microsoft version 1 product, so there are likely to be rough patches. However, Microsoft is positioning Expression Suite as a serious suite of web authoring tools.
The introduction of a entire suite reflects Microsoft’s desire to become a major player in the web authoring market. and that in turn implies commitment to continual improvement of the suite.


advertised features

Two advertised features won me over to try Expression Web as a web authoring tool. First of all, it installs locally, no network required, and it does not require me to install anything that isn’t in Windows XP SP2 already. Secondly, it promises to produce standards-compliant XHTML and work with CSS, so if things don’t work out, switching to another web authoring tool shouldn’t be too hard.


Microsoft hands out 60-day trail CDs of Expression Web and DVDs for Expression Studio, but these CDs do not come with a registration key. You must visit the Microsoft web site to obtain a Free Trial Product Key. The download page for Microsoft Expression Web lists Microsoft .NET 2.0 as a requirement, but the CD wants you to install .NET 3.0.

.NET 3.0 required?

You might guess that it is not really a requirement. and that Microsoft just included the latest version of .NET on the CD, and thus creates the misleading impression that version 3.0 is needed. Some quick research turned up that version 3.0 is not requirement for Expression Web itself, but it is a requirement for Expression Blend, and therefore for those about to install the entire Expression Suite. I already had .NET 3.0 installed, and was not about to try with .NET 2.0, so it did not matter to me, but the lack of clarity is not praiseworthy.

webpage-based install

I do not like the product’s webpage-based install that wants you to start applications from a web page either. Not only is any serious browser sure to pop up dialogs when you try to run a program, but what the heck? This is a Windows applications, for Microsoft Windows, created by Microsoft, so just why isn’t Microsoft simply using its own Windows installer technology? Who let this product get away with this non-standard install?


I decided to customise the features before I installed, to make sure I got the whole package instead of the just the default features, so that I should not be asked to insert the CD again later. Once I had done that, the rest of the install was uneventful. Perhaps a bit too uneventful, as my search for a desktop shortcut proved in vain.
Tip: You can create one yourself, link to \Program Files\Microsoft Expression\Web Designer\EXPRWD.EXE.

Getting Started

default HTML editor

The first time you start Expression Web, you must activate the 60-day license or enter a product key for the full
version. Every time you start it, it complains about not being your default HTML editor, until you decide it is, or turn the check off (Tools | Application Options..., General Tab, uncheck "Check if Expression Web is the default editor for pages").

not all that different

I did not bother reading any Getting Started guide, or anything like that, but dove right in. A quick perusal of the menus and layout confirmed the expectation that the user interface was not all that different from FrontPage.
There is the odd item that jumps out you, like the "Preview in Browser" menu item.

Preview in Browser

Someone had taken to trouble to make the "Preview in Browser" menu item work right, no user setup required. Expression Web had already discovered Internet Explorer 7, NetScape Navigator 8 and Firefox 2.0, and had submenu items to preview pages in these browsers at 640 x 480, 800 x 600 or 1024 x 768 resolution. Somehow, Opera 9 was missing from the list, but it was easily added.


The File | New menu offers several layouts to choose from. Expression Web still supports frame-based layouts and being a Microsoft product, it naturally supports ASP.NET-based pages, but there is a small collection of CSS-based layouts too.
You can choose to make a new site instead of just a new page. You can go for an empty web site, a template-based one or run the import wizard. Whatever you do, you need to pick a directory on your local hard disk.


defective extension support

Expressions Web does not seem to know what it is doing. When I try to save a page with the *.xhtml extension, it creates an *.xhtml.htm extension. Sigh.

To make Expression web usable for standards-based work at all, two things need to be done. I need to upgrade its templates to XHTML 1.1 and I need to get it to recognise the *.xhtml extension.
In other words, I need to delve into the details of this program to fix basic Microsoft mistakes already, before I’ve even begun to explore its features. So much for the vaunted standards support.

There is an Application Options dialog box. It has several tabs. The last tab not only shows all supported extensions (a list from which *.xthml is missing), but also allows you add extensions. Alas, that is a list of extensions for FTP only. There seems to be no way to associate Expression Web editors with the *.xhtml extension from within Expression Web itself.

So,I start up RegEdit. Sure enough, there is a whole list of extensions under the
HKEY_CURRENT_USER\Software\Microsoft\Expression\Web Designer\12.0\Mappings key.
When I add xhtml, it does not immediately show in Expression Web, so I restart it, but it still doesn’t show up.
I try editing "htm html dhtml dwt hta htc jhtml pht phtml shtm shtml stm ssi" to "htm html dhtml dwt hta htc jhtml pht phtml shtm shtml stm ssi xhtml" instead, but that does not work either. Perhaps the actual list of supported extensions is hardcoded into the application.

partial solution

There is no need to pull out the hex editor though. After a little bit of experimenting, I found a way to make Expression Web support the xhtml extension.

If you rename a *.xhtml.htm file back to *.xhtml extension in Explorer and then pull the context menu on it in Expression Web, it will not show Expression Web as an option. But if you choose "Open with...", and then "Choose Program...", you can choose Expression Web, and the next time you pull up the context menu, it does offer to open in the file Expression Web. In fact, if you just choose open, for example by double-clicking, it will open in Expression Web. Even better, when you save it again, Expression Web does no longer change the extension.

However, every time you restart Expression Web, it fails to load the file. It complains about not being able to create a temporary file. You can get it to work again, by renaming the file to have a *.htm extension, opening it,
and rename it back to its proper extension. Perhaps there is an even better way, but this is not a smooth experience. Not exactly a smooth experience.


That takes care of the proper extension. Now, let’s see if we can make Expression Web support proper XHTML templates, not that wishy-washy XHTML Transitional stuff.

It is important to understand the difference between templates and themes. Templates define technology and layout, themes define the actual look.

I started by exploring the templates directory, but perhaps that is not necessary. Just bring up the page editor options, go to the authoring tab, and select "XHTML 1.1" from the Document Type Declaration drop down list.
That is the doctype Expression Web will insert in new pages. There is also an option for secondary schema, that is what Expression will use when no doctype is present. It is best to set that to XHTML 1.1 as well. The CSS support already defaults to CSS 2.1, which is still the latest official version.


These seem to be application-wide settings, not project-specific settings. You can bring up the page editor from the File | New dialog box that lets you select templates, but that hardly seems good enough.
The worst of it is that even after changing the settings and restarting Expression Web, and double-checking the settings, Expression Web keeps generating the XHTML transitional doctype for new pages. It turn out that the XHTML setting is only applied when you choose to create a new HTML page, not if you create a page based on CSS templates. Sadly, those templates are hardcoded to use XHTML transitional.

Dynamic Web Templates  

Expression Web supports Dynamic Web Templates (DWTs) like FrontPage. These provide consistency to all pages on a web site. Sure, but when you use CSS to provide that consistency, what benefit, if any, does DWT
get you? Doesn’t using CSS make it unnecessary to use DWT? Microsoft’s documentation does not provide a clear answer to that obvious question.

The short answer is this: CSS is for layout, DWT is for content. Sure, you can add content through CSS, but generally more convenient to have content like a header, the menu and a footer on some master page, and have any changes to that template propagated to all pages on your web site.

When you google for Expression Web templates, you quickly discover that there are pages offering ready-made templates, with varying prices and licenses attached. That’s good to know I guess, but how to make your own?

You cannot directly create a new template. Instead, you create a new one-page website and then save as template. It seems to be important to do this with Expression Web in default layout. I do not know why, but at least it is easy to make it so: just choose Task Panes | Reset Workspace layout. Then you create a new web page based on an existing template, make some modifications, and then finally save the result as a Dynamic Web Template.

template modifications

Expression Web does not come with an XHTML 1.1 template. I had to create my own by modifying an existing template.

My first modification was to change the doctype. Browsing Expression Web’s features, I had come across the code snippets. The doctype for XHTML 1.1 is pre-configured as code snippet "dtx11". Code Snippets are not like AutoText, just typing dtx11 does not automagically expand into the desired doctype. You must hit Ctrl+Enter and can then select the code snippet from a list.

So, I replaced the doctype, and added an xml:lang attribute to the html tag. I also noticed that the Microsoft templates lack the XML prolog. Microsoft may have omitted it on purpose, because of Internet Explorer issues. I added an XML prolog for full compliance.
The Microsoft template contains the infamous text/html content type, which I replaced with the correct application/xhtml+xml content type. I added a few more meta tags, such as author and keyword, and defaulted the language to English.


When I tried using Expression Web, I soon noticed that you have to be very careful copying & pasting from Word. Expression Web tends to inserting proprietary Office HTML, and it is a real pain to have to remove that again. There seems to be no option to make Expression Web understand that you do not wan the Office HTML. There is no setting to restrict Expression Web to standards-based pages. You have to know what you are doing.


There are problems with many things. Take inserting a picture. To add a logo to a story, I download one from the organisation’s web site to my hard disk. I then clicked the picture button on the toolbar to add it, but the newly downloaded picture is not in the File Open box. I discovered that you actually have to refresh the File Open dialog box to see the picture! Then, when I insert it, Expression Web immediately hardcodes the image sizes, in defiance of the CSS for layout principle. You can clean up after Expression Web by removing these of course, but that is yet another step.
On the plus size, you do get a dialog that prompts you for an image description, but there is an option to not show that dialog. That option is so wrong. It encourages users to ignore accessibility.

It sure feels like no one bothered to test the Expression Web user interface. Expression Web should default to not coding the sizes, and offer an option to insert it on the first tab of the dialog. Instead, it insert the sizes without asking and makes you navigate to another tab to remove it.

If I decide to float an image flush right, Expression Web creates a new style you. Once you have your own style, you can apply it, but don’t think Expression Web will ask you whether you want to use that style later. If you use its WYSIWIG interface to move an image again, Expression Web will bluntly create a new style again.
If you drag or resize anything, Expression Web does not apply an existing style and will not add a style to your stylesheet either, but apply inline styles instead.
Expression Web really gets in the way when you try to develop a CSS-styled liquid layout.


A big problem with Expression Web is that it crashes easily. It crashes for no apparent reason and then restarts without a project selected. It often hangs, so you have to terminate it. You click the icon for adding a link, and Expression Web apparently goes of into a endless loop; the dialog for choosing a link never appears and you need to kill it again.
Expression Web is bad software by Microsoft standards. It is so unreliable, that you soon find yourself typing text in Word or WordPad just to avoid a crash. Thus Expression Web’s unreliability defeats the idea of a WYSIWIG editor.


Microsoft’s claim that Expression Web supports web standards is nonsense. The support for standards was just a feature list item, that the development team did not take very seriously. The setup fails to recognise Opera, and Expression Web does not even support the *.xhtml extension.
A quick look at the source code for included templates shows that the generated page is not XHTML 1.1, and not even XHTML 1.0 strict, but merely XHTML 1.0 transitional. That’s hardly any step up from HTML 4.0.

Microsoft claims that Expression Web is standards complaints but it is not. If you copy and paste anything from Word, it immediately inserts proprietary Office-specific HTML without even a warning. There seems to be no way to turn this Office-pushing behaviour off.
Expression Web does not support XHTML 1.1 in any way. When you select a run of text and set a language, Expression Web inserts the illegal HTML lang attribute for the language instead of the proper xml:lang attribute.

Microsoft claims that Expression Web supports web standards. The truth is that Expression Web actively fights any user attempt to do so. Expression Web really gets in the way when you to try create a standards-based liquid layout.

Expression Web is unusable even if you are some corporate code monkey who does not know or care about web standards. Expression Web is so unreliable, it crashes so easily, that it cannot practically be used as a WYSIWIG editor. Expression Web is a huge disappointment.

product details

productExpression Web
websiteMicrosoft Expression Web
priceUS$ 299
requirementWin32 with .NET 2.0
noteupgrade from FrontPage: US$ 99
Verdictslow, lacking, unreliable