Speaking at the SharePoint Maine User Group – December 11, 2012


I have the honor of speaking at the SharePoint group with by far the best acronym, SPUGME. Makes me wish I put more effort into the BASPUG acronym! 🙂

I will be up there on December 11, 2012, and presenting The Ribbon UI and Custom Actions in SharePoint 2010.

I am excited to speak at this (fairly new) group, and, to meet some more of the New England SharePoint Community.

For more information on the group, and, for the event itself, please visit: http://www.sharepointmaine.com


Speaking at the Fairfield County SharePoint User Group (FCSPUG) on December 14th, 2011

imageUPDATE 12/14/11: 2011 – not 2012! As in tonight!

It appears next week is Connecticut week! In addition to speaking at the Connecticut SharePoint Users Group (CTSPUG) on December 13th, I will be headed back into The Constitution State again on Wednesday to deliver a presentation to the Fairfield County SharePoint Users Group!

Presentation information below…

Title: The Ribbon UI and Custom Actions in SharePoint 2010

Abstract: Custom Actions control features in SharePoint such as the List Item Menu, the Site Actions menu, toolbars, and the links within the Site Settings page, as well as the Ribbon UI in SharePoint 2010.

Learn how to leverage Custom Actions to extend the SharePoint User Interface. This session will describe the basics of Custom Actions, demonstrations to build and apply them in SharePoint as they relate to our lists using SharePoint Designer 2010, as well as provide resources for additional information.

Meeting Agenda:
5:30 – Eat & Greet: Food/Drink courtesy of K2
6:00 – News: Commnents from meeting organizers
6:15 – Session Keynote: The Ribbon UI and Custom Actions in SharePoint 2010
7:15 – Wrap-Up: Announcements and Giveaway
7:45 – SharePint @ Field, 3001 Fairfield Ave

I look forward to seeing you there! For more information, and to register for the meeting, please visit: http://www.sharepointusergroup.com/FCSPUG/default.aspx

Slides from SharePoint Saturday EMEA 2011 Presentation

Although it happened quite early for me in the morning yesterday (January 22st, 2011), SharePoint Saturday EMEA was a great event to be a part of. Although it lacked some of the main aspects I love at SharePoint Saturdays, such as networking, meeting new people, interacting with the crowd, etc., it was kind of nice to wake up, slug down a few cups of coffee, and present my session.

The EMEA team did a great job of managing this virtual SharePoint Saturday, and I hope to be able to present at future sessions. A big thanks to the attendees of my session, as well as the team that put the event together:

  • Mark Miller (@eusp)
  • Toni Frankola (@ToniFrankola)
  • Isaac Stith (@MrIsaac)
  • Ayman El-Hattab (@aymanelhattab)
  • Natasha Felshman (@TeamEUSP)


Below is a copy of my slide deck from the presentation. Any questions on any of the material, please leave a comment below!

Upcoming Speaking Engagements

Wow, it’s been a busy few weeks, and lots of acceptances and confirmations have come through over the past couple of weeks, enough so that I have not been able to get out posts for each one. So, I thought I would cover a few bases at once, and get all of these out there. I also keep an updated speaking and event calendar hosted here: https://gvaro.wordpress.com/calendar/.


January, 2011

  • January 22, 2011: SharePoint Saturday EMEA – Live, Online
    • Presenting “The Ribbon UI and Custom Actions in SharePoint 2010”
  • January 29 2011: SharePoint Saturday Hartford – Bloomfield, CT
    • Presenting “Creating Custom Actions in SharePoint 2010”
    • Co-Presenting with Tim Farrell “Producing a Custom Solution from the Ground Up”

February, 2011

March, 2011

April, 2011

June, 2011


More events that I will be involved with, either through sponsoring, hosting, presenting, organizing, or other ways over the next few months are below.

Speaking at SPSEMEA on January 22, 2011

imageFound out a few moments ago that I am officially slated to present at SharePoint Saturday EMEA.


What is SharePoint Saturday EMEA?

SharePoint Saturday EMEA is a loosely knit group of SharePoint evangelists from around the world. We are working together, using SharePoint as a collaboration tool to sponsor live, online global events.

On January 22nd, 2011, we will hold our 2nd annual, live online SharePoint Saturday event in the EMEA Timezones.

Oh, and it’s free.


What will I be presenting?

The Ribbon UI and Custom Actions in SharePoint 2010

Custom Actions control features in SharePoint such as the List Item Menu, the Site Actions menu, toolbars, and the links within the Site Settings page, as well as the Ribbon UI in SharePoint 2010.

Learn how to leverage Custom Actions to extend the SharePoint User Interface. This session will describe the basics of Custom Actions, demonstrations to build and apply them in SharePoint as they relate to our lists using SharePoint Designer 2010, as well as provide resources for additional information.

Where can I find more information on SPS EMEA?

Right here: http://www.sharepointsaturday.org/emea/

Presentation and Resources from 12/14/11 FCSPUG

imageIt was earlier this year when I spoke with Bill Nagle of K2 about getting a user group up and running in Fairfield, CT. After many months later of successful meetings, I was happy to be able to go down and present to the group. The meetings themselves are hosted at Bigelow Tea, which was an interesting place – great facility, and the air smelled like tea 🙂 They even gave me a variety box of teas for coming down – I fully intend to enjoy it all!

Thanks again to Bill Nagle of K2 for spearheading the group there, Bigelow Tea for hosting the meeting, traffic for not being terrible (it’s about a ~6 hour round trip to Fairfield), Travel America for their awesome rest stops, and last, but certainly not least, everyone who came out for the meeting!

Below are my slides (minimal) from the meeting, as well as a link to the SPBasePermissions enumeration PDF I mentioned, as well as a link to Eric Kraus’s blog post with the PowerShell script to display all Custom Actions within the farm.

Please let me know if you have any questions or comments on the material in the comments below!

SPBasePermissions class enumeration PDF: http://go.gvaro.net/SPBasePerms

Erik Kraus’s PowerShell Script to list all Custom Actions in a Farm: http://blogs.msdn.com/b/ekraus/archive/2010/05/03/list-all-customactions-in-the-farm.aspx

Create a Custom Action to Satisfy Your “All People” Needs.


Thanks for the intro Carl! Much obliged! Well, in your SharePoint world, your “Pale Blue Dot” view of all of the people in your site collection is the “All People” view, you know, the User Information List.

Almost two months ago, I wrote an article on how the “All People” link in SharePoint 2010 is, well, it’s gone MIA. It is easy to get to via  link. And, if you’ve got one site collection to manage, well, its as simple as adding a link somewhere, like in a link list within a management site somewhere, or, up in the handy dandy bookmarking feature, in those fancy things all the kids are using these days, “web browsers”… whatever that means…? Anyways. So, you need to get there, but, wouldn’t it be nice and simple to add in a link to say, I don’t know, the Site Settings page? Wow! That’d be cool! Then I can access it with all of the other Users and Permissions links! Right in one place?! WOW!


So, the question becomes, how can we get it there? (HINT: I mentioned it in the title of this article!)

Ok, so I gave it away, shame on me, I spoiled the ending. Boo hoo. Yes, Custom Actions! That’s how we’ll get it there!

So, what to do? Well, not too much actually. The creation of Custom Actions in SharePoint 2010 and with Visual Studio 2010 has become, well, easy. Extremely easy in fact due to the fine folks who created the CKS:DEV project over at Codeplex. Why? Well, because it contains item types with fancy pants wizards to allow you to click a few buttons, and create a custom action project with ease. You really do not even need to be a developer to do this, it’s quite easy, and hey, I provide screenshots and code. Go ahead, do it!

So, let’s get started, shall we? Oh, you need a glass of water first. No problem. I’ll be here waiting for you.

… 15 minutes to get a glass of water? seriously? Did you pump it from the well?

Ok, so, make sure you have VS 2010 installed, as well as CKS:DEV. NO, I am not waiting this time. You lollygagged around with getting a glass of water last time… You had your chance!


First, create a new project in Visual Studio 2010


Then, create an Empty SharePoint Project

Oh, guess what you’re about to witness? Yes, you in the back in the Charlie Brown polo shirt! You’ve got it. The creation of my next codeplex project for Grace-Hunt (yes, I know, it’s been a while!)

And since we do not need to elevate privileges, or any of that fancy stuff required for a server-side deployment, we’re going to create this as a Sandboxed Solution…


Next, once our project is loaded in the Visual Studio IDE, let’s add a new item to the project.


Right click on your project, go down to Add, then select  New Item.

On the next screen you are presented with, make sure you have SharePoint and 2010 selected under Installed Templates.


Select Custom Action, and give it a name (such as UserInfoList). Then click Add.

Now, again, thanks to the fine folks who created CKS:DEV, we have wizards!


On the first screen on the wizard, we have 6 settings we are going to make use of, detail from here for each of these attributes: http://msdn.microsoft.com/en-us/library/ms460194.aspx






Optional Text. Specifies a unique identifier for the custom action. The ID may be a GUID, or it may be a unique term, for example, "HtmlViewer".



Required Text. Specifies the end-user description for this action.



Optional Text. Specifies a longer description for the action that is exposed as a tooltip or sub-description for the action.



Optional Text. Identifies an action group that contains the action, for example, "SiteManagement". If it is contained within a custom action group, the value of the GroupId attribute must equal the group ID of the CustomActionGroup element.

For a list of the default custom action group IDs that are used in Microsoft SharePoint Foundation, see Default Custom Action Locations and IDs.



Optional Text. Specifies the location of this custom action, for example, "Microsoft.SharePoint.SiteSettings".

If the CustomAction element contains a CommandUIExtension child element, the Location must start with "CommandUI.Ribbon". For a list of default locations that are used with the Server ribbon, see Default Server Ribbon Customization Locations.

If the custom action is a menu item or toolbar button, the possible options include EditControlBlock, NewFormToolbar, DisplayFormToolbar, and EditFormToolbar.

If it is contained within a custom action group, the value of the Location attribute must equal the location of the CustomActionGroup element.

For a list of the default custom action locations that are used in SharePoint Foundation, see Default Custom Action Locations and IDs.



Optional Integer. Specifies the ordering priority for actions.



On the next page, we do not actually need to set this option, however, I wanted to, to showcase this functionality. This utilizes the SPBasePermissions class to show whether this can be viewed to the user, based on the permissions they have for this object, in this case, the site collection.


On the last screen, and this is the important part, we need to specify the URL we want to have our CustomAction link to, this is the URLAction element. The ~sitecollection is a Token. More information on what tokens can be used in a URLAction can be found on slide #30 of my Creating Custom Actions in SharePoint presentation.


Now that we’ve finished defining the custom action, we just have a couple of more things to do. Since we do not our feature to be called “Feature1”, right-click on Feature1 in the Solution Explorer, and choose Rename.


Type it in, hit enter, all good.

Next we want to remove Feature 1 from after the title of our feature. Double click on the UserInfoList feature we just renamed, and we get a designer view of our feature (new in VS 2010).


In the Title field, remove Feature 1 after our feature, and add a description. Also, change the scope from Web to Site, which means we will deploy our solution to the site collection. Which also means, this link will appear for all Users and Permissions sections throughout all of the site settings pages within our site collection.


Now for the money! Right click on the project and select Deploy.


Look at the output window to see if we had success or failure…


And now look at your site settings page – there is our new link!

And that’s it! I will have this project published to Codeplex within the next few days, so, please keep an eye out.

Options for Deploying Reusable Workflows in SharePoint 2010

With SharePoint 2010, we have two new workflow types we can create, a Reusable Workflow, and a Site Workflow. Today we’ll concentrate on reusable workflows. And if you’ve been living under a rock for the past few months, let me first explain…

In WSS v3, we could create “reusable” workflows in Visual Studio, and through some third party applications, however, in v3, lots of workflows were generated in SharePoint Designer. And a lot of times, people found out the hard way, that you couldn’t just copy and paste them, or suck them into Visual Studio to re-deploy elsewhere. Those workflows are list-based workflows, which are bound just to a single list, in a single site. You could re-create the workflow on other lists, but, that is time consuming… and not that efficient at all.

There were options however – you could copy the workflow files over to a new list, and edit the workflow files manually, to point to the GUID of the list you wanted to deploy it against, or, use some Visual Studio Voodoo, to write some code to accomplish the same thing. Again, not entirely efficient, and, not out of the box.

With SharePoint 2010 and SharePoint Designer 2010, we finally have some options, out of the box.


  1. List Workflow – This is the same list-based workflow you know and love from 2007.
  2. Reusable Workflow – This workflow is tied to a content type, hence why it can be reusable, and the focus of this here article today.
  3. Site Workflow – The site workflow is a different beast altogether, and is a topic for another day. These are, as they sound, bound to sites. Not content types or lists, but, to the site itself. Site workflows are not initiated from list-level actions – they need to either be manually called, or called through code. But I digress – we’ll save this topic for another day…

Now, on to the meat and potatoes of this post. The reusable workflow, and, options for deployment. First, lettuce (you should always have some greens with your meat and potatoes… just ask your mother, she’ll tell you the same thing…) create a simple workflow, that will send an email to a single email address when the workflow is run.

I already have a list called Clients on my site, so we’ll use that. Open SharePoint Designer 2010, and connect up to the site, and click on the Workflows navigation node on the left hand of the screen. When you do, you’ll see the Workflows tab in the ribbon as shown above.



Create a New Reusable Workflow in SharePoint Designer

Now, you may be able to see the future, and to test this, if you think I am going to say “Click on the Reusable Workflow option in the Workflows ribbon tab”, then you are clairvoyant. Congrats on that! So cool… anyways, click there, just as you knew I was going to say.


Go ahead and give it a name, such as Notify Client Engagement Manager, and a description, with whatever you please… then select a content type. Now, something I forgot to mention, is that I had already created a Client content type prior to this, so, you may want to go ahead and do that, in case that’s what you’d like to do, if you’re following along at home. Go ahead – this post will still be here when you get back… I’ll wait.

Ok, done? Now, select your Client content type (as shown below), and click OK. You also may note, that you can associate this reusable content type to ALL content types. While I have not peered beneath the sheets on that one yet (SharePoint 2010 has not even officially launched as of the penning of this article…), I am guessing that it uses the System 0x or Item 0x1 content type to associate to, similar as I did in a previous article on binding custom actions to all list types.


Anyhow, back on track again! So, now that we have done. We get our next screen. Do as the man says, and start typing away…


A phrase like “email” is helpful – it’ll find the action you are looking for


Then press enter, and click on these users in the link that appears


And then create your email definition, something like as follows, and click OK.


And then click Save back up in the ribbon to save any changes, and when you’re ready, click Publish, that’ll, as you may have thought, publish the workflow.


Your workflow has now been created. Now, you’ll need to make sure your list is configured to use it, if, indeed, you’d like to use it. As it works just like the other reusable workflows in SharePoint (Approval, Three-State, etc.), it needs to be configured.

So, check your list, and be sure that it is managing content types,


And then, go into Workflow Settings on the list settings page


Select the content type…


And then configure the workflow…


And we’ll see that it is assigned to the content type now


Let’s test it, just to make sure… go to New Item > Client from the list page


And your workflow should fire. Great! Ok! Now what?

Now Bob, in HR, wants to do the same thing – what can we do? Good thing we created a reusable workflow! We have options, which is the real basis for this article.

Save As Template in SharePoint Designer

In SharePoint Designer 2010, we have the option now to save our Reusable Workflow as a Template. To do so, on the Ribbon UI when you are working with your workflow, select Save as Template.


This will automagically save the WSP file of the workflow out to the “Site Assets” library, and it will tell you it did so, as shown below.


If you click on the Site Assets link on the left-hand navigation in SharePoint Designer, you will see there should be a new WSP file, corresponding with the name of the workflow you had saved as a template.


Next, let’s download the file. Just click on it to save it.



Packaging and Deploying the Reusable Workflow in Visual Studio 2010

Now, here comes the good stuff. Fire up Visual Studio 2010, and go to File > New > Project from the menu.


If you have not seen it before in Visual Studio – under Visual C# > SharePoint > 2010, there is a new project template called Import Reusable Workflow. Select that, give your project a name, etc., and click OK.


You will then see the SharePoint Customization Wizard window pop up, select the URL you would like to use for deployment/debugging, and you cannot deploy workflows as sandboxed solutions, so Deploy as a farm solution is your only option. Hit Next >


The next window in the SharePoint Customization Wizard is to specify the project source. Select the WSP package containing your workflow which you had exported earlier.


Then, select the items to import – you should only have your workflow listed.


Click Finish, and Visual Studio will import your workflow from your solution.


And when it’s done, and if it completed successfully, it will tell you so.


Now, look at the solution in the Solution Explorer on the right. We are not going to make any changes at the moment, but, if you wanted to, add more code, change the forms, etc., you could do that all here.


Right click on the project and select Package


Once that is complete, if you look in the project folder (created when you selected the project in Visual Studio), you should see your WSP file for your project.


Now, you can deploy this out to the debugging/deployment site you specified in the SharePoint Configuration Wizard portion of the import of the workflow, by right-clicking on the project, and selecting Deploy.


Checking the Output window will show you the steps taken for deployment.


Now how do you check to make sure it was deployed? Well, in Visual Studio, double-click on Feature1.feature in the solution explorer, and in the Title field of the designer view for the feature, you will see your workflow there with it’s defaulted name of Converted Workflows.


In your site collection features, you should see a feature by the same name…


Activate it, if necessary, and now your cooking with gas, or really, you can use any other sort of medium for generating intense heat that you desire, I am not going to “hold your feet to the fire” on this. Hah. Sometimes – I just crack myself up.


Publishing a Reusable Workflow Globally through SharePoint Designer

The first word in the title of this article is “Options”. So, here is another option – using SharePoint Designer to publish the workflow globally. Now, that sounds bigger than it is, however, you also may note, if you are an astronomy buff, that it did not say “Publish Solarsytemmy”, or “Publish Galaxyally”, or even “Publish Universally”. Maybe because I just made some of those words up? Or, maybe, because you are working within the context of a site collection here – a “world” in SharePoint. I really have no idea – I don’t know who came up with the copy for that specific button, or, rather, any buttons anywhere in SharePoint Designer.

So, start by creating a new workflow, or, you can just use the one we did earlier if you’d like.


Give it a step, or else its not much of a workflow…


Ok, lets save the workflow…


and you’ll see in the Ribbon, that mysterious button Publish Globally. Go ahead – click it.


You will then be prompted by SharePoint Designer – telling you the intentions and ramifications, with not even a one word salutation, that publishing this workflow globally will publish it to all sites within the site collection. COOL! Do it!


Now, to see this in action, go back into your site, and create a new site.


Let’s go with a team site – simple, easy, and comes pre-populated with some lists.


Now, lets go into our document library, and check out the workflow settings to see if it is there…


Oh, wait – no workflows associated with this list. Let’s add one, to see if we can add ours…


And there it is!



Fun stuff, huh? Yeah, I know many of you who have already started toying with 2010 may have already seen, or even done, some or all of this. The truth of the matter is, I’ve had this sitting in my drafts folder since May 10th, and as you can also see, I am finally getting around to posting it.

Hope this helps – and if not, leave me a comment on where I can provide any clarification 🙂


Parachute deployment image borrowed from: http://www.cirruspilots.org/Content/CAPSHistory.aspx

Speaking and Sponsoring SharePoint Saturday NYC on July 31st, 2010

It has been a very busy week for me, so even though I received confirmation last weekend, I am just getting around to posting about it now. I was very pleased to find an email in my inbox to find that my session has been accepted for SharePoint Saturday NYC!

SharePoint Saturday NYC will be held at the Microsoft Manhattan Office – more details are on the site here http://www.sharepointsaturday.org/ny/Pages/about.aspx

Also, we will be teaming up with one of our favorite partners, AvePoint, to help sponsor the event (we’ll be raffling off a netbook!)

My session will be on Creating Custom Actions in SharePoint 2010.

Custom Actions control features in SharePoint such as the List Item Menu, the Site Actions menu, toolbars, and the links within the Site Settings page, as well as the Ribbon UI in SharePoint 2010. Learn how to leverage Custom Actions to extend the SharePoint User Interface. This session will describe the basics of Custom Actions, demonstrations to build and apply them in SharePoint, as well as provide resources for additional information.

This session is the 2010 version of the session I have been giving off and on for the past year and a half, upgraded and completely revamped for 2010. If you’ve attended my 2007 version of this session, then you will be in luck, as there is a lot more happening with custom actions in SharePoint 2010, we might need to gloss over some of the base material to build these out.

I will also be covering creating these in SharePoint Designer 2010, and importing them into Visual Studio 2010. Lots of fun and excitement! I hope to see all of my 8 readers there!


Speaking at the SharePoint Technology Conference 2010 in Boston


I received the “official” news yesterday from David Rubenstein, that I have been confirmed to speak at The SharePoint Technology Conference in Boston this October 20th – 22nd, at the Hyatt Regency Cambridge, in Cambridge, MA (it’s basically Boston). I will be joined by many other fantastic speakers, more on those to come as more conference information becomes available. In addition to delivering my own session “Creating Custom Actions in SharePoint” (more on that below), I will also be delivering a session with my good friend Mark Rackley, entitled “Just Freakin’ Work! Avoiding common hurdles in SharePoint Custom Development”. See below for information on both of those sessions…

Creating Custom Actions in SharePoint
Custom Actions control features in SharePoint such as the Edit Control Block, the Site Actions menu, toolbars, and the links within the Site Settings page. Learn how to leverage Custom Actions to extend the SharePoint User Interface. This session will describe the basics of Custom Actions, a demonstration to build one or more and apply them to a site in SharePoint, as well as provide resources for additional information.

Just Freakin’ Work! Avoiding common hurdles in SharePoint Custom Development
“Why am I getting a security error??” “Why does my code work sometimes, but not others?” “I wonder if McDonalds is hiring.” Writing custom code in SharePoint opens up unlimited possibilities but also throws many hurdles in your way that will slow you down if you don’t take them into account. So, before giving up and searching for careers in the fast food industry, equip yourself with the knowledge you need to succeed in writing custom code for SharePoint.

So, join us in October for a great soon-to-be-announced line-up of speakers, sessions, classes, and vendors in Boston! For more information, please visit The SharePoint Technology Conference website at http://www.sptechcon.com


%d bloggers like this: