Thursday, February 27, 2014

Why your company should migrate to SharePoint 2013

If your company currently uses an older version of SharePoint, you should really consider recommending that they upgrade to SharePoint 2013.


If you are not already familiar with SharePoint 2013, you may not know how many changes Microsoft has made to the SharePoint 2013 platform compared to all prior versions.  In fact, so many dramatic changes have been made to the SharePoint 2013 platform that it is probably safe to say that it is "SharePoint at its finest".  It is basically how the SharePoint platform was "meant to be".

Here are some of the new features to consider:

  1. Built to scale much more.  With the release of the Workflow Manager integration, an entire Workflow Server Farm can be built to handle workflows and support multiple SharePoint Farms.  In SharePoint 2010, the load of workflows would be still handled by the SharePoint servers themselves.
  2. Completely built on .NET 4.5.  If you are using an older version of SharePoint such as SharePoint 2010, you already know that Microsoft has made no attempt to update support for SharePoint 2010 to the .NET 4.0 or later platforms.  SharePoint 2010 still uses .NET 3.5 and therefore misses out on all of the new features that are currently available with this newer version of the .NET Framework.
  3. Can support newer versions of PowerShell such as v. 3.0 and v 4.0.  There are numerous features available in the newer version of PowerShell and even a web-based console included with the newer releases of PowerShell which can make automating SharePoint tasks that much easier on the SharePoint 2013 platform.
  4. Made to support alternative browsers and mobile devices.  If you have struggled with the immensely tight coupling that previous versions of SharePoint has had with the Internet Explorer browser, SharePoint 2013 largely breaks away from that pattern and readily supports Mozilla Firefox and Google Chrome.  
  5. Includes many new HTML5 features.  In prior versions of SharePoint, you always had to open up Windows Explorer view to drag and drop files into a Document Library.  However, with the new HTML5 features in SharePoint 2013, you can do this directly using any modern browser.
  6. InfoPath has been updated to support Visual Studio 2013.  In SharePoint 2010, InfoPath was still dependent on Visual Studio 2005 (and therefore .NET 2.0), therefore, many .NET features were missing when writing code for InfoPath forms.
  7. You can write ASP.NET MVC Apps!  In previous versions of SharePoint, you were restricted to writing ASP.NET Web Form Applications.  However, with this latest release, you can finally write applications which use the newer ASP.NET MVC Framework.
  8. You can write non ASP.NET Apps!  This is a very welcome addition to companies and organizations that wish to incorporate assorted applications into their SharePoint Portal to make it a "one stop shop" for their end users to access content from a wide variety of sources.
  9. The API is much improved.  Microsoft has made a significant investment in improving the SharePoint API to make it easily accessible via REST and thereby accessible to any client-side application that can leverage JavaScript as well as any platform that knows how to make RESTful calls.  
  10. SharePoint Designer is much improved.  Even with SharePoint Designer 2010, there were many significant limitations especially in regards to workflows that made dealing with workflows very frustrating.  SharePoint Designer 2013 offers many new features that made things that were never possible in SharePoint Designer 2010 finally possible.
  11. SharePoint 2013 now includes FAST Search Server.  SharePoint 2010 previously involved a long and complex setup to integrate the 2 products that required separate installations.  Now FAST is built-right in and you can leverage all of the additional features that FAST offers without any of the extra setup time.

Of course, an upgrade to SharePoint will require a significant investment in time and effort since SharePoint 2013 no longer supports an in-place upgrade (as was possible with SharePoint 2010) and instead requires deployment to a completely new SharePoint Farm.  

You can continue to use SharePoint 2010 Workflows on the SharePoint 2013 platform, but if you want to leverage new features such as SharePoint 2013 Workflows, these will also have to be entirely re-written since there is no conversion process from SharePoint 2010 Workflows.    

In addition, the hardware requirements in terms of memory are much more significant than previous releases of SharePoint as well, thereby potentially requiring hardware upgrades as well.

Overall, however, your company will find that the investment in migrating and upgrading will be well worth it since the ROI of creating and delivering functionality on this new platform will easily pay for itself within a few months.

Dynamically constructing the List Item Url in a SharePoint Designer 2013 Workflow

If you have worked with SharePoint Designer workflows in the past, you may know that it is not very easy to construct dynamic Urls to use in sending e-mail messages from a SharePoint Designer workflow.

In fact, Microsoft articles such as this one actually recommend using a hard-coded Url in your workflow in order to achieve this functionality:

Well, as most developers, I despise hard coding anything into my applications because it makes their functionality very prone to failure.

Fortunately, with the new Actions available in SharePoint Designer 2013, I no longer have to hard code Urls thanks to a new workaround provided by some of these new Actions.

In order to make this work, you will be leveraging the default value of "Encoded Absolute Url" and then doing some workflow variable assignment and string manipulation:

  1. Set a new Workflow Variable to the current ID of the List Item
  2. Create another Workflow Variable to construct the ending Url that you desire to View or Edit the item (DispForm.aspx or EditForm.aspx) and append the List Item ID to it:   Ex: DispForm.aspx?ID=[%Variable:ListItemID%]
  3. Then perform a string replacement of the ID which appears by default in the "Encoded Absolute Url" field with the appropriate ending portion of the Url such as this: Ex: Replace [%Variable:ListItemID%]_.000 with Variable:DisplayListIDUrl in Current List:Encoded Absolute Url (Output to Variable:ReplacementUrl)
  4. Use the resultant ReplacementUrl variable to output the text in the body of the e-mail message.
  5. That is it!!  You have now created a dynamically generated Url to the appropriate List Item without hard-coding the value into your workflow!! Yippee!! Woo hoo!!

Wednesday, February 26, 2014

Mapping SharePoint User Profile properties to Active Directory fields

If you are using SharePoint 2013 Workflows and need to send e-mail messages, odds are that you will need to set up and configure User Profile Synchronization.

Of course, as you can guess, one of the key critical SharePoint User Profile Properties to be able to send e-mail messages is the "E-mail Address" property.

Well, when you set up an Active Directory import, by default, SharePoint will attempt to use information regarding the e-mail address based on connectivity with Exchange Server and the additional schema that Exchange Server adds to Active Directory.

However, what if you do not have Exchange Server configured in your environment?  If Exchange Server is not present, SharePoint will attempt to use the "proxyAddresses" field in Active Directory which may have a format of something like:  Well, as you can probably guess, this will not work for sending e-mails as part of a workflow!

Well, then you have to manually "map" the appropriate SharePoint User Profile property over to the corresponding "E-mail" field in Active Directory.

Well, you can do this by following these steps:

  1. Open up Central Administration
  2. Click on "Application Management"
  3. Click on "Manage Service Applications"
  4. Click on the "User Profile Service Application"
  5. Beneath the "People" section, click on "Manage User Properties"
  6. Find the "Work email" property beneath the "Contact Information" section
  7. Hover over the "Work email" property until you see the "Edit" menu
  8. Click on the Edit link in the pop-up context menu
  9. Navigate down to the "Add New Mapping" section
  10. In the "Attribute" field, type "mail" and click on the "Add" button
  11. Click OK to save your changes
  12. Now, return to the User Profile Service Application screen and click on "Start Profile Synchronization"
  13. Select "Start Full Synchronization" and click the OK button.
  14. Once the synchronization is completed, you should now be able to view the user's e-mail address by going into "Manage User Profiles" and finding the specific user!

Viewing the Workflow History List

When you create a Workflow in SharePoint 2013, you must always associate it with a Workflow History List.

The Workflow History List is particularly important because actions logged in a SharePoint Workflow will be logged to the Workflow History List.

Particularly for SharePoint Designer Workflows, reviewing and examining the Workflow History list is very useful for debugging and troubleshooting issues with the workflow.

Normally, you can view the Workflow History by examining an individual workflow in SharePoint 2013.

However, going back and forth between individual workflow items can be rather tedious and time consuming.  So, fortunately, you can simply make the Workflow History available to view all the time directly from the Quick Launch menu while you are testing and debugging your Workflows.

  1. Open up SharePoint Designer
  2. Navigate to Lists and Libraries in the left hand navigation menu
  3. Click on the name of the Workflow History List
  4. You will now be able to view the settings for the Workflow History List
  5. Beneath the Settings section, select the option for ""Display this list on the Quick Launch"
  6. Now you will be able to readily click on and view the Workflow History directly from the SharePoint Quick Launch menu!

Tuesday, February 25, 2014

Using LDAP Browser to examine LDAP attributes/properties for Active Directory

If you are working with SharePoint 2013 User Profile Synchronization, there is a good chance, you will need to learn the appropriate LDAP properties for Active Directory fields in order to map the appropriate fields into SharePoint User Profile properties.

Well, unfortunately, finding this information is not directly accessible through the Active Directory Users and Computers console.

Therefore, how do you discover this information?

Thankfully, there is a free tool out there called LDAP Browser:

This tool allows you to connect to Active Directory and directly examine the matching LDAP attribute names that are used for the various properties and fields stored in Active Directory.

So, how do you connect to Active Directory and begin browsing these LDAP properties?

It is actually very simple and it starts by creating a new profile.

LDAP Browser provides a very nice easy-to-use wizard to create a profile that will allow you to connect to Active Directory.

Once you get through these steps and successfully establish a connection to Active Directory, you should then be able to begin viewing and examining the LDAP-specific attributes used in Active Directory (as shown below):

SharePoint Designer 2013 Workflows not sending e-mail messages

I was recently designing and testing a SharePoint 2013 Workflow in SharePoint Designer and I was practically trying to pull out my hair trying to figure out why the workflow would never send out e-mail messages!!

When I went into the Workflow, I would constantly see that the workflow would go into a "Suspended" state.  I could see that workflow was executing by the numerous "Log to History" messages I wrote out into the Workflow History list.  However, as soon as I got to the e-mail action in the workflow, the workflow would then seemingly stop.

When I clicked on the informational icon next to the workflow status, I saw the following very confusing error message:

As you can guess, I checked everything in my User Profile service and even manually populated the Work e-mail properties for all of my imported users (under Manage User Profiles in Central Administration).  But, still no luck!!

Well, then I remembered this article that I wrote a long time ago:

So, I decided to go ahead and check my Mcafee VirusScan settings:

Sure enough, those settings were never turned off!

Once I unchecked these two settings, I was finally able to receive e-mail messages from my SharePoint Designer 2013 Workflows!!  Whew....

Workflow Manager 1.0 Refresh now available!

With the release of Workflow Manager 1.0 Cumulative Update 1, many issues were introduced with the installation of the Cumulative Update 1 that often times required a complete uninstallation and reinstallation in order to get Workflow Manager 1.0 up and running again with a SharePoint 2013 environment.

Well, it seems that Microsoft has finally recognized the numerous problems that were introduced with their Cumulative Update and it seems that they have addressed this through a "Workflow Manager 1.0 Refresh".

This refresh can be discovered simply through using Microsoft Web Platform Installer.

Now, when you search for "Workflow Manager 1.0", you will get the following result set in Microsoft Web Platform Installer:

This seems to have cleaned up the problematic process of new server installations of Workflow Manager 1.0 by simply including the Cumulative Update as part of the Workflow Manager 1.0 Refresh.

This is definitely a welcome relief.  Thank you Microsoft!!! :-)

Setting up User Profile Synchronization in SharePoint 2013

After just setting up a brand new SharePoint 2013 installation, I noticed that even though the User Profile Service Application was set up and configured, no user accounts were getting imported!!

In fact, the only user account that was present in my SharePoint installation was the installation account!

However, as many SharePoint 2013 developers know, SharePoint 2013 Workflows are heavily reliant on leveraging the User Profile Service in order to match up e-mail addresses with SharePoint User accounts so that e-mails can be sent in workflows.

In addition, SharePoint 2013 Workflows cannot even be designed by the System Account!!  Therefore, you need to have at least one other user account in the system to be able to design and use SharePoint 2013 Workflows.

So, I looked at the default synchronization settings on the User Profile Service Application Page:

Well, it seemed that the "Use SharePoint Profile Synchronization" option was obviously not working!

Therefore, I decided to try to change the Synchronization options to "Use SharePoint Active Directory Import".

In order to get this to work, I also had to configure a Synchronization Connection.  Therefore, I started by creating a new Synchronization Connection:

I then specified the appropriate values for the Synchronization Connection to Active Directory:

After doing this, I had to start a Full Profile Synchronization:

Once I did this, I was able to successfully synchronize the user accounts from Active Directory and view them in the "Manage User Profiles" section!

Monday, February 24, 2014

Commercial ASP.NET E-Commerce engines

You do not have permission to make this API call using PayPal

I was working with nopCommerce and attempting to checkout with PayPal, when I received the following error message:

You do not have permission to make this API call.

After reviewing the list of API Errors on the PayPal site (, I could not find a solution for how to resolve this error message.

Fortunately, I came across this article which describes in detail how to configure your PayPal account:

Updating Device Drivers on outdated Windows hardware

If you have laptop or desktop that is more than a few years old, it is likely that the hardware manufacturer (like most hardware manufacturers) never bothered updating the device drivers for your system to support newer operating systems such as Windows 8 or Windows 8.1.

Therefore, if you ever go to the hardware manufacturer's website and look for newer device drivers you are completely out of luck!

What is even worse is that many of the device drivers that were written for an older OS such as Windows 7 will either not work at all or cause Windows system compatibility problems which can spell bad news for the stability of your Windows system and OS.

So what can you do in this situation?

Fortunately, there is a 3rd party software vendor that has an answer to this big dilemma and that company produces a product called Driver Genius (

UPDATE: Raxco Software (the makers of PerfectDisk) has a similar product called PerfectUpdater which operates on a yearly subscription model (

Once you download and install this software on your computer, it will allow you to scan your entire system for all missing or out-of-date device drivers and then connect to all of the various device driver repositories to search for new and updated device drivers for your existing system hardware!

How cool is that!

In my tests with using Driver Genius, Driver Genius was able to detect all of my missing device drivers (that I could tell by reviewing my hardware manufacturer's website for downloadable device drivers) and install the most recent available device drivers from each of the respective manufacturer's websites (AMD, Intel etc.).

While Driver Genius may certainly not solve ALL of your pesky device driver problems, it certainly helps with many of those critical hard-to-find device drivers that keep your system up and running properly such as the Chipset device drivers, Video device drivers etc.  It certainly helped me and saved me a lot of time from digging around the Internet to find the most appropriate device drivers for my system!!

Sunday, February 23, 2014

ASP.NET E-Commerce engines with Recurring Product Support

I evaluated a significant number of populate e-Commerce engines and amongst them I only found a very few with recurring product support.

If you are familiar with ordering from, Amazon offers the ability to order items such as groceries on a recurring/scheduled basis.  With Amazon, you can even specify the frequency on which you want the order to be purchased and shipped to you.

Unfortunately, with all of these ASP.NET-based e-Commerce engines, none of them offer the level of sophistication as is offered by in terms of recurring product support.  All of them simply offer the ability to specify a product as a recurring product and specify a recurrence frequency.

The products that I discovered that provide recurring product support are the following:

Not surprisingly, all of these products exhibited product defects in their ability to support recurring products:

  • AspDotNetStoreFront--While checking out, a customer is unable to actually view the frequency on which the product recurs.  Instead, the product is indicated as simply being a recurring product and that is all the information the customer is provided with in their shopping cart.
  • VevoCart--While checking out, a product that has recurring support, a customer is not even able to select a payment method to pay for the recurring item!!
  • nopCommerce--While nopCommerce definitely displays the best overall feature support for recurring products, it is limited to a single item in the shopping basket for checkout and I was never able to successfully integrate PayPal Direct or PayPal Standard to pay for my items on checkout.  The only successful payment gateway I was able to integrate was Authorize.Net.
Hopefully the above issues will be resolved in future releases of these products.  but for now, I have not yet found any "ideal" ASP.NET-based e-Commerce engine which even comes close to the features and functionality provided by for recurring products and orders.

Friday, February 21, 2014

Granting SharePoint PowerShell access to non-System accounts

When I run SharePoint PowerShell commands, I usually run them as the System account.

However, when dealing with SharePoint 2013, items such as SharePoint 2013 Workflows will not run under the System account, which means that I have to design and test my SharePoint 2013 Workflows under a different user account.

As part of my normal development process, I frequently need to run SharePoint PowerShell commands to execute and test various parts of functionality that I am developing.

However, while attempting to run a SharePoint PowerShell command under this different user account context, I suddenly encountered the following error message:

Cannot access the local farm. Verify that the local farm is properly configured, currently available, and that you have the appropriate permissions to access the database before trying again

Thinking that I did not have enough privileges on the SharePoint Farm, I proceeded to grant that user account Farm Administrator privileges.

However, still no luck!  Same exact error message!!

Therefore, after doing a bit more digging, I discovered that I needed to specially grant rights to execute SharePoint PowerShell commands as described in this article:

I needed to grant SharePoint_Shell_Access privileges to my current user account by using the Add-SPShellAdmin PowerShell command:

Once I ran this command against my specific content database using a command similar to the following:

Get-SPDatabase | ?{$_.Name -eq "WSS_Content"} | Add-SPShellAdmin -Username CONTOSO\User1

I was then finally able to execute SharePoint PowerShell commands with my non-system SharePoint user account! Yeah!!

Exporting Site Content Types in SharePoint 2013

If you wish to export Site Content Types from SharePoint 2013, an easy solution is provided through PowerShell as is documented in this article:

Once you export the Site Content Types, you can then use the resultant XML file to import the Site Content Types into another Server Farm or Site Collection. 

However, because Site Content Types are also dependent on Site Columns, do not forget to import the necessary Site Columns as well otherwise the Site Content Type import will FAIL!! 

You can export and import Site Columns as described in this previous article:

Downloading older versions of Altova products such as XMLSpy

If you work for a company that does not always buy maintenance agreements or upgrade/update to the latest software version as they are released (especially with expensive software packages such as XMLSpy), it may be difficult to find older versions of the appropriate software to install on your system by downloading directly from the manufacturer website since most vendors only keep the latest and greatest versions of their software available for download on their website.

Fortunately, Altova provides the ability to download older versions of their products and product suites.

You can download older versions of the Altova product suites and my particular favorite XML editing product (XMLSpy) from here:

Exporting Site Columns from SharePoint 2013

If you are looking to export and import site columns from your SharePoint 2013 site, there are many tools your may find available to download from the Internet such as this one:

Unfortunately, tools such as this one have primarily been written for older platforms such as SharePoint 2007 or SharePoint 2010.  Therefore, you will either have to alter and update the source code and assembly references to support SharePoint 2013 or more simply use something like a PowerShell script to provide you with exporting and importing capabilities.

One very good article on how to accomplish this using PowerShell is the following:

If you review the PowerShell script for exporting, however, you will notice that it by default exports the "Custom Columns" category.  This may be fine if all of the columns you need are stored in the "Custom Columns" category, but more often than not, as in my case, there are several Custom Columns in that category which are populated by default by SharePoint 2013 and therefore are not suitable for export.

Therefore, when initially creating your Site Columns, you will either have to place them in a special category of their own, modify the PowerShell script to only export the columns that you need or simply modify the exported file to contain the specific columns that you are targeting for export and later import.

Thursday, February 20, 2014

Changes in e-mail task in SharePoint 2013 Designer Workflows

When designing and testing SharePoint Designer workflows in SharePoint 2010, I would frequently create "dummy" e-mail tasks in SharePoint Designer in order to test the functionality of sending e-mails in SharePoint Designer.

That is to say, I would simply create an e-mail task that would send an e-mail to a fake e-mail address within the workflow and then simply intercept the e-mail by using a tool such as Smtp4Dev (  This allowed me to easily verify the functionality in my SharePoint Designer workflows in a development/test environment before preparing it for a production deployment and also saved me the hassle of setting up information in Active Directory for e-mail addresses and configuring the User Profile Service etc.

However, to my surprise, while attempting to accomplish this same thing in SharePoint Designer 2013 using a SharePoint 2013 Workflow, I received the following error message:

Through my own testing, I determined this statement to be true.  Regardless of how many times I ran my workflow, I never once received any e-mail messages.

Concerned that my Smtp Server may not have actually been working, I decided to attempt to execute the following PowerShell script provided in this article:

As you can probably guess, the script executed just fine and I was able to receive an e-mail message in Smtp4Dev.

Therefore, I knew that I would have to properly setup my user accounts in Active Directory and make sure all of the appropriate information was populated in the specific user's profile.

Just something to watch out for when developing SharePoint 2013 Designer workflows and using the e-mail task...

Understanding the SharePoint Designer Workflow Lookup Dialog

If you have ever designed a workflow in SharePoint Designer, you may find that using the text-based designer can be very confusing.

Many of the actions are straight forward, while other dialogs are downright confusing and confounding.

Among one of the most confusing dialogs in SharePoint Designer happens to be the Lookup Dialog.  The wording on the dialog itself is extremely difficult to understand.  Even worse, this dialog is extremely poorly documented on MSDN as well as in numerous SharePoint books.  Very few books go into depth on exactly how to use and leverage this dialog in your SharePoint Designer workflows.

One uses the Lookup Dialog in SharePoint Designer when attempting to lookup a field value from a list and then subsequently use that value such as by assigning it to a Workflow variable.

Below is a screenshot of the Lookup Dialog:

Basically, the Lookup Dialog needs information to "lookup" from a specific List and Column.  In addition, the Lookup Dialog needs to be able to determine how to find the specific record or row in the List which you are targeting for the lookup.  By far, the most confusing aspect of this dialog is definitely the "Find the List Item" section which has befuddled and confounded me for many years based on the wording provided in the dialog.  The "Find the List Item" section can essentially be considered as the "where clause" of the Lookup query.

Field Data to Retrieve
  • Data source: This refers to the List from which you wish to retrieve information
  • Field from source: This refers to the specific column that you wish to retrieve from the List
  • Return field as: This specifies the data type or the format in which the data from the List will be returned

Find the List Item
  • Field:  This refers to finding the specific record or row in the List.  In nearly all cases, you will need to use a unique identifier for the row or record which is usually a Guid or an ID.
  • Value:  Since you are usually working with triggering a workflow on a specific record or row in a List, you will want to find the Current Item's ID.  This row is the one that was used to specifically trigger the workflow that is running.

I hope this dramatically improves your understanding of this particularly poorly worded and constructed dialog in order to help you better design and develop workflows in SharePoint Designer.

Good luck!!

Changes in People Picker in SharePoint 2013

Among many of the User Interface changes in SharePoint 2013, the People Picker has changed dramatically in SharePoint 2013 from all previous versions of SharePoint.

As many SharePoint developers and end-users already know, the People Picker in SharePoint has typically always been associated with an Address Book icon as well as a "Check Names" icon.

Ironically, enough, this functionality is still present in SharePoint 2013 when initially setting up a brand new Site Collection:

However, in all other areas of SharePoint that are used for People Picking, you will find that these 2 icons are notably absent:

Instead, what you find is that there is "auto-completion" capabilities provided in the People Picker as you type out the user name.

It is not quite clear why Microsoft decided to remove these 2 icons in almost all areas of SharePoint 2013, though I suspect it may have to do with increased mobile device support.

In any case, this is definitely one thing to look out for when adjusting yourself to the various new user interfaces changes between prior SharePoint platforms and SharePoint 2013.

Installing Workflow Manager with Default Settings

In a previous article, I provided a walkthrough on how to use custom settings to configure Workflow Manager (which needs to be installed in order to support SharePoint 2013 Workflows).

However, if you do not need to fully customize your Workflow Manager settings, you can simply use the Default Settings which allows you to complete the installation in a 1 step process rather than navigating through multiple screens.

Below are screenshots on how I configured my Workflow Manager installation using Default Settings:

Support for Intel WiDi

If you are not familiar with Intel WiDi, it is a new feature that ships with most modern laptops which allows you to transmit content directly from your laptop to an Intel WiDi device such as your TV or a media streaming player connected to your TV.

One such media streaming player which supports Intel WiDi is the Netgear Neo TV Max Streaming Player:

Well, the next part of the question naturally becomes whether or not your laptop supports Intel WiDi?

Well. here are the system requirements for Intel WiDi:

Unfortunately, if your laptop is a few years old, it is likely that it does not support Intel WiDi since it only supports the latest Intel processors.  I have a laptop which is about 2-3 years old and since it is not a 2nd generation Intel processor or newer, it does not support installing the Intel WiDi software.  In addition, most articles on the Intel website also seem to indicate that a 4th generation Intel processor or newer is required for using Intel WiDi, but if you are unsure if your processor will support Intel WiDi, you can download this tool from Intel's website to verify compatibility:

If you find that your computer supports Intel WiDi, but it is not installed or configured on your system, you can also follow this article on how to set it up on your system:

While the system requirements also indicate that Intel WiDi might be supported in Windows 7 as well, most articles on the Intel website direct you to upgrade to Windows 8.1 in order to use these features.  Therefore, if you are not already running Windows 8.1, it is likely that this feature will not work for you.

I am actually planning on buying a new laptop soon (my existing one just died), so hopefully I will be able to report back in a future article regarding my usage and experience with Intel WiDi.

Wednesday, February 19, 2014

Installing SharePoint 2013 on Windows Server 2012 R2

If you have tried to install SharePoint 2013 on Windows Server 2012 R2 and you run the Prerequisite Installer, you may end up receiving the following error message:

If you consult the following Microsoft support article you will see that Windows Server 2012 R2 support is not expected until the release of SP1 for SharePoint 2013:

Unfortunately, this puts SharePoint developers in a similar position as when Windows Server 2012 was released and SharePoint 2010 did not include support for this platform until SharePoint 2010 SP2.

Fortunately, however, if you want to begin leveraging the Windows Server 2012 R2 platform sooner, a set of workarounds have been kindly provided in this article:

You can consult this article for additional details on how to suitable prepare your environment for installation of SharePoint 2013 manually:

Even after following all these steps, I received the following error message dialog when initially attempting to install SharePoint 2013:

Fortunately, this error message was slightly misleading in that it seemed to indicate I needed to still install IIS 6 Management Components (which were already installed on the system), however, this was easily resolved by a simply reboot of the server/restart of the machine.

However, when I attempted to Register the Workflow Service with SharePoint 2013 (to support SharePoint 2013 Workflows), I received the following error message:

The remote server returned an error: (404) Not Found

No matter what I tried on the system, I absolutely could not get the Workflow service to be registered with SharePoint 2013, which required me to revert to using Windows Server 2012.

Therefore, while SharePoint 2010 Workflows seem to work just fine with SharePoint 2013 and Windows Server 2012 R2, SharePoint 2013 Workflows WILL not work!!!

So, for the time being, if you want to use SharePoint 2013 Workflows on Windows Server 2012 R2, you are out of luck.  Unfortunately, you will have to stick with Windows Server 2012....

UPDATE: With the release of SharePoint Server 2013 SP1 and Workflow Manager 1.0 Refresh, Windows Server 2012 R2 is FINALLY supported.

Unable to sign in to Visual Studio 2013 on Windows Server 2012 R2

I just recently completed an installation of Visual Studio 2013 on Windows Server 2012 R2

As many developers already know, Visual Studio 2013 now requires activation.

There are 2 ways of activating Visual Studio 2013:

  1. Sign in with your Windows Live ID to activate based on your MSDN account subscription
  2. Enter the Visual Studio 2013 Product Key manually.
Since I also use the synchronization feature for retaining my settings from 1 development environment to another, I decided to try and log in with my Windows Live ID to activate my copy of Visual Studio 2013.

However, after attempting to log in, I received the following error message:

Fortunately, the product key screen continued to work.

I also attempted to log into Visual Studio Online and I received the following error message:

NOTE: With the recent release of Visual Studio 2013 Update 2 and Windows Server 2012 R2 with Update seems to have at least resolved the Visual Studio 2013 Login issue.

Useful tools for a SharePoint 2013 Development Environment

When developing on the SharePoint 2013 platform, there are several useful development tools that can aid in your development process.  While some are absolutely necessary for developing functionality in SharePoint 2013, others are useful tools that I have found which simply some aspects of setup, configuration and testing.

Here is a list of the development tools I frequently use while developing for SharePoint 2013:

  1. Microsoft Office 2013 Professional with InfoPath 2013
  2. Microsoft Visio 2013
  3. Microsoft Visual Studio 2013
  4. Microsoft SharePoint Designer 2013
  5. Microsoft SQL Server Management Studio 2012-to provide easy management of SharePoint databases
  6. Microsoft Web Platform Installer-for installing Workflow Manager 1.0 as well as other useful platform tools:
  7. SMTP4Dev-for testing sending and receiving e-mail messages:
  8. Idera PowerShell Plus-for developing PowerShell scripts:
  9. Google Chrome and/or Mozilla Firefox--for testing and debugging functionality with alternative browsers
  10. TechSmith SnagIt-for easily performing screen and video captures for review:
  11. Slysoft Virtual CloneDrive-for easily mounting ISO images for installation of SharePoint, SQL Server etc.:
  12. Scooter Software Beyond Compare-for doing file and folder based comparisons- 
  13. Source Control such as Microsoft Team Foundation Server, Sourcegear Vault or Subversion-for storing development code and scripts for versioning and backup

SharePoint 2013 Workflows and the System Account

With the release of SharePoint 2013 Workflows, many changes have occurred between the SharePoint 2010 and 2013 Workflow platform.

Other than completely re-writing the workflow engine to be independent of the SharePoint base installation, other changes were implemented that affected how one can create and execute SharePoint 2013 Workflows.

One of the major changes I discovered was that the System Account can no longer be used to create and execute SharePoint 2013 Workflows!!

This is documented in the following article:

Beneath the Troubleshooting section, there is the following statement:

The System Account cannot be used to develop a workflow.

I actually discovered this by creating a workflow using the System account and then attempting to run it.  This is something that I have always done while I was working on the SharePoint 2010 platform and I assumed that it would continue to work on the SharePoint 2013 platform. But, as I soon discovered, even though my Workflow would "Start", it would never COMPLETE!

After reading the above article, I ended up creating a separate user account and attempted to execute the workflows that I had previously created.  Interestingly enough, I was able to execute the workflows that I had previously created using the System account.

However, when I attempted to further edit these workflows, I saw the following in SharePoint Designer:

Therefore, since the previously available workflows were not editable by another user (even though the other user account was also assigned Site Collection Administrator privileges), the previously available workflows became useless and I ended up re-creating them using the different user account.

After re-creating the workflows under the new user account, I was able to successfully view, edit and execute any of the workflows I created.