Blog Categories

Subscribe to RSS feed


Follow our Microsoft Technologies board on Pinterest

Webinar: Binary Tree & Perficient on Migrating to Exchange

It’s not uncommon for an organization to make some avoidable mistakes as they prepare for and then execute a migration from a legacy email platform to Microsoft Exchange (and that applies to Exchange 2013 on premises migrations  as well as those moving to Office 365 / Exchange Online).Binary Tree

If you are hoping to mitigate those migration risks, and ensure seamless coexistence between your current email platform and Exchange,  join Perficient and Binary Tree on Tuesday, September 9, 2014 at 1 p.m. CT for a webinar, Best Practices & Solutions for Migrating to Microsoft Exchange. During the session, you’ll learn how to dramatically reduce the costs, complexities and timeline of your migration, and hear why a move the cloud might be the right decision for you.

René Strawser and James Tolentino, both lead technical consultants in our Microsoft practice, will first take a look at common challenges surrounding migrations from legacy email platforms, details around making the move to Office 365, and will walk through a recent example of an organization that successfully migrated to Exchange Online with Binary Tree.

Binary Tree solution architect Perry Hiltz will then present a technical deep-dive of their award-winning SMART migration software solutions, CMT for Coexistence and CMT for Exchange software, which can be used on-premises or remotely. Binary Tree is the leading provider of messaging and collaboration transformation technology and solutions for the Microsoft platform in the cloud, on-premises, or hybrid environments. You can learn more about Binary Tree by visiting

To register for the webinar, click here.
Best Practices and Solutions for Migrating to Microsoft Exchange
Tuesday, September 9, 2014
1:00 p.m. CT

Partner Spotlight – K2 Appit for SharePoint

Perficient has many great partners that support our development and deployment of the best of breed solutions we provide for our clients. This post is one of them in a series that will highlight some of the products available from our partners. Today, I’ll be presenting K2 and and their Workflow and Forms Apps for SharePoint in the Cloud.

SharePoint apps that bridge the cloud and your people k2_appit

K2 Appit for SharePoint is a cloud-based platform that allows you to easily deliver workflow and forms apps for SharePoint 2013 and SharePoint Online, without code. Use it to help your people get more work done, at any time and from anywhere, with real-time information that enables smarter, faster decisions.


  • NO INSTALLATION: The Appit cloud service doesn’t require any software installation and integrates with your SharePoint environment within minutes. You’ll be ready to focus on building great solutions before you know it.
  • EASY-TO-USE TOOLS: Intuitive, browser-based designers allow even non-technical users to quickly build workflows and forms directly in SharePoint.
  • SYSTEMS INTEGRATION: Appit apps can span line-of-business systems that reside on premises and in the cloud.
  • UNIVERSAL ACCESS: An enterprise-class workflow engine allows you to provide apps wherever your people work


With Appit, you can deliver SharePoint-based workflows and forms that link on-premises and cloud-based systems, to give your users the information they need. No code required.

Build workflow apps for SharePoint documents and lists.

  • Drag-and-drop design tools help you develop common workflow scenarios and allow you to easily share your designs for real-time collaboration with colleagues.
  • Flexible workflows integrate with SharePoint lists and libraries across multiple sites — even spanning SharePoint 2013 and SharePoint Online.
  • Mobile applications allow your team to take action, delegate, check status or find information, all from their phones or tablets.
  • A custom logic and rules engine gives you the power to build SharePoint workflow applications that fit your business needs precisely.

Build forms and workflows that combine SharePoint and line-of-business data.

  • Quickly create intuitive, easy-to-use forms from within a browser. Forms can be customized, and they are reusable to save time and ensure consistency.
  • Easily pull LOB data into SharePoint workflows and forms. Appit integrates with Microsoft CRM, Exchange, SQL Server and any other system that is available via Web services.
  • Provide a better user experience and help your team make smarter decisions with integrated forms, data and reporting.


To learn more about how K2 Appit for SharePoint can help you deliver workflow apps in all the places your people work, contact us. We’ll arrange a free demo.

Enhancing the Digital Customer Experience with Sitecore

Just as we gear up for a webinar focusing on the digital experience – scheduled for this Wednesday, more information here – our team has published a new Perficient Perspectives on a closely related topic. Perficient Perspectives are a series of informal Q&A with subject matter experts on hot technology topics and trends. PP

In the latest Perspective, Enhancing the Digital Customer Experience with Sitecore, experts from Perficient’s XD, Sitecore, and Portal, Web Content & Social practices teamed up to share their thoughts around why digital experiences and presentation are crucial factors in shaping customers’ perceptions of a company. Jason Maloney, Mark Gehman, and Michael Porter explain how Sitecore’s web content management system enables continuous improvement of a website to address heightened customer demands, and how Sitecore’s digital marketing creates an opportunity for marketers to deliver on their strategic goals, with tools that include engagement automation and analytics.

One quote that really stood out to me from Jason Maloney, on the need to create a digital experience through your website that fits your unique set of customers:

I’ve always thought of the digital experience, at least the brand’s .com, as the centerpiece of its customer experience. If you are in retail, it’s your biggest store. In automotive, it’s your largest dealership. You aren’t limited to stock on hand, location limitations or customer service representative bias. And you can test, learn and adapt in practically “real time” to meet your customer’s needs. That said, I think it’s critical to communicate the brand’s truths to your customers in all experiences. A website should not be the same for all brands because one set of customers is different from the other.

Marketers, I definitely recommend reading the full Perspective, which is available here. Of course, the past Perspectives are worth reading too!

As mentioned, in conjunction with this new Perspective, we’ve got a great webinar lined up for Wednesday, August 27, at 1 p.m. CT, Using the Right Content Strategy to Create a Personalized Digital Experience. Jason, Mark and Michael will be sharing some key content strategies, best practices and ways to create content that keeps your users coming back. They’ll also discuss how tools like Sitecore can help drive the personalized digital experience.

Spaces in Binding String Causes Issues in Sitecore AD Module

Recently working with a client in which we installed the Sitecore Active Directory Module version 1.1 with a Sitecore 7.1 implementation. So after configuring the AD module in the client’s authoring environment, two issues existed. The first was we received a .NET error as follows -> [ArgumentException: Provider name cannot be null or empty.]. We wanted to include additional fields in Sitecore from AD such as telephone number. Once we reverted out profile configuration, we also realized that roles from AD were not being integrated.

Spaces in Binding String Causes Issues in Sitecore AD ModuleSo after a lot of trial and error, and a couple of rounds through Sitecore support, the culprit ended up being a space character. Our specific space character was in the organizational unit similar to OU=Corporate Users. So Sitecore support developed a quick patch to work around the issue. We installed the new assembly and made some configuration changes:

<add name=”ad” type=”LightLDAP.Support.SitecoreADProfileProviderFixed, Sitecore.Support.403508″ connectionStringName=”ad” … …/> – change the profile provider definition

<add name=”ad” type=”LightLDAP.Support.SitecoreADRoleProviderFixed, Sitecore.Support.403508″ connectionStringName=”ad” … …/> – change the role provider definition

If you run into such an issue in your implementation, don’t hesitate to contact Sitecore support to get the patch. Make reference to issue ID 417172.

5 Tips for Onboarding Using Yammer

Having just gone through the onboarding process myself, I believe that using Yammer to facilitate the onboarding process can help drive adoption among recent hires. In addition, using Yammer for onboarding will allow them to get a functional grasp of the organization much quicker. Recent hires will have the whole Yammer network to ask questions to as well as being able to see all the posts from before they were hired.  In an environment where new hires are increasingly under pressure to add value quickly, these five tips could help make that a reality.

  1. Have one dedicated group for onboarding


Different people have different ideas on whether or not groups of new hires, who were hired at different points, should have separate groups or one large onboarding group. In my mind, it’s better to have one large onboarding group that people can join when they are hired and leave when the information in the group no longer pertains to them. That way the information and knowledge generated by previous groups of new hires is still there for the most recent new hires. Everyone who joins a company are going to have the same questions coming in, and rather than have to answer the same questions over and over, it’s easier to simply answer the question once and have new employees refer to that post.

  1. Encourage recent hires to join other Yammer groups

New employees might have never had any previous exposure to Yammer so it’s beneficial to encourage them to join your network’s “Yammer 101” group.  This way they can learn about how to use Yammer while learning about your company at the same time! In addition to the “Yammer 101” group, also encourage new hires to join other groups that they are interested in. Even if a group is not particularly business related (one colleague told me about a “Selfie” group) it can help foster a sense of team spirit and some research suggests can help with employee retention.

  1. Appoint a community manager

Read the rest of this post »

Bing Your Way To Success – Tips Every Programmer Should Live By

When I was in school, I remember studying learning styles - “series of theories suggesting systematic differences in individuals’ natural or habitual pattern of acquiring and processing information in learning situations.” I was the always the Converger, very hands-on, figuring out things for myself, testing theories. For me, this started at an early age. I can remember being one of the first students in middle school to harness the power of the internet around 1992 – 1994. I remember discovering Lexus Nexis, Alta Vista, and later Yahoo to read academic papers and abstracts. Writings, facts, opinions, that just weren’t available in my school library, were now available on the computer. I learned how to draw information at my fingertips by using search engines. Even in the early days, this was way more informative than an old encyclopedia and way more fun!bing

Fast forward to my college years, my search engine skills continued to progress. As I learned C++, VB Script, and Java, I relied heavily on the internet for the most up to date information on techniques, theory, and examples. Books simply couldn’t keep up with the power of the internet and its ever growing database of information. It was a great way for me to learn and get through college; and it continues to be a very sharp tool in my tool belt today.

In this post, I’m going to show you a few search engine tricks so you can Bing your way to success!

1. Use Quotes to Find Exact Results

Read the rest of this post »

Webinar Recap: Migrating to SharePoint Online with @jasonbell

There’s a lot of interest around moving to the cloud, and specifically, SharePoint Online. Because of that, we’ve had several webinars over the summer that focus on SharePoint Online and SharePoint in a hybrid environment (you can view all our past Microsoft webinars here, beginning with the most recent). headache2

Despite that interest, migrations can be a bit of a headache (or in some cases, a debilitating migraine). But, if you do your research and plan properly, the process can be a fairly smooth one – possibly even your last, since once in the cloud, you shouldn’t need to do intensive upgrades or migrations in the future.

Last week, we held another session around SharePoint Online, this time focusing on Best Practices for a Successful SharePoint Migration or Upgrade to the Cloud.  My colleague, Jason Bell, a senior solution architect within our Microsoft practice, kicked off the webinar with the top reasons to move to SharePoint Online. Following this, he shared migration methodology, which includes your migration assessment, migration development, and the actual migration plan.

Next, Jason talked about the different migration approaches – manual, scripted, or the use of a third party tool like AvePoint, Metalogix, or Sharegate. He wrapped up with a discussion around secure cloud computing, including information rights management and the use of Office Web Apps.

For the full webinar replay, including an informative Q&A portion where Jason answered a ton of attendee questions, click here. You can also catch up with Jason on Twitter @jasonbell.


How to develop and deploy for SharePoint Online (Office 365)

With the rapidly evolving migration to the cloud SharePoint teams are faced with a new challenge: How do we develop and deploy for SharePoint Online?

If your feet have been firmly planted with on-premises development for SharePoint it can be a little daunting trying to move your process to the cloud. Where and how should we conduct development? How can we implement release through development, quality assurance and production?

This article aims to help you get started and is based upon the hands-on experience of working with SharePoint 2013 Online during the past 18 months.

Perficient Model

Development and Deployment for SharePoint Online

Develop for the Service

Above all recommendations it is highly advisable to build new features for the service using SharePoint Online. Whether you are writing CSOM, customizing a Master Page or building an App you should do this for the service and not in a local (on-premises) development environment. SharePoint Online offers a very rich API which is very extensible but it can be extremely sobering to realize the feature you just spent the last few weeks building relies upon a feature not available Online. If you are developing features for both Online and On-Premises you can always bring things back on-premises later.

With a MSDN subscription developers can provision their own Office 365 tenant and begin development within a few minutes. How many hours would this have taken for the developer to build their own VM for on-premises development? If the developer does not have an MSDN subscription they could always use a trial tenant on a temporary basis or pay for a single user tenant for indefinite use. When provisioning any new tenant for development ensure that it is under the same license as QA and production (e.g. E3).

Once a developer is ready to deploy and review new features they can do this on a separate Development (Integration) tenant accessible to the team. This Development Environment is typically used for demonstrations of new features, in SCRUM Review meetings for example.

Tenant Isolation

Consistent with any mature software development it is important to ensure that Development, QA and Production are properly isolated and permissions configured accordingly. Developers will most likely have full administrative access to Development but will only have read or less access to QA and Production. Keeping your developers out of Production is a key principle for stability and ensures good consistent deployment techniques are employed. It also ensures that we maintain healthy disagreements between developers and administrators which is as old as time and ensures the project is fun!

It helps to name tenants consistently. We usually use the convention:

  • https://<production tenant name>
  • https://<production tenant name>
  • https://<production tenant name>

A key consideration with this isolation is how to maintain accounts across all three environments. Most likely the Production environment will have federated identities synchronized to the cloud with ADFS and DirSync or FIM. This allows us to work with corporate credentials in Production. However, a single domain can only be synchronized to one Office 365 tenant. So what should be configured for Development and QA? It is of course possible to build new domains (on-premises) and mirror the synchronization for Production. This is of course the most pure form of ensuring Development and QA are true representations of Production. However, this may be overkill for your development and testing needs.

It can be advantageous to use cloud accounts ( in Development and QA, they are extremely lightweight and easy to manage as your team grows. Cloud accounts are particularly useful when working with professional services organizations as setup can usually avoid what might otherwise be a lengthy setup process. However, if your solution relies heavily on synchronized identities then it may be necessary to have Development and QA domains which mirror production.

Another key driver for isolating tenants in this way is that it ensures no global configuration changes during development can impact the production system. Consider the configuration of:

  • Content Types
  • Term Store Configuration
  • Tenant-level Search Managed Properties
  • Tenant-level Search Result Sources

One could argue that developing in a single Site Collection isolates development appropriately. However, the misconfiguration of these items alone could easily break a production system and take some time to recover from e.g. Search may need to re-crawl or the Content Type Hub will need to wait for a scheduled push.

Scripted Deployment

This article will not fully elaborate upon Scripted Deployment to SharePoint Online I will write another article shortly on this topic. However, it is an important principle of this model. Automating any task which is repeated can be a productivity benefit providing the time invested in developing the automation takes less time than repeating the task itself. Automation also significantly reduces chance of human error. It is less obvious how to automate deployments for SharePoint Online but the benefits are clear and have paid huge dividend for our teams working with the service.

What is Scripted Deployment? For SharePoint Online this means writing PowerShell with XML configuration and using the SharePoint Server 2013 Client Components SDK (currently v16). The PowerShell is run locally on the developer or administrator’s machine but connects to SharePoint Online using the Client Object Model. Through this script we can deploy most things required for SharePoint Online customization such as:

  • Master Pages
  • Page Layouts
  • Content Types
  • Display Templates
  • Term Store Terms

It has taken some investment in the development of PowerShell modules but these become highly reusable across projects.

As developers work with their own tenant they develop the deployment scripts required for their feature. Those familiar with SCRUM will relate to ‘Done Criteria’. Our Done Criteria includes development of a feature and its scripted deployment to the Development (Integration) tenant where it can be reviewed. There are some exceptions which cannot be achieved by this technique but the Client Object Model does support a very wide range of common needs for deployment and configuration. Where exceptions exist these are documented in a deployment document for manual execution by an administrator.

Replication of Production Data

It is desirable to have recent data available in QA to ensure good and valid testing. For this replication it is advisable to use a third-party migration tool like Metalogix Content Matrix. When selecting a tool for this purpose ensure that it can migrate the data faithfully to ensure good testing but also that it can transform data as required. For example, if Production data uses synchronized identities but QA uses Cloud Accounts it will be necessary to perform some transformation. E.g. could be mapped to

Happy development and deployment!

Advanced analytics in healthcare with Epic, SQL Server and Azure

Over the months we have released a lot of information on building analytic platforms in healthcare. Several members of my team have played key architectural roles in not only implementing the Cogito platform and performing readmission analysis with it, but also expanding the platform to include customer satisfaction data from Press Ganey.

These functions were deemed critical to the initial phases of these projects, but are largely ‘back-end’ architectural projects. They do not address the ad-hoc analysis needs of the business, the delivery technologies available or much less the predictive capabilities that can be added to the platforms.

Fortunately there are a lot of new technologies in the Microsoft stack to address these needs.

As part of our advisory services to help our clients understand what new capabilities they have with their new platforms we regularly build concept visualizations. The following videos are examples of out of the box capabilities we built for one of our clients utilizing:

Self-service analytics with Power Pivot and Power View

3D visualizations with Power Map

And finally natural language query processing in the cloud with Q&A in Power BI

These technologies are well known and are being leveraged within several of our large clients, but a couple of recent announcements from Microsoft introduces even more exciting capabilities.

Power View now supports forecasting. This is a great new add currently available in the HTML5 version of Power View in Power BI. It gives the user the ability to quickly forecast a trend line, account for seasonality and even adjust the confidence intervals of the calculation. Below is a screenshot of some readmission forecasting being performed on the dataset from the earlier videos.


Important to note is that you not only see the forecasted line (light blue lines which runs through the top chart gray box) but the second chart also shows the hindcasting feature which lets a user start a forecast in the past in order to see how accurate it would have been against real data. (light blue line to the left of the gray box in the second chart).

While valuable and easy to use, this technology doesn’t give us the ability to predict who is at risk of readmitting. For that, we need a more powerful tool.

Azure Machine Learning Services is a recently announced cloud service for the budding Data Scientist. Through a drag and drop interface you can now build experiments of predictive models, train and score the models and even evaluate the accuracy of different algorithms within your model.

The screenshot below shows an experiment that was built against the same readmission data used in the forecasting example (Epic Cogito dataset). The dataset was modified to flatten multiple patient admissions onto one record and included the following attributes as well as some others:


The experiment was then created to compare two different classification algorithms, a boosted decision tree vs. a logistic regression. *Note that this blog is not intended to debate the accuracy or appropriate use of these particular algorithms. These were just the two I used.


Once the experiment is complete and evaluated a simple visual inspection shows the accuracy gains one algorithm has over the other.


After some tweaking (and this model still needs it) there is a simple process to create a web service with the associated API key which you can use to integrate the model into a readmission prediction application. One that accepts single record or batch inputs.


As you can see, there are a number of options for introducing advanced analytics into your healthcare environment. Feel free to contact me with questions on how these tools can be put to work in your new healthcare analytics platform.

Webinar: Content Strategy and a Personalized Digital Experience

As a marketer, the focus on engagement and shift to a more connected, digital experience is incredibly interesting to me. Not long ago, the online experience was fairly simple – you had a website, and you pointed your customers to that site. Your static content was adequate at the time.Personalization

Fast forward to 2014… what worked back when we partied like it’s 1999 (oh wait, it was) isn’t going to cut it today. According to Internet World Stats, as 2013 came to an end, there were over 2.8 billion people in the world online. In 2000, there were less than 400 million online. For the sake of comparison, the world population is around 7 billion today.

Needless to say, that’s a lot of eyes on your .com site. And on that site, we’ve got articles, blog posts, comments, infographics, audio, video, and images, to name a few. It’s easy to be hyper focused on content creation to the point that we lose sight of whether or not that content is even relevant to our target demographic.

Enter a content strategy. This will help you figure out which content type to use where, allowing you to both personalize and enrich your users’ digital experience. Join us on Wednesday, August 27, 2014 at 1 p.m. CT for a webinar, Using the Right Content Strategy to Create a Personalized Digital Experience to learn about some key content strategies, best practices and ways to create great content to keep your users coming back. We’ll also discuss how tools like Sitecore can help drive the personalized digital experience.

During the webinar, you’ll hear from Jason Maloney, Director of Perficient XD, Michael Porter, Principal of Portal, Web Content and Social Solutions at Perficient, and Mark Gehman, Perficient’s Sitecore Practice Director. Together, they’ll share a lot of actionable tips to get you started on creating or improving your content strategy.

To register for the webinar, click here.
Using the Right Content Strategy to Create a Personalized Digital Experience
Wednesday, August 27, 2014
1:00 p.m. CDT