Saving Microsoft Expression Web
Update (12/21/12): It finally happened. Microsoft announced today the fate of Expression Web and the rest of the Expression Studio tools. After months of silence from the Mothership, forum posts filled with questions and prognostications (and the defense that Microsoft "will ship Expression Web 5 when it's ready!" from those who were unable to interpret or evaluate the evidence), the answer is clear.
Expression Studio is toast.
You can read all about it from the official Expression Studio page. The short version: Expression Blend will be integrated into Microsoft Visual Studio. Expression Web 4 and Expression Design 4 are now free and won't receive any new updates. The Expression Studio bundles are no longer available for purchase.
So where does that leave all 5 of us Expression Web add-in developers in the world? Well, we'll move on. Perhaps some will see this as an opportunity to develop new add-ins to fill in the gaps of the current version. Perhaps some will decide it's not worth the time or trouble to continue offering software for a dead end platform. And perhaps some will simply offer their add-ins for a little while longer and then pull the plug at a later date.
It's been a long and fun ride as an add-in developer, starting with FrontPage 2000 and ending with Expression Web 4. I haven't decided what I'm going to do with this site or the add-ins just yet. I have to mull it over, get some feedback from users, and then make a decision.
Until then, read my article below on the ups and downs of this pretty cool product.
This article takes a look at the life and times of Microsoft Expression Web, its murky future, and what I would do to turn things around. But, first, the Expression Web Deathwatch!
The Expression Web Deathwatch * (Death: 12/21/12)
Below are several signs as to why we all may be witnessing the end of Expression Web. If you can think of other reasons Expression Web might be heading to its binary coffin, drop me a line.
- Expression Web 4 was released June, 2010. Two service packs were released in 2011, the last one in July, 2011. There hasn't been a peep since about future service packs, let alone Expression Web 5. (Note that Adobe has a clear policy for major and minor versions of its Creative Suite of products.)
- The last Expression Newsletter was published June, 2010.
- Microsoft MIX, the annual conference of all things Microsoft Web and design, has yet to be announced for 2012 has been canceled.
- Adobe is moving forward with two new Web tools, Adobe "Muse" and Adobe "Edge". Whether these products are embraced by the Web community or not, no one knows. But at least they're working on something.
- User Submitted: Rick A. writes how Expression Web never reached the ease-of-use of FrontPage and never added updated theme/template/front-end builder functionality (i.e. integrating with popular content management systems like WordPress and Drupal or offering easy Web forms and auto navigation capabilities).
- The rest of this article details the mess, the muck, and the cruft that dogs Expression Web.
* Listen, I've been using Microsoft authoring tools since FrontPage 98 and have a long history developing and offering add-ins for Microsoft Web tools, starting with FrontPage 2000. This Deathwatch is a bit of fun, so don't get your CSS in a bunch :-)
- A Not Very Brief History of Microsoft Expression Web
- Technical Tangent: All About Add-Ins
- Designing Expression Web vNext (with sample UI)
Making its debut in 2006 as the professional replacement to the oft lambasted - but highly successful - Microsoft FrontPage, Microsoft Expression Web arrived with a thud. Microsoft had to walk a messaging tightrope with the introduction of Expression Web. Say enough to keep the huge installed base of FrontPage users around while reaching out to the prized professional crowd firmly rooted in the then-owned Macromedia Dreamweaver camp.
While keeping the familiarity of the FrontPage user interface (UI) largely in tact, Expression Web 1 generated clean, standards-based markup and did away with the despised FrontPage Webbots and reliance on FrontPage Server Extensions.
Expression Web 1: A slimmed down, more compliant FrontPage 2003
It was a solid blend of old and new. But it wasn't enough to satisfy either camp. A lot of FrontPage users were baffled when they couldn't find their Webbots (they were, of course, still there, but you had to hunt them down to use them). Users in this camp didn't care about standards-based markup or clean CSS. All they wanted was a quick and easy way to build a site. The professional crowd wasn't impressed, either. Those users sat firmly in the Dreamweaver world and weren't about to give up their beloved tool. Besides, Dreamweaver still held an edge in advanced CSS, tight integration with other design tools, and had a thriving, third-party extensions market.
A New Start, Take 2
Then came Expression Web 2, released in 2008. It wasn't a major upgrade from Expression Web 1. In fact, it wasn't much of an upgrade at all. It did offer some support for PHP, included tools to easily insert Web media formats, offered the obligatory bug fixes, had a somewhat different look, and...well, that's about it. (The new look was an attempt to bring the product's appearance more in line with the rest of the Expression suite of tools, which had a darker, more "professional" appearance.)
Expression Web 2: Moving towards the Expression Studio look-and-feel
Note: Personally, out of the 4 versions of Expression Web released from 2006 to 2010, overall, I prefer Expression Web 2. It generated clean code, was stable, provided an excellent macro environment, had a pleasant and customizable interface and was very fast and responsive.
A New Framework Cometh with 3
In keeping with the rest of the Expression suite of products, Expression Web 3 was developed (mostly) using Microsoft's Windows Presentation Foundation (WPF). The move from COM, Expression Web's former development framework, to WPF, was an expensive undertaking in both development time and testing.
Expression Web 3: The first version made almost entirely out of WPF
And since Microsoft couldn't well market Expression Web 3 as, "Expression Web version 3, all the same stuff in Expression Web 2, but now built using WPF!" the company had to give users something. There were a few new features, like SuperPreview, but overall it was a step backwards.
- No support for add-ins out-of-the-box (later fixed with Expression Web 3 SP1).
- Root level links were not supported (fixed with SP1).
- Unlike previous versions, there was no macro language.
- The user interface was not very responsive, even when performing the most basic of tasks like text selection (semi-fixed in SP1).
- Undo was broken (semi-fixed in SP1)
- SuperPreview was slow and buggy (fixed in SP1 and SP2)
- Simple publishing was painfully slow in certain scenarios (fixed in a Service Pack)
- The user interface was not customizable.
- Many people disliked the dark theme (new theme options offered in SP1).
The Quick Release of Version 4.0 and v4 SP1
Microsoft released a full point upgrade inside of a year with the introduction of Expression Web 4. To help assuage the frustration and disappointment of Expression Web 3, Expression Web 4 was offered as a free upgrade to almost all users.
Expression Web 4 provided several new features, including Search Engine Optimization (SEO) tools (see an add-in compliment here), a nice cloud service in SuperPreview, and a new add-in architecture. Since the release of Expression Web 4 Microsoft has provided several free add-ins to fill in remaining feature gaps.
Expression Web 4: A better version of Expression Web 3
Despite several new features and bug fixes, Expression Web 4 was still a disappointment:
- If the goal of Expression Web was to take on Dreamweaver, it has failed. It still can't match Dreamweaver feature-for-feature, even after many years of development. (If this is the strategy, I don't think it's a wise one, anyway, as I'll explain later.)
- Expression Web 4, like version 3, is sluggish and "heavy."
- Easy Ajax development is not possible.
- Integrated jQuery support is not available.
- Efficient database integration limited to ASP.NET.
- No database creation functionality (unlike what is found in WebMatrix).
- Expression Web 4 templates do not represent current design trends.
- Expression Web 4 shipped with a major bookmarking bug. Note: Yes, yes, all software has bugs. But something as fundamental as bookmarking to wonk out after years of service seems an indicator of how far Expression Web has fallen inside of Microsoft. This bug was fixed in Expression Web 4 SP1.
- Undo, even after SP1, doesn't always work as expected.
- Something as basic as selecting text is akin to being served mystery meat. You never know what Expression Web is going to serve up. Especially true when working with long pages.
- Add-In/Extension providers are few and far between.
- The Expression Web community is limited.
- It's been almost 5 years and the program has yet to catch the attention of Web professionals.
Update: Expression Web 4 SP1 arrived on 3/21/2011. It bumped performance a bit, added some nice HTML 5.0 capabilities, and fixed several issues. Still not a killer app.
Developer Confusion and Consternation
I remember having a conversation with a Microsoft employee a couple of years ago about this new add-in framework. (The company reached out to various Expression Web add-in developers to get feedback.) My feedback was simple: Nope, not for me.
There were never many Expression or FrontPage add-in providers, even though the exposed object model for both products is rich and comprehensive. You could pretty much build any type of add-in you wanted. The HTML architecture is far less capable. It appeals more to the casual add-in developer, but, as I'll illustrate, no one is interested in building Expression Web add-ins. At any level.
COM add-ins still work in Expression Web and you can still develop these types of add-ins. But it's a huge chore to do so; and if you don't have any prior experience, it's almost an exercise in futility. HTML add-in developers don't have it any better. The documentation is thin and scattered about several sites. What's shocking is this is Microsoft we're talking about. They are a company that always offered top-notch developer tools and documentation. Yet the developer story for Expression Web has been lacking since day one.
To see how little effort is being put into Expression Web from third party developers, let's have a look at some stats from the official Microsoft Expression Web Community Gallery and the Adobe Dreamweaver Exchange (snapshot from 11/14/2010; not much has changed at present, 4/15/2011):
- There are 35 "Add-Ins, Extensions, and Tools" at the Expression Web Community Gallery covering all four Expression Web versions.
- Of the 35 add-ins listed, 9 were written by Microsoft. Of the 9, one is an add-in builder and one is an add-in tester. I developed 5 of the 35.
- A search for "All" at the Dreamweaver Exchange site returned 1,675 results. This number includes templates, but it's still a huge difference when you look at the number of non-template extensions offered between the two Web tools.
Fact of the matter is Microsoft delivered an extensibility model in 2010 that Dreamweaver brought to the table many years ago. Unfortunately, the army of Dreamweaver extension developers haven't jumped on board and neither have new developers.
Note: What's frustrating is that Microsoft offers a Visual Studio Shell that can be customized for applications. The Shell is written in WPF, just like Expression Web. Why didn't Microsoft use that? Perhaps someone thought a VS-like development environment would be overkill. If so, I'm sure there's some kind of simple script/macro facility floating around Microsoft that would have been a good fit (and this would fit in nicely with my Quick Action functionality I talk about later).
End User Confusion
From an end user perspective, add-ins are a mess, too. Depending on the type of add-in, you either install it (COM or HTML) or download it to a folder and then let Expression Web know about it (HTML). COM add-ins are usually commercial offerings that include an installer and Web site support. HTML add-ins, however, usually don't offer such amenities.
To install an HTML add-in you have to add it via the Expression Web add-ins dialog. The big problem here is that the dialog defaults to a folder you're almost never going to find - or even know about - so you now have to hunt for the file you just downloaded. I've yet to encounter and HTML add-in that was installed to the default Expression Web add-ins folder. If it comes in a zip file, you need to unzip it first and then go back and add it. And if it's an installable HTML add-in, you have to remember where it was installed if it doesn't end up in the default add-in folder.
The other problem with HTML add-ins is that developers are adding buttons to existing Expression Web toolbars or menus or adding new ones that the user has to explicitly enable before using. Since most HTML add-ins aren't supported by Web sites, it can be a chore figuring out what everything does and where everything is.
Another issue is that HTML add-ins, while providing some functionality, are often very simplistic and, as I've experienced, unstable. Heck, if Expression Web crashes it starts up again with add-ins disabled by default. Not a good sign.
Example of a Bad User Experience
To demonstrate this poor user experience and lack of attention to detail on Microsoft's part, let's look at an add-in that should have been integrated as a feature from the start: Customizable Toolbars.
When Expression Web 3 shipped, it shipped without a toolbar customization option. Microsoft eventually published an add-in to account for this deficit, but it was buggy and didn't always work. (There was this strange bug that added an empty row to the dialog window. When the dialog was closed with this empty row, the code deleted all previous toolbar customizations. Bad, bad, bad.)
For Expression Web 3, the add-in created a new toolbar called Customize. The version for Expression Web 4, however, did away with the custom toolbar. The new version surfaces the add-in's functionality via a custom menu item called Custom Toolbars. The menu is located under the View menu (of course, this is now the only option under the View menu that provides create and edit functionality; would have been much better under the Tools menu. But I digress...).
To get this Expression Web 4 add-in to work you may need to jump through several hoops, especially if you had the previous version installed. A bad user experience all around and a telling one. All it takes is a little effort here. Make sure the add-in works without having to uninstall any other software. Add a screenshot or two to the gallery page showing where to find things, especially important when the UI changes.
The whole add-in architecture and process is a complete mess and needs to be overhauled top to bottom.
Besides suffering from severe technical issues (see above), Expression Web's main problem is that it's stuck in another time. It's not 2001. We left the era when the only way to build and manage a site was via a desktop app like FrontPage or Dreamweaver. Today there are many online-only Web creation alternatives that can do the job nicely. And many do it for free. These easy to use, full-featured Web design and content management systems - like Joomla and WordPress - provide great alternatives to their once dominant desktop cousins.
A new approach to the consumption and creation of content is here. With the success of cloud computing, Web apps, mobile computing, and software-as-a-service, Expression Web needs to change. And fast.
Here's what I would do to change it all.
Set the Tone
First, I would lay out some objectives.
- Get Focused: Expression Web needs to get back on track. It can't be everything to everybody. In that spirit I would create a product mantra that lets both the design and development teams know right away exactly what the program is all about.
- Identify Key Technologies: Identify the technologies that have or will have a direct impact on the product and that can be exploited by the product.
- Design a New UI: Design a UI that supports the first two objectives.
Objective 1: Get Focused
Expression Web is currently suffering from an identify crisis.
Microsoft FrontPage was known for its ability to let non-Web professionals create Web sites using a familiar, Microsoft Office-like interface. This ease of use often took the form of helper components called Webbots. Its competitor, Dreamweaver, is known as a professional Web design tool where "real" Web authors get their hands dirty in code and markup. This made FrontPage jealous. Very jealous. So jealous, in fact, it morphed into Expression Web, a more Dreamweaver-like product that still retained some of that easy-to-use FrontPage goodness.
(Note: The first two versions of Expression Web also included SharePoint functionality, making the product a bizarre amalgamation of professional, end-user, and corporate development tool. Thankfully, the SharePoint bits were extricated starting with Expression Web 3.)
So some of the time Expression Web wants to be a full-on professional development tool where code and markup rule the roost. Other times it wants to be a robust Web design tool that spits out beautiful sites using a slick GUI.
In today's world of small, focused Apps, doing both doesn't cut it.
Breaking Up is Hard to Do
To pick up the server-side work Microsoft already has a great solution in Microsoft WebMatrix. It's completely free, fast, offers several well regarded pre-built modules, and includes newer technologies like ASP.NET Razr syntax. What's even better, Web Matrix has hooks into Microsoft Visual Studio.
Think about it. Develop a version of WebMatrix specifically designed for Expression Web that offers an integrated and seamless data and server-side experience without needing to bog down the main application. And still keep the hooks from this special version to Visual Studio. All levels of server-side development would be covered, from basic server processing (Expression Web) to more advanced server processing (Expression Web WebMatrix version) to heavy duty geek development (Microsoft Visual Studio).
Introduce a New, Slick Design Surface
With a new focus should come a brand new page designer. A really slick designer and design surface is needed that speaks fluent HTML 5.0 (and that would automatically compensate for older browsers with not-so-great standard support). Create a designer that supports jQuery out of the box and is just at home spitting out code for a static 4-page site as it is for a fully interactive Web application. All the excellent management and reporting tools of prior Expression Web versions stay, of course.
Mantra for Expression Web vNext: Building beautiful sites for all devices.
Objective 2: Identify Key Technologies
Web development has come a long way since the days of simple HTML, table layouts, and the FONT tag. There's a whole host of technologies a Web designer has to be familiar with and a whole host of devices those technologies might run on. Expression Web needs to integrate and exploit them all.
When it comes to the cloud and cloud computing, Microsoft is, as it is found of saying, "all in." And it's hard to dispute that statement with products like Windows Azure, SQL Azure, Office 365, and the myriad Windows Live services and applications. There's also rumblings and rumors that the next version of Windows vNext will have prominent hooks to the cloud.
There are beginnings of cloud integration with Expression Web 4. It offers a nice cloud service with its SuperPreview feature. Web authors can now view how pages will look across multiple browsers, browser versions, and platforms without installing any virtual machine software or additional browser software.
HTML 5 & Other Interesting Stuff
HTML 5 will be the new HTML 3.02.
If you've been around long enough you remember when HTML 3.02 arrived and its resulting impact. There was a lot of excitement and movement around HTML 3.02, from Web designers to browser makers to tool providers. That same feeling is prevalent around HTML 5. Microsoft has been very vocal about its commitment to this specification (see here and here). Browser makers are already touting their browser's HTML 5 compliance even though the spec isn't even fully baked. Expression Web 4 SP1 has some nice HTML 5.0 elements, in fact.
HTML 5 seems like it's going to offer the industry its first truly cross-platform/cross-device application framework without sacrificing end user experiences once reserved for traditional desktop applications.
Also, novel formats, like the XML and CSS based ePub format, should be embraced and exploited.
From smart phones to tablets to every thing in between, there's a move to new form factors and user interface expectations. Make Expression Web vNext handle them all.
(Microsoft offers Silverlight development, as well as XNA development, for Windows Phone 7. There have also been rumors suggesting Windows "8" will include a new app framework based on Silverlight. Probably a good bet the Microsoft iPad answer will handle Silverlight as well. Still, not everything is an app. A tool for slick Web design served up to non-desktop devices is still needed.)
Objective 3: Design a New Microsoft Expression Web vNext UI
I'll end with a sample UI. When I went about this I kept all the above objectives in mind. I also concentrated solely on toolbars, buttons and their organization. I didn't mock-up a new CSS design surface nor did I do any type of analysis on existing dialogs or user controls.
A couple of notes about the UI example:
- "Rolling toolbars:" To reduce toolbar clutter I designed a new UI construct called rolling toolbars. On the second row of toolbars there would be an overflow menu that lists all available toolbars. When a toolbar is selected from the overflow menu the current toolbar rolls out of the way and the new toolbar slides into place. Picture it: The toolbar either slides backwards and then down while the new toolbar slides up or, using the "garage door" mode, the current toolbar rolls up and then back, like a garage door, while the selected toolbar slides in to place. This all happens quickly, of course, and can be turned off if desired.
- Quick Action Menu: Like the Windows 7 Show Desktop UI, the Quick Action menu would sit on the far right of the application. It would allow one click access to a custom action. This action can be set to a Save All, Preview in Browser, Close all without Saving, or a host of other user defined commands. The overflow menu allows for other custom actions and provides a macro-like utility for creating them.
- Add-Ins & Components: An area where all 3rd Party add-ins and post launch Microsoft components live. A UI nod to Borland Delphi.
- Add-Ins & Components Alternative: There may not be enough 3rd party providers for this section to justify its existence. An alternative would be to make this space a one-stop document shop. Show page properties, document sizing views, compatibility checks, accessibility checks, links to and from other pages and content, etc. Unlike a word processor where the main focus is on the document, a Web authoring tool's main focus is on the document (page) and all the meta data, properties, and Web connections that are part of that document. A different focus requires a different UI (I'm not publishing this mock-up right now.)
Note: This lightbox gallery brought to you by the free Expression Extras Lightbox Framework Add-In. Get yours today!
I would also look at making other changes:
- One panel by default: Show only the Folder List by default instead of the 4 that's displayed now. Let's keep a nice and clean UI. Other panels, like Apply CSS or Toolbox can be displayed as needed. Pros are the target audience, right?
- Remove the status bar: All the controls on the status bar can be accessed via the toolbar and menus or in the suggested Add-Ins & Component space detailed above. I don't think the space and icon clutter of the status bar is warranted by its infrequent use.
- Site Start-Up Options: Add a dialog that allows certain actions to run on start-up. For example: open last x number of sites; open last x number of pages per site, run page performance checker in background, etc. If the add-in market was bigger I'd develop this myself, but it's just not worth the investment in time and energy at this point.
- Modify the color scheme: There's a feeling by some that a dark color scheme implies an application is professional grade. I don't think so. Windows 7 is much lighter then Vista and, in my opinion, much nicer. The darker background of Word 2007 was changed to a lighter shade in Word 2010 to help readability. It's time to get rid of the "pro theme." (The "Use your current Windows color scheme" doesn't cut it, either.)
- Get rid of add-ins: Yes, I know, the mock-up UI has an add-in section. But I also talk about replacing it with other functionality. The fact of the matter is nobody is developing add-ins for Expression Web, so why burn all those resources building and testing this expensive feature. In the mock-up UI I also talk about a Quick Action feature. Allow custom actions (scripts) to be shared among users. They can be added to Expression Web as easily as opening a file or via a Cloud service. No custom installs here.
- Make it fast, fast, and faster: Increase design surface response time and all application chrome response time. A lot.
- Include template/app hooks: Microsoft Webmatrix does an excellent job of integrating site modules and templates. Steal it and bake it into Expression Web.
- Revamp reports and dialogs: Expression Web 4 is still a combination of old and new. WPF dialogs and styling mingle with COM dialogs and styling. Makes for an awkward experience. Reporting, a traditionally strong feature of Expression Web, needs to re-worked to allow for easier discovery. Additional reporting data important to today's Web builders also needs to be added.
- Offer a free Web and App version: A nice supplement to the heavy-duty lifting of Expression Web would be scaled down versions for online and mobile devices. It would be great to be able to edit text or CSS when away from the desktop.
I've been working with Expression Web and its progenitor, FrontPage, for many, many years. And in my little world of add-in development I've run into some big obstacles. I could only imagine what it's like working on a product as big and as complex as Expression Web. I don't want anybody reading this to think I'm slamming Microsoft developers. I'm not. I just think Expression Web lost its way and needs to get back on track for it to really matter in today's diverse and exciting Web world.