Review – Pro SharePoint 2010 Branding and User Interface Design

I was recently given a chance to review this book thanks to one of the books author’s John Ross.  While my main focus is not on branding and user interfaces it is a critical component of the SharePoint solutions my team delivers and also one of the important things that can separate successful from failed implementations.

This book does a great job of providing an overview of the branding options with SharePoint 2010 (Foundation and Server).  It also does a really good job of showing how things have changed which is an important thing to understand since the there are so many new controls and features (ribbon) and the previous use of nested tables has been all but abolished. 

There are some valuable tips for “simple branding” which would is great information for Site Owners to have as they manage their local department or project site.  There is also great information on more advanced branding that can cover your overall marketing and communication standards.

One of the really nice things about this book is that it highlights some of the landmines that can pop up during your project.  Understanding where in an inheritance chain to style or not to remove the !Important commented items can save you hours of grief.  The Content Placeholder reference for MasterPages is also incredibly valuable.

From my perspective one of the most important chapters is on deployment.  Since user experience guys are not always coders they are not always familiar with how to properly deploy their brilliant work.  SharePoint Designer is a valuable tool, but it should not be used to maintain the branding and user interface changes for your environment (with very few exceptions).

All told this book provides a great overview of all of the areas and depth to important topics designers need to know.  This book should be a good fit for SharePoint Developers or Administrators needing to do simple branding, Site Owners looking to apply some customizations, or for Designers looking to create robust user interfaces on the SharePoint 2010 platform.

Professional SharePoint 2010 Branding and User Interface Design

SPSVB – Developer’s Introduction to SharePoint Search

The morning session on Search seemed to go over well with a lot of great questions.  Here is the slide deck from the session:
Source Code for the Manager Web Part is below:
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Search.Query;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.Office.Server.UserProfiles;
using System.Collections.Specialized;
using Microsoft.SharePoint.Administration;
using System.Collections;
using System.Data;
using System.Text;
namespace NextConnect.Search.Presentation.DisplayManagers { [ToolboxItemAttribute(false)] public class DisplayManagers : WebPart { protected Literal literalMessage;
protected override void CreateChildControls() { this.literalMessage = new Literal(); this.literalMessage.ID = "literalMessage"; this.Controls.Add(this.literalMessage); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); DisplayFullText(); }
protected void DisplayFullText() { StringBuilder messages = new StringBuilder(); DataTable results = new DataTable();
string searchProxyName = "Search Service Application"; SearchQueryAndSiteSettingsServiceProxy settingsProxy = SPFarm.Local.ServiceProxies.GetValue(); SearchServiceApplicationProxy searchProxy = settingsProxy.ApplicationProxies.GetValue(searchProxyName); FullTextSqlQuery mQuery = new FullTextSqlQuery(searchProxy);
try { mQuery.QueryText = "SELECT LastName, FirstName, JobTitle, accountname FROM SCOPE() WHERE ("scope" = 'People') AND CONTAINS(JobTitle, 'Manager') AND NOT CONTAINS(Department, '1099')";
mQuery.ResultTypes = ResultType.RelevantResults; mQuery.TrimDuplicates = false; mQuery.RowLimit = 100; //mQuery.KeywordInclusion = KeywordInclusion.AnyKeyword; //mQuery.AuthenticationType = QueryAuthenticationType.NtAuthenticatedQuery;
ResultTableCollection resultTables = mQuery.Execute(); if (resultTables.Count > 0) { ResultTable relevantResults = resultTables[ResultType.RelevantResults]; results.Load(relevantResults, LoadOption.OverwriteChanges); } messages.AppendFormat(@"
Found {0} result(s).
    ", results.Rows.Count);
foreach (DataRow row in results.Rows) { messages.AppendFormat(@"
  • {0}, {1} - {2}
  • ", row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString()); } messages.AppendFormat(@"
    this.EnsureChildControls(); this.literalMessage.Text = messages.ToString(); } catch (Exception ex) { this.EnsureChildControls(); this.literalMessage.Text = "Error: " + ex.Message.ToString(); } finally { mQuery.Dispose(); } } } }

    Event–SharePoint Saturday Virginia Beach

    In a new annual SharePoint tradition, SharePoint Saturday Virginia Beach is right around the corner.  Virginia Beach was the location of the first SharePoint Saturday back in January 2009 and this makes the third straight year they will host the first weekend in January.

    The speaker list is beyond impressive; I don’t dare list them because I would literally have to list them all.  The caliber is first class, it is amazing that so many people are so willing to go to great lengths to support the community.

    I will be presenting two sessions at this year’s event.

    Session 1 – Developer Track

    Developers Introduction to SharePoint Search

    This session will provide an overview on SharePoint Search from a Developer’s perspective. The topics covered include; query structure, how to configure the standard search web parts, how to format and extent the standard search results, and well as how to use the Search API to provide advanced search and data aggregation features. Based on this session you will have a better understanding of how to leverage SharePoint’s search functionality to enhance the user’s Search experience as well as how to leverage it as part of other solutions.

    Session 2 – Architect Track

    Getting the Most from the User Profiles

    This session will help you maximize the power and value of the SharePoint User Profiles available in SharePoint Server. We will cover strategies on how to approach defining and maintaining custom attributes, how to approach synchronizing content with other business systems, and how to leverage the information to drive business processes both inside of and outside of SharePoint.

    Hope to see a full house, if you are in the Mid-Atlantic region be sure to stop by!

    2010 Recap and Looking Forward

    Looking back at 2010 it is amazing everything that happened.  It really was a whirlwind year that brought a lot of change to me both personally and professionally.  A year ago today I received my first MVP award for SharePoint Server which was a pleasant surprise. 

    At the time I was working for an organization I really liked, but in a position that just was not a good fit so last spring I decided to jump back into consulting and took a staff position with IntellinetMatt Ranlett was kind enough to recruit me there and while he promptly exited, I’m still eternally grateful to him for the referral.  With Intellinet I found a position well suited to both my personal and professional goals; it was a really good year from that standpoint!  I definitely appreciate the support from my team as well as the senior leadership team.

    This year was incredibly busy with the launch of the 2010 wave of products from Microsoft.  I had the opportunity to speak at a number of launch events covering not only SharePoint but also Office and Exchange.  This year I really took my presenting schedule to the next level delivering around 20 sessions.  Some went over better than others, but overall I had a blast and got to meet and hang out with some great people on the SharePoint Saturday circuit.   

    My work with the Triangle SharePoint User Group was limited at times as I was MIA on the road, but thanks to Josh Carlisle and Michael Lotter the group continues to grow and attract high quality speakers.

    I think that 2011 is already shaping up to be a good year with good projects lined up and a number of events scheduled.  I kick off my event schedule next weekend at SharePoint Saturday Virginia Beach, details coming shortly. 

    Happy New Year everyone; may 2011 bring you health and happiness!

    %d bloggers like this: