Skip Ribbon Commands
Skip to main content

Blog

:

SharePoint Designer > Blog
January 13
Speaking at SharePoint Conferences in 2012

​Well, 2012 is looking like a very busy year. I am lucky to have been accepted to speak at four conferences in the next few months:

I'll be speaking on a variety of topics: Fiddler, SharePoint Online (Office365), Ribbon Customization, branding and workflows.

Oh! and did I mention that I'm writing another book (my husband's words were: you are kidding aren't you?). This time it's on Business Connectivity Services and my co-authors are Brett Lonsdale - @brettlonsdale and Phill Duffy - @phillduffy. It should be out in June 2012 - ready for the North America and European TechEd conferences.

October 26
Speaking at SEF2011 and SharePoint Saturday UK 2011

​On Saturday November 12th at #SPSUK, I'll be presenting a session titled:

Automating Business Processes with SharePoint Online
In this session I'll be using Visio 2010 Premium and SharePoint Designer 2010 to explore the options available when automating business process in the cloud with SharePoint Online which is part of Office 365. Towards the end of the session I'll also show how such processes can be extended using Visual Studio 2010, as well as discussing how the deployment and packaging of workflows differs from using on premise SharePoint 2010. This is a free event, but you must register at the following site: http://sharepointsaturday.org/uk/default.aspx

Two days later - 14th - 15th November, I'll be repeating this session on Day 2, 13:30-14:40, Room C10 at the Swedish SharePoint & Exchange Forum in Stockholm, plus presenting another session on Day 1, 17:10-18:10, Room C58 on How to use fiddler with SharePoint 2010.

October 20
SharePoint Conference: Session SPC402 Ribbon Development and Extensibility

This blog post is about the session, SPC402, Deep Dive on SharePoint Ribbon Development & Extensibility that was given at the SharePoint Conference 2011, Anaheim, CA and presented by two SharePoint Server MVPs, Andrew Connell and Chris O'Brien. AC and Chris labelled this session together with the sample files as The Ribbon starter pack. More details can be found on their blog posts: http://www.andrewconnell.com/blog/archive/2011/10/06/recapping-my-sharepoint-2010-ribbon-deep-dive-spc402-at-the.aspx and http://www.sharepointnutsandbolts.com/2011/10/my-ribbon-samples-from-spc11-session.html

I have attended many sessions (including AC's session at the European Best Practice Conference earlier this year), presented (SharePoint and Exchange Forum November 2010) and written on how to customising the SharePoint 2010 UI and the Ribbon, however I always tackle it from a no-code perspective - first using SharePoint Designer and then a 101 on using Visual Studio 2010. I found their session well worth attending. SharePoint 2010 is so large that you never know everything there is to know about it. Both presenters were able to explain the subject with such clarity and have a relax style that made it very enjoyable. If you have access to the online recordings, then I recommend you watch it - or if you're in the UK, that you attend a similar session that Chris is giving at SharePoint Saturday UK, Nottingham, 12th November 2011. SharePoint Saturdays are free - all you have to do is pay for is your transport cost and accommodation if you're staying over.

Well, back to SPC402, Andrew and Chris tried to complete the session so that everything they did was Sandbox friendly - thereby showing techniques that can be using in SharePoint Online (Office 365). If there was something they were doing that was not sandbox friendly, and had to be completed in a farm based solution - then they highlighted that during the talk.

Ribbon Architecture
The Ribbon consists of a number of tabs which you use to complete SharePoint related tasks. Some tabs are contextual, that is, they appear or hide depending on where you are and the SharePoint object selected in the main portion of the web page. Within each tab there are groups, which contain controls with similar functionality. The controls in a group are laid out based on a ribbon template that also describes how the controls are to be scaled when the width of the browser window is changed. Therefore when the width of the browser window is reduced, some controls will continue to show as a large icon (32x32 pixel) with text, others as small icons (16x16 pixel) with text, or just a small icon with no text and yet others may be displayed as text on a menu item on a drop down menu.

Chris then pointed out that the Ribbon is created by a combination of XML and JavaScript. Most of the core SharePoint 2010 ribbon components are defined as XML in the file CMDUI.XML, which is a big file (~8500 lines of XML) and can found in the TEMPLATE\GLOBAL\XML\ subfolder in the SharePoint root %Program Files%\Common Files\Microsoft Shared\Web Server Extensions\14\. The Ribbon XML is translated into the ribbon by two JavaScript files – GUI.js and SP.Ribbon.js. The CMDUI XML file and the two .js files form valuable learning resource for anyone who wishes to understand how to extend the Ribbon to meet their own business needs.

  • XML is used to define the layout of the controls and which controls you require.
  • The command name is specified in the XML and then JavaScript listens for that command name so it can then execute the commands, such as what should happen when the Ribbon is loaded or when a button is clicked.

Note: You cannot put ASP.NET server controls into the Ribbon - Chris speculated that Microsoft made this decision for performance reasons.

You should not modify the CMDUI.XML file directly, but develop XML and JavaScript wrapped into a Feature that can be activated on specific or many site collections, or at the Web level - depending on the scope that is used, when the Feature is created. You will not find all the out-of-the-box, SharePoint Server 2010 ribbon components in the CMDUI.XML. Microsoft, themselves also use Features to implement some of the ribbon components and commands.

Ribbon Terminology
Chris then went on to explain the Ribbon UI and the terminology used. The Ribbon is contains a number of tabs. Users can navigate through tabs to complete SharePoint-related tasks. Some tabs are contextual, which means that they appear or hide depending on where you are and the SharePoint object that is selected in the main portion of the web page. These tabs can be grouped together into contextual tab sets which are colour coded for quick identification. Within each tab there are groups, which contain controls with similar functionality. Controls in the groups are arranged based on a template.

Ribbon Locations
Chris then listed a number of Ribbon locations that he obtained from the CMDUI.XML, that you may wish to target. It was not the full set, but is a good starting point to understand dot-separated notation used to identify the location of each control, for example,

  • Ribbon.ListForm.Display - this is the Ribbon location that appears on pages that display the properties of a single list item. When a list or library is first created this page is named DispForm.aspx.
  • Ribbon.ListForm.Edit - this is the Ribbon location to use for controls you want to appear on the Ribbon of pages that allow you to edit the properties of a single list item. When a list or library is first created this page i named EditForm.aspx.
  • Ribbon.WikiPageTab - this is the location to be used if you button to appear on the Ribbon for wiki pages.

Ribbon Customization
Chris and AC discussed and demo'd how to surface Ribbon customizations, including scaling. In Chris' opinion - scaling is really cool and is one of the Ribbon's most unsung features. It allows you to control what happens when there isn't enough room to show your buttons, so that when a user resizes the browser window or if they are displaying a SharePoint page using a really low screen resolution, it allows the developer to say - keep this button big as its important and these other buttons are less important, so they can be shrunk.

AC demo'd how to create a contextual tab through server side code that is visible when a specific Web Part was placed on a page. This demo included server side code to add the tab, which used SPRibbon is not available in a sandbox and can only be used in farm based solution.

AC explained and demo'd Ribbon commands and how there are two approaches:
  • Command UI Handler - the simple approach, where the command is declaratively defined within the Feature as XML and JavaScript. These are useful for demos.
  • Page Component - a big external JavaScript file, which needs to be register and initialised on the page. Harder way but provides more control and are more powerful, easier to manage, debug, can be minified and can be reused across customizations. This method, for example, is needed to customize the Site Actions menu, which are another type of Ribbon.

Best Practices
AC also discussed that one of the principal rules that Microsoft has around the Ribbon - predictably, that is the Ribbon is a predictable UI/experience. When a user looks at the Ribbon, they always see the same thing - no matter if the user has permissions to do the command or not. Therefore if you do not want to make a button/command available on the Ribbon for a specific subset of users - you should disable that button/command for that subset and not hide/remove the button/command. Other Ribbon UI best practices that were discussed were:

  • Always create your own group templates. As a starting point find the group template that Microsoft uses and then reuse (copy/paste) that group templates Microsoft provide and then modify your copy.
  • Provide multiple layout and scaling options for best user experience.
  • Be selective - only add customizations to pages that need it - use the contextual approach.
  • Do NOT modify ribbon controls with jQuery.
  • Try to augment existing containers (tabs/groups)
  • Avoid allowing users getting cached JS and CSS code otherwise they won't get your amendments.

Other subjects the session covered were:

  • Handle and canExecute command methods - always implement the canExecute mehtod for best user experience.
  • Global v Focused commands - avoid focused commands where possible
  • Interacting with Dialogs
  • Going beyond buttons, e.g. toggle button, spinner
  • Menu based controls - DropDown, SplitButton, FlyoutAnchor
  • Presentation options - Controls, Gallery
  • Adding social widgets to a publishing page using Ribbon commands, which are powered by a list.
  • Working with a New Control - Cheatsheet
  • SharePint

References:
Both Andrew's and Chris's blog have many posts on customizing the SharePoint UI and the Ribbon:

Other useful resources:

October 18
Look who reads my books

​The SharePoint Conference 2011 in Anaheim was loads of fun, and the fun started on Sunday evening with the Welcome Reception in the Exhibition Hall. I don't think I managed to walk 5 yards without stopping - because I met someone I knew and I just had to talk to them. I went to a couple of sessions and also tried out a few of the Hands on Labs (HOLs). I usually volunteer as a proctor in the Hands on Labs area for Microsoft Conferences, so it made a change to be able to visit the conference as a regular attendee. Also what was pleasing to learn, is that attendees have access to the Hands on Labs, after the conference for 2 months.

The three book signings I had were fun, and I met many new friends. This was not my first go at book signings. I had my first one at Combined Knowledge's European Best Practices Conference in London, in April 2011, where the Queen was particularly interested in my book.
The Queen and SharePoint Designer 2010 Step By Step
At the SharePoint Conference 2011 in Anaheim - it was Tom Resing (or was it Sheldon from The Big Bank Theory?) who took a shine to my books. It was so much fun, I can't wait to repeat the experience at next year's SharePoint Conference in Las Vegas, November 15-17, 2012. 
SharePoint Foundation 2010 Inside Out
* Just incase you thought it was the real Queen - it was a look-a-like, and thanks Tom for being such a sport.
October 17
Microsoft SharePoint Foundation 2010 Inside Out now available

The Microsoft Press book, Microsoft SharePoint Foundation 2010 Inside Out by Errin O’Connor, Me, Troy Lanphier, Johnathan Lightfoot, Thomas Resing, and Michael Doyle (ISBN 9780735627246; 752 pages) is now available for purchase! You can find the book’s introduction in this post and an except from Chapter 9, "Working with External Content" can be found in this post.

You can get a free electronic copy of the book in exchange for your reviews, at http://www.oreillynet.com/oreilly/bloggers/available.csp.

Also recently out, is the Using Microsoft InfoPath 2010 with Microsoft SharePoint 2010 Step by Step book, by Darvish Shadravan and Laura Rogers ( @WonderLaura ). A detailed introduction of their book, can be found at the following post and there is a free sampler of the book.

September 28
Book Signing at SharePoint Conference 2011

​Like many other people who are passionate about SharePoint, I'm attending the SharePoint Conference 2011, twitter hashtag #spc11 being held in Anaheim, CS, US - October 3-6. So in a couple of days I'll be making my way over there.

Whilst at the conference I'll be soaking up the new information and experiences that attendees and speakers have to tell, attending the many social events (see event map:  and ) and I'm also doing three book signings for four of the books I've helped to produce*:

So come by and say hi. I'm also part of the army of bloggers that have signed up as part of Dave Coleman's push for live blogging during the event - twitter hashtag #SPC11LB.

There are many other book siginings happening during the conference, for example:

 * Books are never the result of one person.

September 21
Blog site moved to SharePoint 2010 and new book

Well - I'm back. It's been a while since I last blogged. So what have I been doing - well I've finished writing chapters for another book - my 9th - ​Microsoft SharePoint Foundation 2010 Inside Out, and as you can see I've migrated the SharePoint Designer  2010 Step by Step site and my blog site to SharePoint 2010, which fpweb.net are kindly hosting for me.

You will also notice that the SharePoint Versions page is up-to-date and contains screen shots of the the Match Patch Status page once a cumulative update or service patch is applied to either SharePoint Foundation 2010 or SharePoint Server 2010. Just click the icon Patch Status page icon to the left of the KB number. I've been maintaining this page since 2005 when it was first created on Mindsharp's blog site.

SharePoint Foundation 2010 Inside Out was sent to the printers on 13th September and should be available via online retailers around September 27th. Errin O'Connor will be giving away 250 copies of the book at the SharePoint Conference 2011 October 3-6, in Anaheim, CA. If you are attending the conference, visit EPC Group's booth #123 at the Welcome Reception on Sunday 2nd October at 7pm, lunch breaks Monday and Tuesday 12:30-13:00 or at the Exhibition Hall Reception on Wednesday evening 6:30 pm to get one. Follow EPC's twitter account for up-to-date information - just incase he runs out.

April 04
Speaking at European SharePoint Best Practices Conference 2011
Next week, commencing 11th April, there's the 3-day, SharePoint Best Practices Conference 2011. It's taking place at the same venue as last's years SharePoint Evolution Conference event – Queen Elizabeth II Conference Centre, London, UK - opposite the Houses of Parliament and Westminster Abbey.

So what's the important information you should know:

The speakers list is just awe inspiring – it's a Who's Who of the SharePoint world, and I'm lucky to be presenting:

Day 2: 15:00-16:00, Information Worker track 2, IW510, Henry Moore room on "Controling who can use SharePoint Designer".

Join the conversations on twitter, tweet with #bpcuk, and join the Facebook group.

If you haven't already registered for it, do so – NOW! You will truly regret it if you don't.

April 04
MVP for the Fifth Year

I don't write blogs very often, but when I do - it's good news.

Yes it was April Fool's day and to me that means will I receive a wondrous letter from Microsoft? - and yes I received my Congratulations email. Thanks to everyone who helped me or should I say allowed me to continue my passion for SharePoint.

December 23
New Book: SharePoint Designer 2010 Step By Step sent to printers
I'm excited to tell you that my book SPD 2010 Step By Step, was sent to the printers on the 7th December 2010. It consists of 14 chapters, and three appendices as outlined below. This book can be purchased in print or ebook format from the O'Reilly site, or from book stores such as Amazon.com and Amazon.co.uk.

Part 1 Getting Started with Microsoft SharePoint Designer 2010

Chapter 1 Exploring SharePoint Designer 2010
  • Understanding SharePoint Designer 2010
  • Using SharePoint Designer to Carry Out Common Tasks
  • Understanding What’s New in SharePoint Designer 2010
  • Creating Sites with SharePoint Designer
  • Exploring the SharePoint Designer Shell
  • Using SharePoint Designer to Explore a Web Page
  • Using Task Panes
  • Controlling the Use of SharePoint Designer
Chapter 2 Working with SharePoint Sites
  • Changing the Title, Description, and Theme of a Site
  • Managing Site Users and Permissions
  • Creating a Site Hierarchy
  • Deleting a SharePoint Site
  • Resetting a Site Template
  • Exploring a SharePoint Site
  • Navigating a Site’s Components
  • Saving and Using a Site Template

Part 2 Working with Information

Chapter 3 Working with Lists and Libraries

  • Creating Lists and Libraries
  • Creating an Issue Tracking List
  • Importing Data into SharePoint
  • Working with List Columns
  • Using Calculated Columns
  • Using Column Validation
  • Creating an XSLT List View Web Part
  • Customizing an XSLT List View Web Part
  • Securing a List or a Library
  • Adding Custom Actions
  • Creating Server Ribbon Custom Actions
  • Creating Site Columns
  • Using Site Columns
  • Creating Content Types
  • Adding a Site Column to a Content Type
  • Adding a Document Template to a Content Type
  • Associating Content Types with Lists and Libraries
  • Deleting SharePoint Objects
Chapter 4 Creating and Modifying Web Pages
  • Inserting Text, ScreenTips, Hyperlinks, and Images
  • Working with Web Parts
  • Changing the Home Page for a Web Site
  • Modifying a List View Page
  • Creating List View Pages
  • Creating and Modifying a List Form Page
  • Creating an ASP.NET Page
  • Inserting a Web Part Zone
  • Attaching a Master Page
  • Managing Web Pages

Chapter 5 Working with Data Views

  • Creating a Data View
  • Customizing Data Views
  • Inline Editing
  • Applying Conditional Formatting
  • Showing and Hiding Content
  • Using XSLT
  • Using Formula Columns
  • Working with XPath Expressions
  • Deploying Web Parts

Chapter 6 Working with Data Sources

  • Using Data Sources
  • Working with XML Data
  • Connecting to an RSS Feed XML File
  • Connecting to an RSS Feed Server-Side Script
  • Connecting to SOAP Services
  • Connecting to REST Services
  • Connecting to a Database
  • Using Linked Sources
  • Connecting Web Parts

Chapter 7 Using Business Connectivity Services

  • What Is Business Connectivity Services?
  • Creating Database External Data Sources
  • Creating External Content Types
  • Creating Office Application External Content Types
  • Creating and Managing External Lists
  • Working with Office Application External Content Types
  • Exporting and Using the BDC Model
  • Creating a Profile Page
  • Using Associations
  • Managing External Content Types

Part 3 Using Workflow

Chapter 8 Understanding Workflows

  • Working with Workflows
  • Creating Workflows with SharePoint Designer
  • Using Actions and Conditions
  • Modifying a Workflow
  • Deploying Workflows
  • Creating a Multistep Workflow
  • Creating a Site Workflow
  • Using Visio to Map a Workflow
  • Importing a Workflow from Visio
  • Exporting a Workflow to a Visio Drawing
  • Removing and Deleting Workflows

Chapter 9 Using Reusable Workflows and Workflow Forms

  • Creating and Using Reusable Workflows
  • Creating Association Columns
  • Using Workflow Templates
  • Reusing Globally Reusable Workflows
  • Creating Globally Reusable Workflows
  • Creating Initiation and Association Forms
  • Retrieving Values from Initiation Forms
  • Modifying an InfoPath Form
  • Publishing an InfoPath Form
  • Modifying Initiation Form Parameters
  • Modifying an Association Form
  • Adding Association Fields to Initiation Forms
  • Modifying Task Forms

Part 4 Advanced Customizations

Chapter 10 Branding SharePoint Sites

  • Setting the CSS and Color Coding Page Editor Options
  • Identifying Styles in Cascading Style Sheets
  • Identifying Styles on Content Pages
  • Creating and Attaching CSS Files
  • Creating a Functioning HTML Page
  • Creating Styles
  • Modifying and Deleting Styles
  • Using the Style Application Group Commands
  • Understanding SharePoint’s CSS Inheritance
  • Using IntelliSense to add CSS
  • Using CSS Reports

Chapter 11 Working with Master Pages

  • Understanding Master Pages
  • Default Master Pages
  • Controls Used on the Master Page
  • Copying and Saving a Master Page
  • Customizing a Master Page
  • Changing the Default Master Page
  • Managing Content Placeholders
  • Creating a Web Page from a Master Page
  • Exporting Master Pages
  • Resetting a Master Page to the Site Definition

Chapter 12 Understanding Usability and Accessibility

  • Implementing a User-Centered Design Methodology
  • Establishing User and Compatibility Requirements
  • Designing a Prototype
  • Defining Accessible Branding
  • Testing for Usability
  • Understanding Accessibility Legislation and Testing
  • Maintaining Legislation Compliance

Chapter 13 Managing Web Content in the SharePoint Server Environment

  • Creating a Publishing Site
  • Understanding Web Content Management in SharePoint Server 2010
  • Understanding the Page Model
  • Creating a Page Layout
  • Modifying a Page Layout
  • Allowing Users to Rate Web Content
  • Approving a Page Layout
  • Restoring an Earlier Version of a Page Layout
  • Detaching and Reattaching a Page Layout

Chapter 14 Using Controls in Web Pages

  • Working with the Ribbon and Tag Properties Task Pane
  • Using a Standard ASP.NET Server Control
  • Validating User Data Entry
  • Using ASP.NET Validation Controls
  • Using SharePoint Data View Controls
  • Testing an ASP.NET Form
  • Using SharePoint Server Controls

Appendix A SharePoint Designer Workflow Conditions and Actions
Appendix B Creating a New Approval Process
Appendix C Administrative Tasks Using SharePoint 2010

1 - 10Next
MVP SharePoint Server
I'm speaking at the International SharePoint Conference, London, 2012