Blog Categories

Subscribe to RSS feed


Follow Microsoft Technologies on Pinterest

Office 365 – Why You Need to Understand ImmutableID

As part of planning for your identity with Office 365, it’s important to understand the concept of the “ImmutableID”. By definition, “immutable” means “unable to be changed” which should be sufficient warning that this is something you need to take time to plan properly.

In spite of your planning, your organization could become involved in an unexpected merger, acquisition or divestiture that requires you to make changes to your Active Directory environment; this can have downstream impact to the ImmutableID and thus Office 365.

If you use Directory Synchronization with Office 365 and are looking at a future Active Directory migration project, it’s critical that you understand ImmutableID.

Below are some important concepts to understand around ImmutableID and potential ways to address it as part of Active Directory changes.
Read the rest of this post »

Advanced Content Targeting in SharePoint – Part 3

This is the third post in this series. In the last two posts (here and here), we implemented a custom token for the logged in user which filters incoming content in the search index based on the user’s profile attributes, and then creating display templates to render custom result URLs. Today we will dive into
extending this concept to the search results hover panel.

An internal portal accessed by employees and contractors in three dozen locations comprising of countries and/or regions. Authoring takes place in a separate content site and content is rendered on the publishing site. All content is targeted with three important profile attributes –
a. Location (comprises of country and it’s region)
b. Role
c. Business Unit

Each piece of content/link takes the user to the publishing site keeping authoring unexposed to the end user. What this means for search results is
1. The results should be targeted based on user profile properties (mentioned above)
2. Customizing search results URL to point to publishing site
3. Customizing hover preview to display publishing pages (instead of the authoring site content pages)
4. Customizing Control template to implement custom paging

The focus of today’s article will be #3. When SharePoint 2013 came out, the focus was primarily on making sure each result is quick and easy to find and read, while still displaying as much relevant information as possible to the end user.
When the user wants to learn more about a result, they hover their cursor over that result to see the hover panel dialog box.  The hover panel contains rich metadata that enables users to investigate a result more thoroughly, without having to click through and load the document. Hover Panel is broken into three sections
a. Header
b. Body
c. Footer Actions
The files which provide these sections are *HoverPanel.js , *HoverPanel.html, and then html and JS file for each of the following: *HoverPanel_Body, *HoverPanel_Actions, *HoverPanel_Header. These files could be found in the /search center site Master Page gallery.

In order to display the publishing site page in the hover preview we’ll need to make few changes to the OOB hover panel. Let’s start with making a copy of the “Item_DefaultHoverPanel_Actions.html”. This ensures keeping our customization separate.

Step 1
Update the managed property mapping section with our custom properties. In this case RefinableString00 and RefinableString01



Step 2
Snippet to build the linkURL. This linkURL points to the publishing site (instead of authoring)


Step 3
Render the hover panel header


Step 4
Render the body section



Step 5


Towards the end of the above DIV block, add this snippet to enable rendering of your custom preview




Big Changes to Azure: Introducing Azure App Service

Microsoft recently unveiled Azure App Service, a new cloud service which combines three existing Azure products: Azure Websites, Azure Mobile Services, and Azure BizTalk Services. Uniting web, mobile, and enterprise apps on a single cloud platform will allow developers to create an app once and deliver it across multiple devices.

This is a big announcement as Microsoft gears up for the delivery of Windows 10. The strategy is to move towards “universal apps” for phones, tablets, and PC’s. With the Azure service updates, this also extends to iOS and Android. In theory, a developer could use the same code to deploy to all of these devices. This is HUGE!

There are 4 primary areas within App Service -App-Service-Overview-640x360

  • Web Apps
  • Mobile Apps
  • API Apps
  • Logic Apps

From the Azure App Service description –

Rapidly build, deploy and manage web and mobile apps for employees or customers using a single back-end.

Use your existing languages skills – .NET, Java, NodeJS, PHP or Python. Accelerate development with access to a rich gallery of APIs, connectors, and logic available in the Azure Marketplace.

Read the rest of this post »

Perficient is named a Sitecore Platinum Implementation Partner

Stephen Tynes

Stephen Tynes, Sitecore MVP, recently joined Perficient

Today, Perficient announced that we are now a Sitecore Platinum Implementation Partner.

Sitecore established the new designation to recognize  partners who distinguish themselves through their implementation capability, joint reference clients with Sitecore, and demonstrated thought leadership in customer experience management.

It’s been an exciting couple of months for Perficient’s Sitecore practice. In addition to being named a Platinum Implementation Partner for Sitecore, we recently welcomed Stephen Tynes to the Perficient team. Stephen has a deep background in the Microsoft stack and brings a wealth of experience covering all facets of the Sitecore platform across both sales and delivery. He is a graduate of Liberty University and spent the last 11 years with Avanade.

From the news release:

“We’re grateful to be recognized for the work we’ve done for our customers on the Sitecore platform,” said Stephen Tynes, Perficient’s Sitecore Practice Director and a Sitecore MVP. “Our team of digital strategists, experience designers, and technologists is second to none, and Sitecore’s recognition of Perficient as one of their Platinum Implementation Partners is just another indication of that. With Sitecore and Perficient, you truly can create customers for life.”

Sitecore’s experience platform combines web content management, marketing automation, email marketing, social media, e-commerce, optimization, and analytics into a single, unified platform. The platform captures every interaction that customers and prospects have with a brand, whether on a website or through other digital channels.

“Our congratulations go out to Perficient,” said Dominic Citino, vice president of global partnerships and alliances at Sitecore. “This new designation as a Platinum Implementation Partner illustrates how Perficient can complete Sitecore’s vision for customer experience management and deliver these projects at scale.

“Perficient has demonstrated an extensive understanding of the entire Sitecore offering, has deep Sitecore experience and is committed to creating happy Sitecore customers,” Citino said.

You can read the full news release here.

Webinar: Big Data & Microsoft, Key to Your Digital Transformation

Companies undergoing digital transformation are creating organizational change through technologies and systems that enable them to work in ways that are in sync with the evolution of consumer demands and the state of today’s marketplace. In addition, more companies are relying on more and more data to help make business decisions.

And when it comes to consumer data – one challenge is the abundance of it. How can you turn complex data into business insight? The socially integrated world, the rise of mobile, IoT – this explosion of data can be directed and used, rather than simply managed. That’s why Big Data and advanced analytics are key components of most digital transformation strategies and serve as revolutionary ways of advancing your digital ecosystem.

Where does Microsoft fit into all of this? Recently, Microsoft has extended its data platform into this realm. SQL Server and Excel join up with new PaaS offerings to make up a dynamic and powerful Big Data/advanced analytics tool set. What’s nice about this is that you can leverage tools you already own for your digital transformation.

Join us next week, on Thursday, April 2 at 1 p.m. CT for a webinar, Transforming Business in a Digital Era with Big Data and Microsoft, to learn why you should be including Big Data and advanced analytics as components of your digital transformation and what options you have when it comes to Microsoft technology. Read the rest of this post »

Sitecore XML Sitemap Module Gotcha

When creating any modern website, sitemaps are an important consideration. A sitemap is a xml file that tells search engines and other crawlers all about your site’s content and structure. According to Google’s documentation, “Google doesn’t guarantee that we’ll crawl or index all of your URLs. However, we use the data in your Sitemap to learn about your site’s structure, which will allow us to improve our crawler schedule and do a better job crawling your site in the future. In most cases, webmasters will benefit from Sitemap submission”. In short, sitemaps are a good idea for any size website.

What does a sitemap look like? The schema is defined on An example file is embedded below.

For Sitecore, there is a fantastic module for serving sitemaps called Sitemap XML. Sitemap XML “creates a sitemap that is compliant with the schema defined on for your site.”. Like most modules in the Sitecore Marketplace, installation is accomplished via a package and some configuration edits. Follow the rest of the setup instructions on the module page – which will only take a few minutes for most sites. Pay special attention to which templates to include as you do not want crawlers trying to index data items that have no presentation specified.

Sounds great. So what is the gotcha? Read the rest of this post »

A Day in the Life of an Office 365 User


Office 365 comprises of a lot of services and features which can be overwhelming for an end user. More often than not, we hear concerns from organizations and individual users of how roll out of new products and technologies fail. I do not see this as a technology problem, rather a communication and change management issue.

At Perficient, we deal with this day in and day out and understand the importance of a successful roll out. Any big technology implementation requires a significant investment (time and effort) towards creating and utilizing process, training, and governance. It’s not just big talk, but an extremely important undertaking when moving your platform to the cloud (Office 365).

When we look at a typical day in life of an end user from the time they start their day to the time they shut down their devices (and brains), they go through their emails, work on documents, involve in conversations (phone or messaging), search for content, and much more. Office 365 connects all of these tasks and make it seamless so it’s tightly interwoven. In this post I will take the opportunity to showcase few of these scenarios and demonstrate how a day would look like for an office 365 user. Read the rest of this post »

Office 365 – The Magic Behind The Hybrid Config Wizard (2013)













In a previous article, I extracted the changes made by the Exchange 2010 Hybrid Configuration Wizard (HCW) to get a better idea of what is going on behind the scenes when you run the HCW.

The same questions apply to Exchange 2013:

So what does the wizard do?

What does it change?

What is the impact?

If you submitted a change control request stating that you’re going to “run the hybrid wizard”, you’re probably being asked these same questions.

For those that are implementing Exchange hybrid on a regular basis, what the wizard does should not be a mystery at this point. If you’re new to Exchange hybrid, I’ve outlined below the individual commands run by the wizard and areas where there might be potential risk.
Read the rest of this post »

Web.config Transformation and XPath to update bindingRedirect

You can use Web.config transformations to update the bindingRedirect element in the web.config of an website.  This is more complex than other xdt transforms because the only identifying information is in a sibling assemblyIdentity element.  For example, the configuration for the default Sitecore System.Web.MVC dependentAssembly element looks like the following:

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1" />
        <bindingRedirect oldVersion="" newVersion="" xmlns="urn:schemas-microsoft-com:asm.v1" />

To change the bindingRedirect so we can use ASP.Net MVC version 5.2 in our Sitecore project, we have added the following to the Web.Debug.config:

<configuration xmlns:xdt="" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1">
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly xdt:Transform="Replace" xdt:Locator="Condition(asmv1:assemblyIdentity/@name='System.Web.Mvc')">
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1" />
        <bindingRedirect oldVersion="" newVersion="" xmlns="urn:schemas-microsoft-com:asm.v1" />

In the configuration above, the xdt:Locator finds a dependentAssembly element with a child, assemblyIdentity, whose name attribute equals System.Web.Mvc.  If found, the element’s contents are replaced with the new System.Web.Mvc version above.

Notice that the namespace for assemblyIdentity had to be added to the configuration node in the Web.Debug.config.  This namespace is then used in the condition statement.

This same technique can be used anytime you need to transform a node based on the value of a sibling’s attribute.

You may not need to use this technique often but it helps to keep custom modifications outside of the Sitecore configuration files when you are upgrading your site.  This way you can just replace your Sitecore configs with the new versions and check that the transforms are still needed.

How (Microsoft) Mobile Apps Could Kill The Corporate Intranet

corporate intranet apps

In my latest post over at CMSWire, I’ve outlined a (very plausible) scenario whereby the groundswell of user preference for mobile form factors could– and perhaps, should– spell doom for the concept of the enterprise intranet.  This is “digital transformation” writ large for employee productivity.

Sound a bit loony, coming from someone who loves to envision, plan and build SharePoint intranets?  Possibly.  But in the scenario I’m discussing, SharePoint hardly goes away.  In fact, it serves as a back-end for many of the services users will be accessing via mobile apps on their iOS and Android– and yes, even Windows– tablets and phones.

It’s a heady mix of mobile’s engaging (even addictive) UX, service-oriented architecture, software as a service (cloud/SaaS), and forward-thinking embrace of technology and consumer trends.  And you can just about pull it off with today’s technology.

Curious?  Go check it out.