User Experience - stay tuned!
A recent CMS Watch report bashed SharePoint 2007 for generating "non-standard HTML code" and a few other points. In other words, this puts a big question mark next to SharePoint. It not only sheds doubt on the usability of SharePoint websites, but it also has a negative impact on selling to the government and enterprise markets.

User Experience is a top criteria these days when it comes to selecting new products and Microsoft has just made a couple of big announcements at MIX 07 in that regard. Amongst them is Silverlight, a very powerful technology that could possibly revolutionize the way user interfaces are developed, especially when it comes to cross-platform distribution. What Microsoft released though was a Silverlight 1.0 beta with a "go live" license and also a Silverlight 1.1 alpha release, which really has the technology you'd want ...excuse me, what happened to shipping a final version before moving on to the next public pre-release? And, what are we supposed to sell/buy now, alpha releases or beta releases?
Instead of trying to guess why Microsoft has decided to promote inofficial software solutions and to ignore the importance of usability standards, let's first have a look at the bigger picture and all the tools that are available and/or required to deliver a compelling user experience. I will also detail the impact the two points mentioned above have and how these issues can be resolved, and what Microsoft is aiming at with this obviously unconventional market approach.
As stated in a previous article of this mini-series, the SharePoint user interface is efficient. However, it is nothing to get excited about and it seems obvious that Microsoft is counting on Independent Software Vendors and System Integrators to use SharePoint as a platform to build attractive solutions on. This requires the right set of tools and technologies, so let's do a check on what is available and what is coming.
Microsoft Office SharePoint Designer 2007
The SharePoint Designer application is a powerful tool to design master pages and layout pages, Cascading Style Sheets (CSS) and even code-free workflows. Beyond the typical HTML and Form Controls, ASP.NET 2.0 offers a wealth of "Standard, Data, Validation, Navigation and Login" controls, and SharePoint adds a good amount of Data View Controls and Server Controls to that. All these controls definitely make it much easier to create a very professional web presence, but in the days of "Web 2.0" they're not attractive enough to stand out and make an impression.
Designing web pages usually involves a lot of styles grouped up in CSS, and SharePoint Designer has a lot of functionality to make it easy to organize and reference multiple style sheets being used on a page. The out of the box page templates also come with a range of style definitions that can be difficult to customize. Heather Solomon has a good CSS reference chart that provides a comprehensive overview.
ASP.NET AJAX
AJAX has become somewhat synonomous for the "Web 2.0" buzzword and the expectations usually circle around responsiveness of web applications and an interactive behaviour. In technical terms all AJAX implementations provide a so-called "partial page update" mechanism that avoids a time-consuming full page reload every time a connection is made by the browser back to the server. The other part of AJAX is usually a library of AJAX-based interactive controls that web developers can use.
Microsoft only recently joined the AJAX bandwagon with its ASP.NET AJAX release. It also includes a toolkit that is made available, through Microsoft's approach to open-source, on Codeplex (a community project managed by Microsoft). The toolkit already offers over 40 controls, of which many extend the basic functionality of the Standard controls.
What makes the Microsoft AJAX technology very easy to use is a concept that involves an "UpdatePanel", which defines an area in which a partial page update takes place. In simple terms, all you need to do is to drag/create an Update Panel, place a textbox and a button in it, and when clicking the button only this textbox will be updated with new contents. The three short webcasts on the ASP.NET AXAX homepage give a good overview of the basic concepts and funtionality.
The related forum is a good source of information on developing solutions using ASP.NET AXAX. It is also a good indication of how much interest there is for this technology, with over 17,000 threads already posted.
The important question now is: does AJAX also work with SharePoint? Well, yes, but it does involve some work. As one would have guessed there are a number of setup steps that have to be done, most notably modifying the web.config file. But there are also a few conflicts that have to be resolved. Mike Ammerlaan gives a good overview of the steps involved on his blog and Laurent Cotton even provides a detailed guide on how to set it up.
Despite the fact that the free open-source toolkit is quite useful, it might still be worthwhile to check out also the commercial offerings. Telerik has built AJAX-based controls for years and their products are definitely also worth a look.
Silverlight
Just last month Microsoft officially launched Silverlight, a cross-browser, cross-platform plug-in that allows rich interactive applications to be built. To be a bit more precise: cross-browser means Internet Explorer, Safari and Firefox, with Opera next on the list. Cross-platform means Windows and and MacOS, with mobile devices at the top of the priority list probably to come next. What's also important to add here is that Silverlight is - contrary to common belief - not hard-wired with C#: Microsoft has made a commitment to also support a range of other development languages.
While the concepts are quite different in many regards, Silverlight competes with Flash and Flex. The main differentiator being that Silverlight is not a final release, so Adobe has more than a head-start. To make the whole situation look even more amusing, Sun just announced, with JavaFX, yet another contender, but they don't even have the specs yet for what they'll be delivering. All this shows is how much business potential these software heavy-weights see for technologies like this. And for sure, they're set for a major clash to capture market share, especially when the Rich Interactive Applications finally do reach the mobile devices with common applications, after many years of pure hype.
Just like Flash, Silverlight requires a one-time download of a plug-in for the browser. This is certainly a roadblock for Microsoft, as Flash players are already installed and users are much more hesitant nowadays to download and install software from the internet. At the moment the download size of the Silverlight 1.0 beta is comparable with the Flash download (slightly over 1MB). The 1.1 release of Silverlight though will be much bigger at about 4MB. While that sounds like a disadvantage it needs to be recognized how much extra value those additional 3MB will bring.
The Silverlight 1.1 release includes a lot of multimedia functionality, e.g. 720HD video, full screen, broadcast capabilities and live streaming. It also includes a Vector Graphics engine, declarative animation of all elements and some basic 3D functionality. But what I like the most about Silverlight is how easy it is to develop solutions with it. To start with it simply is an ASP.NET environment (now cross-platform!) that many are familiar with, but to be able to seamlessly develop Silverlight along with AJAX, HTML and Javascript is great. What makes it unbelievable is that even debugging these solutions is possible on the client and server at the same time. This will certainly result in much faster development cycles. Scott Guthrie has a good intro webcast which showcases how easy it is to get started with Silverlight.
The explanation why Microsoft is pushing a 1.1 alpha version right at the same time with a 1.0 beta version becomes obvious when you compare the functionality of the two. Alexander Strauss adds some more points to the comparison in his chart, but most important is that he indicates that ETA for Silverlight 1.1 is still way out (Spring '08)! This explains why Microsoft feels the need to showcase something today: a year from now it might be too late in the race against Adobe on this.
Microsoft leverages the XAML markup language, which is also used for defining workflows in the Windows Workflow Foundation. As XAML elements can have names, they can be programmed against. This simply means that every user interface element can easily be controlled remotely. Therefore it is only logical that Silverlight 1.1 will also deliver its own set of controls. And if you're a developer you might want to also build your own controls and user interface elements.
Another indicator of how similar Silverlight and Flash are, can be seen when using the SWF2XAML (Adobe Flash to XAML) Conversion Tool from Michael Swanson. For sure, everyone with previous work done in Flash, and looking at deploying Silverlight, will highly appreciate a tool like this.
While a large share of Silverlight usage will involve programming, the past successes of non-programming tools with Web 2.0 solutions have triggered Microsoft to announce Popfly, another alpha release, a few days ago. It's an online community sporting a mashup creator tool based on Silverlight.
Microsoft Expression
The Microsoft Expression suite currently consists of four commercially available applications (Web, Design, Blend and Media), as well as the Media Encoder application currently available as a time-limited demo. Expression Design allows to build XAML-based illustrations (also in 3D) and Expression Blend can then be used to engage XAML elements for animations used in desktop and web applications. The Expression tutorial page has several videos that showcase the products' functionalities (scroll down for Blend and Design).
Of course it is questionable whether these tools will be attractive enough for the design community to adopt them. If the related Expression Discussion groups are any indication it seems like Microsoft is in for an up-hill battle, with both Blend and Design currently listing just about 700 discussion threads. To date, none of my design friends have any experience with it either.
Yet again, here too, Microsoft plays its best card: integration with other Microsoft tools make Expression look much more valuable. Projects developed in the next version of Visual Studio (codename Orcas) can be opened in Blend 2 (both Blend 2 and Orcas are available as preview versions) so that any design work can be done in Expression, while leaving the coding and debugging to a programmer using Visual Studio. I am not a designer, so can't ultimately comment on the value of Blend itself, but it was absolutely easy to whip up a simple animation, and then switch over to Visual Studio and run it in a web application in a matter of minutes.
Microsoft also benefits from an arsenal of video components and technologies like VC-1 that will become strategically important in the near future. The Media Encoder application is a first indication that video will become much more present in web and also mobile applications. Already today, webcasts are increasingly used for training purposes.
Usability and Accessibility
Let's go back to revisit the CMS Watch claim that the SharePoint web content management system falls short on expectations and accepted usability standards.
The question whether the CMS Watch statement is true seems to be easy to answer: just run almost any SharePoint page through the W3C Markup Validation service and the results speak for themselves: there is obviously work to do to make SharePoint web pages compliant. So, what and how much work has to be done?
Andrew Woodward has a detailed list of what has been achieved with SharePoint 2007 and what has not (as compared to the SharePoint 2003 release) on his blog. Zac Smith provides a good high-level summary of what needs to be addressed in a public facing website in order to be compliant. And Vincent Rothwell (aka The Kid) delivers the final step by offering a walk-through of the steps involved to make a MOSS 2007 website compliant with accessibility standards. He also correctly points out that webparts are a central problem here, and even more so the fact that they come with several layers of tables. In fact, these nested tables also make it hard to customize any of the pre-configured master and layout pages that come with MOSS 2007, so you might be better off starting with a "minimal master page" or "minimal publishing site" instead.
The way I'd see it is that it is possible to make a SharePoint 2007 site compliant with accessibility standards, but it does take some work. So, as with many things, the question is: does the price of a internet facing SharePoint license plus the customization required to achieve accessibility compare well with any competitive offerings?
Summary
Obviously Microsoft is trying to cover some huge ground and in that way is naturally leaving quite some gaps as can be seen with the lack of a default accessible publishing site. Knowing though how much business is at stake, it does puzzle me why Microsoft did not at least add a couple of more templates (like a minimal/accessible publishing site) to the product instead of leaving it to the open-source community and individual system integrators (or Microsoft itself?) to deliver this to goverment and large enterprise customers.
Also, the tactics to rush products (and multiple pre-releases) out the door might backfire. While they create quite some excitement these announcements can also have a negative impact on setting customer expectations and the quality of products and solutions.
All things considered though, the technologies that have just been released can only be fully understood when seen jointly with the technologies coming in the next 12 months. And I am fully convinced that a significant improvement of the user experience is possible when using these technologies and tools, so they are absolutely worth considering and planning business for now. In fact, I am sure that the impact of the synergy between these technologies will be immensely positive for both the end users and developers.