Blog Categories

Subscribe to RSS feed


Follow Microsoft Technologies on Pinterest

Posts Tagged ‘sharepoint 2010’

Much Awaited OneDrive for Business comes to Mac and iOS

This announcement should be music to the ears, for all the Mac and iOS diehards using Microsoft apps. Earlier I had blogged about an interim solution for these devices, you can read it in my post here. Last week, Microsoft announced new ways that you can access and manage your OneDrive for Business (ODFB) files from your Mac and iOS devices. The good news is that ODFB works like OneDrive (Personal): You get a virtual drive in the Finder so that you and your apps can access ODFB files normally. That means that Office for Mac can now access files in your corporate ODFB account (which should have always worked). New capabilities in how you view, manage, and share your photos and it now allows you to connect to one or more ODFB accounts.

Previously Microsoft had shipped two separate apps – one for your personal files and one for business files – now you can do this all within the one app. For a business user you can access all your files plus all the files that have been shared with you. You can even access your most recent files plus recover accidentally deleted files from the Recycle Bin. You can download the iOS app from the app store, and the Mac sync client preview from the Microsoft Download Center. You can also take a first look at the new Mac sync client on Office Mechanics. I share below some screenshots from my iPhone, that goes to show how easy it is to add ODFB to your existing app. Read the rest of this post »

Why governing Yammer vs. SharePoint represents an about-face

Yesterday may have been Ground Hog Day, but unlike the movie, I’m happy to report no time loop (although there was a lot of snow for some of us). Aside from the freshly fallen snow, there was also fresh new content over on CMSWire, thanks in part to my colleague Rich Wood and his article The Yammer vs. SharePoint Governance Taste Test.”

Rich is the only person I know who can relate Folders Crystals to governance in Yammer and SharePoint and have it make perfect sense. How so?

Do you remember the Folgers Crystals instant coffee commercials from the 1980s? In these 30-second advertisements, a surreptitious survey is taken of diners in a fancy and presumably expensive restaurant. Served after-dinner coffee, they inevitably describe for the camera how fantastic it tastes and smells. Just as inevitably, the shock of the coffee drinkers when they discovered they’d actually been served Folgers Crystals — instant coffee, not the freshly-brewed European blends they’d been expecting — gave their snobbish expectations the lie.

In many ways the governance of Yammer vis-à-vis the high-powered governance features of SharePoint is similar to that cup of Folgers coffee versus flavor expected of the freshly-brewed premium blends.

Rich goes on to explain that the shocked diners are your SharePoint admins. Within Yammer, the governance features are softer and lighter, existing to guide collaboration. The opposite is true of SharePoint, where the governance model tends to restrict people from communicating outside of approved circumstances. Despite being so different, when deployed correctly, governance in Yammer can be just as effective as that of SharePoint.

Rich discusses the importance of understanding the differences between social, cloud-based collaboration like Yammer and collaboration within the older, document-first platforms.

If you’re used to thinking of “governance” in a SharePoint context, it can be a difficult transition — even an unnatural one — into governing a Yammer network properly while still encouraging user engagement. The baseline systems serve different purposes. Simply put, SharePoint is for files, Yammer is for people.

Read the rest of this post »

Is Your SharePoint Ready for Yammer?

Whether your organization is experiencing rapid growth or you simply need better collaboration, enterprise social is the key to your needs. I gave an overview of the latest services offered in Office 365 in my blog post here and for the purposes of today’s article I will focus on the enterprise social networking (ESN) product, Yammer.

Yammer is a private social network that allows you to stay on top of all your collaboration and sharing needs internal or external to your organization. If you have heard or worked with some of the other ESNs like Jive, Salesforce chatter, IBM connections you might have already heard of Yammer. Microsoft has made big leaps in the last year or so in promoting Yammer as the primary social platform in the SharePoint and Dynamics CRM roadmaps. Microsoft has clearly stated that they believe the future of social collaboration to be in the cloud, and are making most of their investments in cloud-based features within Yammer and Office 365. As a result we are experiencing a massive shift from our customers to Yammer as their social platform to enhance their social collaboration practice. The one concern I have been hearing from lot of organizations is around making this transition – from native SharePoint social to Yammer.

  • What happens to the data in SP social?
  • Would tags, keywords, likes, and conversations be a migration candidate?
  • When should we make the switch to Yammer?
  • How does this affect SharePoint communities of practice?

Remember when we talk about Social in the enterprise we should not focus on the tool, but rather work on the underlying change management process which involves leaders and followers, to promote, adapt and engage in a way which helps streamline business processes. If you are currently using native SharePoint social features, the choice to stay with it or go with Yammer depends on your specific use cases but on a very high level I recommend that you:

  • Stay with native SharePoint social – if you wish to utilize communities of practice leveraging your existing templates or information architecture AND if your organizational policy does not allow sharing of data and conversations in the cloud.
  • Go with Yammer – if your organization has high collaboration or knowledge sharing needs and requires employees to come out of the organizational silos and get quick return from the use of unstructured data AND your organization is currently on or making a shift to Office 365 enterprise plans which can leverage from rich integration features coming down the road

How do I make the shift?

Any enterprise social implementation should be handled as a change management process and Yammer is no different. Look to involve users and designate champions or what we call “Yambassadors” who will help drive adoption ensuring high level of engagement from your workforce. Yammer provides various integrations e.g. with SharePoint 2010, SharePoint 2013, DirSync, SSO, Intranets and Portals, activity stream from line of business applications, and API usage for custom integrations.

Here at Perficient we have been involved with spearheading some early adoptions working with complex use cases.  In the case where you are currently using native SP social features, from what I have seen there is no silver bullet, but the preferred route is to start with bringing up Yammer side by side with your existing native SP social newsfeed, and as the adoption grows replace relevant features with Yammer.   Although there is no direct path for migrating your data from the native SP social newsfeed to Yammer there are some considerations that I would like to share.

  • While making this shift use Yammer embed within your portal team sites, and my sites. It’s a simple app part available on your SharePoint site (once enabled and installed by your administrator) which can be configured to point to your home, group or user feed.

Yammer Embed in Communities Of Practice


  • If you are heavily using the SP community sites then I would recommend embedding Yammer app and transitioning by starting conversation thread inside of Yammer embed vs. the native SharePoint feed. You will be surprised at how fast people pick Yammer in their everyday life. The striking similarity of Yammer user experience with that of Facebook is an added advantage, you will end up saving a ton on end-user training.
  • Designate champions from each department or line of business – In order for your employees to embrace Yammer you will require a team of champions who are trained with the social capabilities and help you manage the communities at large. Actively involve them in constant redefining the Yammer communities
  • Get buy in from C-level executives – Involve senior leadership in all major decisions, you would be pleasantly surprised to see what few posts from your C-level executives can do to drive engagement.
  • Align social activities with your business objectives
  • Go for a soft launch – Soft launch or pilot helps you get the buy in from leadership and assist you with focusing on the most relevant Yammer features when you do go live. Here is an interesting article by Steve Nguyen on why NOT to call it a pilot.
  • Broadcast the Change – To make the biggest impact this message should come from your c-level executives.
  • Fade off the native SharePoint social features – Once you get some adoption across the organization by utilizing Yammer embed, go ahead and start switching off the native features eventually completely removing them. This article guides you through this process.
  • Plan on Single Sign On – To ensure a smooth transition plan on implementing Active Directory federation Services (ADFS) for single sign-on (SSO). This reduces user frustration when trying to log on to Yammer. Check here for Yammer integrations
  • Plan for cutover and staged migration – Your existing social Data cannot be migrated over to Yammer so plan on communicating this to users so they can plan ahead. One possible approach would be to use OneNote for copying and pasting important threads.
  • Yammer Network feed and Embed – Use the Yammer network feed ( for full screen activity feed, and Yammer embed in communities of practice for group conversations

Yammer is also a great platform for external, ad hoc collaboration where you can maximize flexibility, and collaboration is more about the conversation than with structured content. So when designing extranets or looking for options to share files, notes, ideas, and meeting minutes think of Yammer. If you are already on Office 365 or looking to move, Yammer will be highly integrated within the whole experience – groups, search, etc. You should expect this integration to be coming very soon this year #worklikeanetwork.

Update 04/29/2014: While discussing social landscape with folks from the Yammer community, Richard diZerega raised a real good point which should be considered while weighing their options between native SP social and Yammer: “From an IT Pro standpoint, native SharePoint Social is a maintenance nightmare. It uses the SharePoint MySites as the database for social activity and makes heavy use of SharePoint’s distributed cache. Both of these are very challenging to scale and architect correctly. All that effort for a social platform with capabilities that pale in comparison to Yammer.”


How would I know if Yammer is providing any Value?

Yammer provides basic and advanced analytics which you can use to determine the level of engagement across the organization. My fellow co-worker Rich Ross wrote a nice article on the various reports you get out of the box. Out of the box statistics are available for all users of the network while advanced reports are available for administrators via the Data Export feature.



If you like visualizing data and generating cool stuff I highly recommend reading this post from Richard diZerega. He shows some real powerful stuff your administrators can unleash by using the Data Export feature, Excel, and PowerBI. Take this to your next executive meeting and I’ll bet you will make some jaws drop!

Bonus: Look at this great infographics on Yammer and #worklikeanetwork

So what are you waiting for, get out there and start Yammerizing your network!!

Perficient’s Top 5 SharePoint Blog Posts of 2013

As 2013 comes to a close, we’re taking a look at our most popular blog posts of the year. Here are the top five SharePoint related posts, in no particular order:

SharePoint or Sitecore? Let me explain…
Rich Wood makes predictions concerning SharePoint, Sitecore and the future of public-facing websites on the Microsoft platform. He suggests that public-facing internet sites built on SharePoint will become a curiosity, and that Sitecore will be a more compelling direction going forward.  He also gives valid reasons for choosing SharePoint for a public-facing website, as well as the compelling alternative that is Sitecore.

InfoPath and SharePoint 2013 – Upgrading your forms…Top-5-sharepoint
If you are planning to upgrade your SharePoint 2010 site to SharePoint 2013, and are wondering how to deal with your existing InfoPath developed forms, Suzanne George covers the process, giving step-by-step instructions on exactly how she went about migrating the forms. She also lists out the tools you’ll need to complete the process.

SharePoint 2013 Search Display Templates Semi-Deep Dive
If you’ve poked around with display templates in SharePoint 2013 search, you’ve probably run into several JavaScript do-dads. What exactly is being rendered, and what does this mean? Will Tseng explains in this to the point post.

SharePoint 2013 Search DYI Display Template
Will continues with the topic of search in SharePoint 2013, and here, he explains how to create your own custom hover panel display template. Why? Because once you get this, you’ll be able to create the results display template, as it follows the same model. Follow along to build a full fledged hover panel display template. Once you’ve created it, upload it to the master page gallery and you should be able to reference it from your item display templates by changing the JavaScript in the your item display template.

SharePoint Careers: Three Most Successful Career Paths
Are you wondering where your SharePoint career is headed, or what’s the best way to move forward? Whether you’re experienced, or a fresh-faced job seeker, Rich Wood has some stellar advice. He covers three rock-solid routes to a successful SharePoint career: the Microsoft partner space, enterprise IT and, of course, working directly for Microsoft.

Over the next two weeks, we’ll share more of the most popular posts of 2013, covering topics such as Lync, Office 365 and Sitecore.

Exporting Term Sets

I don’t know about you, but I really wish there was a way to export managed metadata in SharePoint, especially since SharePoint teases you with the ‘Import Term Set’ option. To get around this I’ve written a little script to export all of the term sets in a term store (easily customizable to just export the term sets in a particular group or just 1 term set if you choose to go that route) to a CSV file that follows the Microsoft formatting convention needed to use the Import Term Set option.  It’s not perfect, but it definitely gets the job done.  I thought I’d share it with you all to hopefully make someone else’s life a little easier.

For information on the formatting of the CSV file for import please see this Technet article.

   1: Add-PSSnapin "Microsoft.SharePoint.PowerShell"


   3: function Get-TermSetsCSV() {

   4:     param($SiteUrl, $CSVOutput)


   6:     $empty = ""


   8:     $taxonomySite = Get-SPSite -Identity $SiteUrl


  10:     #Connect to Term Store in the Managed Metadata Service Application

  11:     $taxonomySession = Get-SPTaxonomySession -site $taxonomySite

  12:     $taxonomyTermStore =  $taxonomySession.TermStores | Select Name

  13:     $termStore = $taxonomySession.TermStores[$taxonomyTermStore.Name]


  15:     foreach ($group in $termStore.Groups)

  16:     {

  17:         foreach($termSet in $group.TermSets)

  18:         {

  19:             $terms = @()


  21:             #The path and file name, in this case I did C:\TermSet\TermSetName.csv

  22:             $CSVFile = $CSVOutput + '\' + $termSet.Name + '.csv'


  24:             #From TechNet: The first line of the file must contain 12 items separated by commas

  25:             $firstLine = New-TermLine -TermSetName $termSet.Name -TermSetDescription $empty -LCID $empty -AvailableForTagging "TRUE" -TermDescription $empty -Level1 $empty -Level2 $empty -Level3 $empty -Level4 $empty -Level5 $empty -Level6 $empty -Level7 $empty

  26:             $terms+=$firstLine


  28:             #Now we start to add a line in the file for each term in the term set

  29:             foreach ($term in $termSet.GetAllTerms())

  30:             {


  32:                 $tempTerm = $term

  33:                 $counter = 0

  34:                 $tempTerms = @("","","","","","","")


  36:                 #this while loop makes sure you are using the root term then counts how many child terms there are 

  37:                 while (!$tempTerm.IsRoot)

  38:                 {

  39:                     $tempTerm = $tempTerm.Parent

  40:                     $counter = $counter + 1

  41:                 }


  43:                 $start = $counter


  45:                 #this makes sure that any columns that would need to be empty are empty

  46:                 #i.e. if the current term is 3 levels deep, then the 4th, 5th, and 6th level will be empty

  47:                 while ($counter -le 6)

  48:                 {

  49:                     $tempTerms[$counter] = $empty

  50:                     $counter = $counter + 1

  51:                 }


  53:                 #start with the current term

  54:                 $tempTerm = $term


  56:                 #fill in the parent terms of the current term (there should never be children of the current term--the child term will have its own line in the CSV)

  57:                 while ($start -ge 0)

  58:                 {

  59:                     $tempTerms[$start] = $tempTerm.Name

  60:                     $tempTerm = $tempTerm.Parent

  61:                     $start = $start - 1

  62:                 }


  64:                 #create a new line in the CSV file

  65:                 $CSVLine = New-TermLine -TermSetName $empty -TermSetDescription $empty -LCID $empty -AvailableForTagging "TRUE" -TermDescription $empty -Level1 $tempTerms[0] -Level2 $tempTerms[1] -Level3 $tempTerms[2] -Level4 $tempTerms[3] -Level5 $tempTerms[4] -Level6 $tempTerms[5] -Level7 $tempTerms[6]


  67:                 #add the new line

  68:                 $terms+=$CSVLine

  69:             }


  71:             #export all of the terms to a CSV file

  72:             $terms | Export-Csv $CSVFile -notype

  73:         }

  74:     }

  75:     $taxonomySite.dispose()

  76: }


  78: #constructor

  79: function New-TermLine() {

  80:     param($TermSetName, $TermSetDescription, $LCID, $AvailableForTagging, $TermDescription, $Level1, $Level2, $Level3, $Level4, $Level5, $Level6, $Level7)


  82:     $term = New-Object PSObject


  84:     $term | Add-Member -Name "TermSetName" -MemberType NoteProperty -Value $TermSetName

  85:     $term | Add-Member -Name "TermSetDescription" -MemberType NoteProperty -Value $TermSetDescription

  86:     $term | Add-Member -Name "LCID" -MemberType NoteProperty -Value $LCID

  87:     $term | Add-Member -Name "AvailableForTagging" -MemberType NoteProperty -Value $AvailableForTagging

  88:     $term | Add-Member -Name "TermDescription" -MemberType NoteProperty -Value $TermDescription

  89:     $term | Add-Member -Name "Level1" -MemberType NoteProperty -Value $Level1

  90:     $term | Add-Member -Name "Level2" -MemberType NoteProperty -Value $Level2

  91:     $term | Add-Member -Name "Level3" -MemberType NoteProperty -Value $Level3

  92:     $term | Add-Member -Name "Level4" -MemberType NoteProperty -Value $Level4

  93:     $term | Add-Member -Name "Level5" -MemberType NoteProperty -Value $Level5

  94:     $term | Add-Member -Name "Level6" -MemberType NoteProperty -Value $Level6

  95:     $term | Add-Member -Name "Level7" -MemberType NoteProperty -Value $Level7


  97:     return $term

  98: }


 100: Get-TermSetsCSV -SiteUrl "Your Site URL" -CSVOutput "C:\TermSet"

Case Study: State Government Website Migration to SharePoint

Perficient recently worked with a state government to move its existing public website to SharePoint 2010. Upgrading to a newer technology would enable the state to save financially and make technical improvements while keeping pace with its evolving business demands. The migration would also provide for the standardization of state agency websites on a single solution with a common content management system.

Here is an excerpt from the case study describing the solution:

To deliver value quickly while minimizing impact on end users and content authors, Perficient leveraged automated processes, where applicable, to move content into the new environment. Perficient leveraged Kapow Software’s migration tool, Katalyst, to develop a consistent and reusable process capable of migrating information managed in the Autonomy WCM platform. Utilizing Katalyst, legacy content was systematically transformed, formatted and migrated to the new SharePoint environment. Perficient streamlined the migration process, automating the extraction and transformation of content, metadata, and taxonomy for the new SharePoint solution. Perficient was able to move content in one tenth of the time it would take to manually migrate, and at a reduced cost.

Within the legacy portal, a portion of agency sites were not on the Autonomy TeamSite platform, or used custom development. For these sites, automated content migration was not feasible. In order to migrate, the customizations and legacy content had to be manually refashioned and recreated in the new environment. To deliver value early and often, Perficient established three parallel work steams. The first encompassed initial platform development and configuration. The second work stream of custom application development utilized Perficient developers who specialize in Microsoft technologies. This involved rebuilding code to replicate certain functionality found within the legacy portal. The Perficient team integrated the new code into the SharePoint environment.

Overall, the team migrated more than 200,000 different resources — forms, documents, specific agency pages and links — into the SharePoint environment, unifying the sites on one common platform and architecture.

To read the case study in its entirety, including the full solution and resulting business value, click here.

Case Study: Given Imaging Redesigns Website on SharePoint 2010

Perficient recently worked with Given Imaging to redesign its corporate website,, on SharePoint 2010. Given Imaging had first partnered with Perficient to improve its website, which is dedicated to advancing PillCam® capsule endoscopy and built on the SharePoint platform.

Here is an excerpt from the case study describing the challenge:

Built on the SharePoint 2007 platform, was originally designed to engage patients and physicians by capturing their attention early and directing them to targeted information. As Given Imaging matured, the company has identified other types of users that are not being well served, such as media and educators. Overall, the company desired its new corporate website to have an updated look and feel that would elevate the Given Imaging brand, with improved functionality and more flexibility to accommodate new products.

And the solution:

Issues with basic functionality made it challenging to edit content and navigate the corporate website. For example, the use of images in the navigation prevented updates to the product mix and limited indexing by search engines. Because Given Imaging is growing and has a constantly changing mix of solutions, Perficient designed the new website to easily accommodate new product offerings and product categories while maintaining a unified aesthetic and logical navigation.

The new website is effectively elevating the Given Imaging brand, and emphasizing the fact that the company has much more to offer than “just Pillcam technology.” To learn more about the deployed solution and the resulting business value of Given Imaging’s implementation of SharePoint 2010, read the full case study.

NewsGator Activity Feed Dissected

Don’t worry, no blood was spilled and no activity feed was harmed in the making of this blog post.

The diagrams below apply to NewsGator activity feeds from Versions 2.6 and 3.1. The classes labeled in orange were added in v3.1. The Share box was re-done in 3.1, so the 1st one is v2.6 and the 2nd one is v3.1 (hence the orange title).  I didn’t document every single div and span, just the major ones that you need to create your own NG style. Enjoy! (and feel free to let me know if i got something wrong or if you found something important that I missed)

Activity Feed Top Panel


  Read the rest of this post »

Variation Labels (_Layouts/VariationLabels.aspx) is broken

I have been assigned on a project to investigate some issues with SharePoint Variations and the first issue I encountered was the error shows up when I click on Variation Labels link under Site Settings. The error pops up with a message “Object reference is not set to an instance of an object” and correlation ID.

As the error on the screen doesnt tell much I took the correlation ID and looked it up in the ULS logs several times and it appears to be complaining about resource file and the obvious answer to solve the issue to most SharePoint admins was to find the resource file and investigate where to get it from. The USL log looks like this:

Name=Request (GET:http://intranet/_Layouts/VariationLabels.aspx
Failed to open the file ‘C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Resources\cmscore.en-GB.resx’. 
#20015: Cannot open “”: no such file or folder.
Failed to read resource file “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Resources\cmscore.en-GB.resx” from feature id “(null)”.
Failed to open the language resource keyfile cmscore.
System.InvalidOperationException: Field not found: Label    at Microsoft.SharePoint.WebControls.DataBoundFieldHelpers.GetProperty(PropertyDescriptorCollection properties, String fieldName, Boolean isDesignMode) trols.BaseDataBoundControl.EnsureDataBound()     at System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls()     at System.Web.UI.Control.EnsureChildControls()     at System.Web.UI.Control.PreRenderRecursiveInternal()     at System.Web.UI.Control.PreRenderRecursiveInternal()     at System.Web.UI.Control.PreRenderRecursiveInternal()     at System.Web.UI.Control.PreRenderRecursiveInternal()     at System.Web.UI.Control.PreRenderRecursiveInternal()     at System.Web.UI.Control.PreRenderRecursiveInternal()     at System.Web.UI.Control.PreRenderRecursiveInternal()     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Leaving Monitored Scope (Request (GET:http://intranet/_Layouts/VariationLabels.aspx)

Reading ULS logs is sometime tricky especially when you have multi server farms. Though one thing worth mentioning here is that the errors roll up in sequence and the result of the error can be another error which is often misleading and its easy to lose the focus on the point of failure. As you can see in the above error, SharePoint is complaining about cmscore.en-GB.resx which indeed does not exist so one might go and start looking for the file where in reality it has nothing to do with any resource file and the underlying error is the unexpected occurrence of a field called Label. Read the rest of this post »

Service Manager 2012 – Self Service Portal Step by Step Part 1

This is part 1 of 2,  a step by step document on how to install the Service Manager 2012 Self Service Portal on SharePoint 2010.  These best practices are a result of many production installs in the field and the lessons learnt (so you don’t have to!)

Best practice is to have a separate VM just for the Self Service Portal (you can use an existing SQL instance, e.g. the one Service Manager uses, or a new SQL) – or you can install on the Service Manager box itself (not recommended), but then it becomes intertwined and you cannot uninstall without removing the whole of Service Manager.


Part 1 – SharePoint 2010 Install




  • Portal VM System Requirements – Server 2008 R2 OS fully patched
  • 8GB RAM Minimum
  • 4 CPU
  • 80GB OS Drive

Monitor this VM, and increase resources as necessary when load/users increase.



Either download SharePoint 2010 Foundation, or use your existing full SharePoint 2010 Server software and license key.  For this blog I’ll assume we’re using the SharePoint 2010 Foundation (although the steps are almost identical).

Download SharePoint 2010

Download SharePoint 2010 Service Pack 1

Read the rest of this post »