I was asked to give a presentation recently at the Cincinnati .NET User’s Group. I created a screencast of that presentation. Please bare with the editing, as I dove into the world of iMovie, and my UX was less than optimal.
I was recently tagged to “brand” a SharePoint installation for Hirsch Pipe & Supply Co. I knew it would be an interesting challenge, but I had no idea how bad it truly would be.
SharePoint is built on ASP.NET 2.0 which I had worked with in my previous job. I found ASP.NET very powerful and flexible. Master pages, App_Themes, CSS Friendly Adapters, and more made working on ASP.NET interfaces relatively painless. Knowing that SharePoint utilized master pages I thought it would be much easier than it was. However, it turned out to not be the case.
The Default Master Page
I was immediately struck by the mess that is the default master page. The master page is laid out with, of course, tables which is reminiscent of why Microsoft is such a joke in the designer world. Well, I decided to rip out the tables, and surely that would make it easier right? No. It turns out that SharePoint only uses one standard ASP.NET control (the navigation control), and the rest are SharePoint specific “delegate” controls which made layouts with CSS difficult. These are of course stored on the file system, and the only way to edit them is to create painful features. It looked as though I was stuck with extensive tables for much of the layout.
When I did yank out much of the table layouts it only opened up a headache down the road. It was actually more painful to try and layout it with CSS then just sticking with the table layouts. What made it difficult are the extensive nuances in the SharePoint interface that are dependent on others. For instance, I would lay it out in CSS, but when I went to edit the page to add web parts everything went awry due to dependencies on extensive tables for layout. I was able to lay out the majority of the default master page with CSS, but I ended up reverting to tables for the main content area due to pain after pain. I did go with Heather Solomon’s minimal base master page for publishing sites which was a better start then I had.
The fun doesn’t stop there. SharePoint has a core stylesheet that is over 4,000 lines long. I’ve dealt with more styles in one shot, but looking at the stylesheet you would think a 10th grader created them. There is a lack of shorthand, units of measure, and extensive IE proprietary styles. Add onto the fact there are no comments in the stylesheet it is absolutely useless to attempt to decode it. You also can’t simply remove the core styles; well, you could, but it’s another headache that is ultimately not worth tackling. It’s again easier to deal with the bad then try to make it better.
SharePoint does allow you to specify an alternate stylesheet which does, thankfully, get rendered after the core styles. The cascade becomes your best friend in altering the styles. You’ll also notice the “classitis” that abounds in the master page and core styles. They all have a prefix of ms– which is unneeded and unhelpful. I wasn’t surprised to find a lack of advanced CSS 2 selectors due to the pressure to support IE 6, but they are hardly any descendant selectors which would drastically decrease the amount of classes in the markup.
Hope for SharePoint vNext
I hope, first that I never have to alter the SharePoint UI again, but that the next version of SharePoint will construct a better default UI with the following changes.
- Use CSS for layouts.
- Ditch the delegate controls to use more of the standard ASP.NET controls (or at least improve them).
- Use a well-commented core CSS file with advanced selectors to eliminate the need for classes.
- An increased focus on accessibility for public-facing sites.
I have now had a much larger exposure to SharePoint’s product offering, and I feel in a much better and knowledgeable place to assess the strength and weaknesses of the technology. Like any product that attempts to serve a wide range of functionality there are going to be stronger and weaker areas. One thing the SP team at Microsoft does well is addressing shortfalls in the technology as it matures.
I’ll evaluate each of, what I deem to be, the major functions and tools of SharePoint. OK, let’s get started.
Windows SharePoint Services - A
Windows SharePoint Services or WSS is now in its third major iteration. It is the core that MOSS is built upon, and it is where the strength of SharePoint lies. From it’s incredible Office integration, task and document management, and web part personalization options WSS is what caught my eye and made me desire a career change.There are some minor headaches and pitfalls, but certainly not enough to warrant anything less than an “A” in this category.
Social Networking Capability - B-
Unfortunately, SP didn’t do what I would’ve liked to see in this category. They introduced “My Sites” in MOSS, but adding colleagues isn’t intuitive and the feature turns into a personal SharePoint site instead of a robust social networking tool for the enterprise.
Blogs and wikis were also introduced in WSS 3, and the inclusion of them is promising but the implementation is poor. The blog is feature-less allowing only categories and less than impressive personalization features. The wiki is super basic, and it leaves me confounded on how it seems so quickly implemented. A look at the benchmark, MediaWiki, will show the lack of robustness in the SP implementation.
Enterprise Search - B+
The MS work on their search in MOSS is surprisingly amazing. While many companies introduce search replacements for MOSS, often times they are trying to fix poorly architect edsearch solutions with the MS offering.
The search in SP offers many options for optimal information architecture including best bets, search logging/analysis, search scopes, and much more. It’s impressive to say the least. The crawler is also very, very effective with filters to spider other forms of content. They even introduced federated search to this offering, and it makes it all-the-more impressive.
The only reason this doesn’t get an “A” is the search results and placing search in the default interface isn’t worth the high grade although this can be edited by any capable designer.
Business Intelligence - C+
Default business intelligence in SP is less than stellar. Although key performance indicators (KPI) are in the offering it is simply a graphical display of business data. Corporations need far more robust diagramming and analysis tools for true business intelligence, and it has been a ripe area for other companies to pick up what is lacking in this feature.
Excel Services is an interesting addition to this as it allows the graphing and analysis of Excel data which is the most rudimentary of business database and business intelligence applications. I look forward to this being beefed up in the next version of SP.
Web Content Management - B
Web Content Management or WCM was one of my specialties in my last business that shares the name of this site. I chose WordPress as my tool of choice, but there are fantastic tools including Drupal, Dot Net Nuke, Graffiti CMS, and many others that do a fantastic job with each having their own strengths and weaknesses.
The SP offering of WCM has moved them from solely a intranet/extranet tool into the Internet realm. WCM is also done differently than or web CMS’. SP uses metadata in a single list to control what content is available to the page creator in SP Designer. Creating page layouts then becomes foundational to all SP WCM. Even though pages can be created and metadata is more focused on then other tools such as WordPress or Drupal it still leaves much to be desired.
The workflow of creating metadata to then be used on any form of WCM pages I find quite restricting, and it ultimately slows down the contributor who understands nothing about the WCM architecture. Inline editing of the content is also less than impressive. The rich text editor is shaky at best, and the constant need for modal windows hinders usability for the contributor. To edit the “backend” is only a list without a robust administration interface found in other popular CMS’.
SharePoint Designer and Interface - D
I’m putting both the default interface and SP Designer in the same category since they are so inter-related. The default interface is clunky, navigation is abundant but poorly implemented, and the “obviousness” of the SP interface is less than obvious. Also, in the interface the markup is absolutely horrendous. Typical of ASP.NET controls it outputs horrendous markup. This hinders accessibility, ease of branding, and even in the realm of SEO when using SP for public-facing sites. The markup reminds me of what MS is all-to-often ridiculed for lack of web standards awareness.
SP Designer is the approved tool to brand the SP interface. It’s built on the legacy of FrontPage, and it’s capability and interface is very reminiscent of FrontPage. However, seemingly they are learning from their rich IDE in Visual Studio and allowed it to influence the designer options and functionality. If it weren’t for the ability to open up the content database I would never, ever use the tool. It is expensive, bulky, and there are free editors that make SP Designer look amateur.
The ability to do XSLT in a GUI manner is an interesting perspective, and it makes such a difficult topic somewhat attainable by a non-XML/XSLT expert. Also, the workflow wizard is actually quite impressive. Although it has limitations I was able to create a rather complex workflow with logic rather painlessly.
I’m hoping that these deficiencies will be address and strengths strengthened in the next version of SharePoint. I understand much of what I criticized is still “version 1.0,” and I expect it to mature. SharePoint is a powerful platform, and I expect it to continue to dominate the ECM market for years to come.